<?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>140999</bug_id>
          
          <creation_ts>2015-01-28 08:12:20 -0800</creation_ts>
          <short_desc>Removing text node does not remove its associated markers</short_desc>
          <delta_ts>2015-02-16 04:54:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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="Grzegorz Czajkowski">g.czajkowski</reporter>
          <assigned_to name="Grzegorz Czajkowski">g.czajkowski</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1064900</commentid>
    <comment_count>0</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2015-01-28 08:12:20 -0800</bug_when>
    <thetext>Clearing text on HTMLTextAreaElement and HTMLInputElement does not remove its previous markers. 

For example, running the following script two times will cause that Document stores two markers (one for current node and one for previous which was remved!).

&lt;script&gt;
    textArea.value = &quot;&quot;;
    textArea.focus();
    document.execCommand(&quot;InsertText&quot;, false, &quot;welllcome &quot;);
&lt;/script&gt;

document().markers().showMarkers()

2 nodes have markers:
0x7f31b5122dc0 1:[0:9](0)
0x7f31b5122d70 1:[0:9](0)

This happens when text to insert is empty and setInnerTextValue(&quot;&quot;) calls removeChildren() on the previous node.

It does not affect user as the absolete node has been removed and its markers not drawn.
However does it make sense to store it until document&apos;s detach?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064901</commentid>
    <comment_count>1</comment_count>
      <attachid>245544</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2015-01-28 08:17:49 -0800</bug_when>
    <thetext>Created attachment 245544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064913</commentid>
    <comment_count>2</comment_count>
      <attachid>245544</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-01-28 09:04:53 -0800</bug_when>
    <thetext>Comment on attachment 245544
Patch

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

&gt; Source/WebCore/dom/ContainerNodeAlgorithms.h:242
&gt; +    if (is&lt;Text&gt;(node))
&gt; +        node.document().markers().removeMarkers(&amp;node);

This is in a really hot code path; I don’t think we want to do this in this way. Lets find a way that is more efficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064954</commentid>
    <comment_count>3</comment_count>
      <attachid>245544</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2015-01-28 10:45:04 -0800</bug_when>
    <thetext>Comment on attachment 245544
Patch

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

&gt;&gt; Source/WebCore/dom/ContainerNodeAlgorithms.h:242
&gt;&gt; +        node.document().markers().removeMarkers(&amp;node);
&gt; 
&gt; This is in a really hot code path; I don’t think we want to do this in this way. Lets find a way that is more efficient.

Right. I&apos;ll try to propose a new approach. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065239</commentid>
    <comment_count>4</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2015-01-29 08:10:59 -0800</bug_when>
    <thetext>I was playing with this bug a bit and it turned out that it&apos;s reproducible for contenteditable as well, for example:

&lt;script&gt;
    div.focus();
    document.execCommand(&quot;InsertText&quot;, false, &quot;welllcome &quot;);

    div.innerHTML = &quot;&quot;;   // after that we still store markers for &quot;welllcome&quot; in DocumentMakerController
&lt;/script&gt;

Since the root cause is the same (we don&apos;t remove markers while children are being removed) I&apos;ll suggest removing them somewhere inside ContatinerNode::removeChildren().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065527</commentid>
    <comment_count>5</comment_count>
      <attachid>245704</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2015-01-30 02:57:51 -0800</bug_when>
    <thetext>Created attachment 245704
test_case_1, input.value = &quot;&quot; does not clear markers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065530</commentid>
    <comment_count>6</comment_count>
      <attachid>245705</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2015-01-30 03:03:41 -0800</bug_when>
    <thetext>Created attachment 245705
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065603</commentid>
    <comment_count>7</comment_count>
      <attachid>245705</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-30 11:19:46 -0800</bug_when>
    <thetext>Comment on attachment 245705
Patch

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

&gt; Source/WebCore/dom/ContainerNode.cpp:664
&gt; +            if (is&lt;Text&gt;(removedChild))

Special-casing Text here seems weird. Also, I am a bit worried about the performance impact of this change. Wouldn&apos;t it be possible to override &quot;virtual void removedFrom(ContainerNode&amp; insertionPoint);&quot; in Text class and call removeMarkers() there instead? It would be much nicer if Text handling was in Text class instead of ContainerNode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066059</commentid>
    <comment_count>8</comment_count>
      <attachid>245705</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2015-02-02 03:06:52 -0800</bug_when>
    <thetext>Comment on attachment 245705
Patch

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

&gt;&gt; Source/WebCore/dom/ContainerNode.cpp:664
&gt;&gt; +            if (is&lt;Text&gt;(removedChild))
&gt; 
&gt; Special-casing Text here seems weird. Also, I am a bit worried about the performance impact of this change. Wouldn&apos;t it be possible to override &quot;virtual void removedFrom(ContainerNode&amp; insertionPoint);&quot; in Text class and call removeMarkers() there instead? It would be much nicer if Text handling was in Text class instead of ContainerNode.

Moving this to Text::removedFrom(ContainerNode) seems like a good idea. Thanks!
Additionally, I&apos;ll try to add some async bits to make it non-blocking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066081</commentid>
    <comment_count>9</comment_count>
      <attachid>245871</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2015-02-02 05:50:36 -0800</bug_when>
    <thetext>Created attachment 245871
apply Chris&apos; comments + add async bits</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066132</commentid>
    <comment_count>10</comment_count>
      <attachid>245871</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-02 10:07:30 -0800</bug_when>
    <thetext>Comment on attachment 245871
apply Chris&apos; comments + add async bits

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

&gt; Source/WebCore/dom/DocumentMarkerController.h:81
&gt; +    void willRemoveAllMarkersFrom(Node*);

Why doesn&apos;t this take a reference?

&gt; Source/WebCore/dom/DocumentMarkerController.h:113
&gt; +    void removeMarkersFromRemovedNodeTimerFired();

We usually put private methods before the private data members, not after.

&gt; Source/WebCore/dom/Text.cpp:200
&gt; +    document().markers().willRemoveAllMarkersFrom(this);

I am not familiar with these markers and I cannot cannot if doing things asynchronously makes sense here so I&apos;ll let someone else review. However, I&apos;ll say that willRemoveAllMarkersFrom() naming is confusing as it doesn&apos;t tell me that it actually removes the markers asynchronously. We probably want something like removeMarkersAsync().

&gt; Source/WebCore/dom/Text.cpp:201
&gt; +    Node::removedFrom(removalPoint);

CharacterData:: as this is the parent class. Even if CharacterData doesn&apos;t override this function now, it could later.

&gt; Source/WebCore/dom/Text.h:53
&gt; +    virtual void removedFrom(ContainerNode&amp; removalPoint) override final;

Should probably be protected?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066168</commentid>
    <comment_count>11</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2015-02-02 11:51:11 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Comment on attachment 245871 [details]
&gt; apply Chris&apos; comments + add async bits
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=245871&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/DocumentMarkerController.h:81
&gt; &gt; +    void willRemoveAllMarkersFrom(Node*);
&gt; 
&gt; Why doesn&apos;t this take a reference?
&gt; 
&gt; &gt; Source/WebCore/dom/DocumentMarkerController.h:113
&gt; &gt; +    void removeMarkersFromRemovedNodeTimerFired();
&gt; 
&gt; We usually put private methods before the private data members, not after.
&gt; 
&gt; &gt; Source/WebCore/dom/Text.cpp:200
&gt; &gt; +    document().markers().willRemoveAllMarkersFrom(this);
&gt; 
&gt; I am not familiar with these markers and I cannot cannot if doing things
&gt; asynchronously makes sense here so I&apos;ll let someone else review. However,
&gt; I&apos;ll say that willRemoveAllMarkersFrom() naming is confusing as it doesn&apos;t
&gt; tell me that it actually removes the markers asynchronously. We probably
&gt; want something like removeMarkersAsync().
&gt; 
&gt; &gt; Source/WebCore/dom/Text.cpp:201
&gt; &gt; +    Node::removedFrom(removalPoint);
&gt; 
&gt; CharacterData:: as this is the parent class. Even if CharacterData doesn&apos;t
&gt; override this function now, it could later.
&gt; 
&gt; &gt; Source/WebCore/dom/Text.h:53
&gt; &gt; +    virtual void removedFrom(ContainerNode&amp; removalPoint) override final;
&gt; 
&gt; Should probably be protected?

Thanks for comprehensive review! I&apos;ll take all the comments into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066402</commentid>
    <comment_count>12</comment_count>
      <attachid>245933</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2015-02-03 05:44:56 -0800</bug_when>
    <thetext>Created attachment 245933
Apply Chris&apos; comments (round 2) and let removeMarkersAync remove specific DocumentMarkers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066700</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-03 19:13:59 -0800</bug_when>
    <thetext>I&apos;ll let Darin or Ryosuke review as I am not familiar with these document markers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066873</commentid>
    <comment_count>14</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2015-02-04 11:56:09 -0800</bug_when>
    <thetext>ping reviewers
this is a friendly request for review. Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068581</commentid>
    <comment_count>15</comment_count>
      <attachid>245933</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-02-12 02:39:27 -0800</bug_when>
    <thetext>Comment on attachment 245933
Apply Chris&apos; comments (round 2) and let removeMarkersAync remove specific DocumentMarkers

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

&gt; Source/WebCore/dom/Text.cpp:203
&gt; +void Text::removedFrom(ContainerNode&amp; removalPoint)
&gt; +{
&gt; +    document().markers().removeMarkersAsync(*this);
&gt; +    CharacterData::removedFrom(removalPoint);
&gt; +}
&gt; +

I don&apos;t think it makes sense to add Text::removedFrom just to remove markers.
We should be doing this in either one of Document::nodeWillBeRemoved, Document::nodeChildrenWillBeRemoved, or Document::updateRangesAfterChildrenChanged instead.

And I don&apos;t think making only this one code path async make sense. If anything, we should check hasMarkers() before calling removeMarkers
or make all of Document::textInserted, Document::textRemoved, etc… async as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068582</commentid>
    <comment_count>16</comment_count>
      <attachid>245933</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-02-12 02:41:57 -0800</bug_when>
    <thetext>Comment on attachment 245933
Apply Chris&apos; comments (round 2) and let removeMarkersAync remove specific DocumentMarkers

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

&gt; Source/WebCore/dom/DocumentMarkerController.cpp:474
&gt; +    m_removeMarkersTimerData.first = &amp;node;
&gt; +    m_removeMarkersTimerData.second = markerTypes;

I don&apos;t think this would work if two different nodes were removed in a single task.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068881</commentid>
    <comment_count>17</comment_count>
      <attachid>246515</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2015-02-13 03:19:44 -0800</bug_when>
    <thetext>Created attachment 246515
test_case_2, removing text node does not clear markers

I was playing with this bug a bit and found out that we don&apos;t remove markers on div.removeChild(div.firstChild);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068882</commentid>
    <comment_count>18</comment_count>
      <attachid>245933</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2015-02-13 03:21:00 -0800</bug_when>
    <thetext>Comment on attachment 245933
Apply Chris&apos; comments (round 2) and let removeMarkersAync remove specific DocumentMarkers

Clear review flag due to Ryosuke&apos;s review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068920</commentid>
    <comment_count>19</comment_count>
      <attachid>246526</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2015-02-13 07:53:53 -0800</bug_when>
    <thetext>Created attachment 246526
Apply Ryosuke&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069060</commentid>
    <comment_count>20</comment_count>
      <attachid>246526</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-02-13 17:04:12 -0800</bug_when>
    <thetext>Comment on attachment 246526
Apply Ryosuke&apos;s comments

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

&gt; Source/WebCore/dom/Document.cpp:3713
&gt; +    if (is&lt;Text&gt;(n))

We should check m_markers-&gt;hasMarkers() here as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069305</commentid>
    <comment_count>21</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2015-02-15 03:32:46 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; Comment on attachment 246526 [details]
&gt; Apply Ryosuke&apos;s comments
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=246526&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:3713
&gt; &gt; +    if (is&lt;Text&gt;(n))
&gt; 
&gt; We should check m_markers-&gt;hasMarkers() here as well.

Happy to see r+, thanks. I think we can skip it here as inside removeMarkers() we already check them, https://trac.webkit.org/browser/trunk/Source/WebCore/dom/DocumentMarkerController.cpp#L454</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069388</commentid>
    <comment_count>22</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2015-02-16 00:26:11 -0800</bug_when>
    <thetext>Committed r180139: &lt;http://trac.webkit.org/changeset/180139&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069412</commentid>
    <comment_count>23</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-02-16 04:54:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/19844628&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245544</attachid>
            <date>2015-01-28 08:17:49 -0800</date>
            <delta_ts>2015-01-30 03:03:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140999-20150128171753.patch</filename>
            <type>text/plain</type>
            <size>2519</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5MTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2MzMjQwMGU0NGQyZDQy
NWJmZDQxZWZjMTdlZTI5ZTExMThlYzY1MS4uYjcwM2ZhMzEyZWY0MjljMDM3OGNjNDc0NzkyYzZk
OTQ5ZDhmNGFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTAxLTI4ICBHcnpl
Z29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAgIENs
ZWFyaW5nIHRleHQgbm9kZSBkb2VzIG5vdCByZW1vdmUgaXRzIGFzc29jaWF0ZWQgbWFya2Vycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwOTk5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYXJpbmcg
dGV4dCBvbiBIVE1MVGV4dEFyZWFFbGVtZW50IGFuZCBIVE1MSW5wdXRFbGVtZW50IGRvZXMgbm90
IHJlbW92ZQorICAgICAgICBpdHMgcHJldmlvdXMgbWFya2Vycy4gRm9yIGV4YW1wbGUsIHJ1bm5p
bmcgdGhlIGZvbGxvd2luZyBzY3JpcHQgdHdvIHRpbWVzCisgICAgICAgIHdpbGwgY2F1c2UgdGhh
dCBEb2N1bWVudCBzdG9yZXMgdHdvIG1hcmtlcnMgKG9uZSBmb3IgY3VycmVudCBub2RlIGFuZCBv
bmUgZm9yCisgICAgICAgIHByZXZpb3VzIHdoaWNoIHdhcyByZW12ZWQhKS4KKworICAgICAgICA8
c2NyaXB0PgorICAgICAgICAgICAgdGV4dEFyZWEudmFsdWUgPSAiIjsKKyAgICAgICAgICAgIHRl
eHRBcmVhLmZvY3VzKCk7CisgICAgICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0
VGV4dCIsIGZhbHNlLCAid2VsbGxjb21lICIpOworICAgICAgICA8L3NjcmlwdD4KKworICAgICAg
ICBUaGlzIGhhcHBlbnMgd2hlbiB0ZXh0IHRvIGluc2VydCBpcyBlbXB0eSBhbmQgc2V0SW5uZXJU
ZXh0VmFsdWUoIiIpIGNhbGxzCisgICAgICAgIHJlbW92ZUNoaWxkcmVuKCkgb24gdGhlIHByZXZp
b3VzIG5vZGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBJbnRlcm5hbHMgTWFya2VyIEFQSXMg
b3BlcmF0ZSBvbiB0ZXh0IG5vZGUgYXR0YWNoZWQgdG8gdGhlIGN1cnJlbnQgZWxlbWVudC4KKyAg
ICAgICAgQW5vdGhlciBvYnN0YWNsZXMgaXMgdGhhdCB3ZSBhcmUgaW4gaXNJblNoYWRvd1RyZWUo
KSBzbyB0aGF0IHRoZXJlIGlzCisgICAgICAgIG5vIHBvc3NpYmxlIHRvIHJlZ2lzdGVyIG9uICJE
T01TdWJ0cmVlTW9kaWZpZWQiIGV2ZW50LgorCisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGVB
bGdvcml0aG1zLmg6CisgICAgICAgIChXZWJDb3JlOjpDaGlsZE5vZGVSZW1vdmFsTm90aWZpZXI6
Om5vdGlmeU5vZGVSZW1vdmVkRnJvbURvY3VtZW50KToKKyAgICAgICAgUmVtb3ZlIG1hcmtlcnMg
YXNzb2NpYXRlZCB3aXRoIHRoZSBub2RlIHdoaWNoIHdhcyByZW1vdmVkLgorCiAyMDE1LTAxLTI1
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlICdmb250
JyBzaG9ydGhhbmQgcHJvcGVydHkgc3BlY2lhbCBjYXNpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmgKaW5kZXggNDZiN2YwOWQwMjk1NzA2MjYyMjdkYzU4
ZGRjYmM1MmU3Yzc2OGVhYS4uNDY4ODUyMzY5YTBiMDQ4MzM0MWQ3MGZjMTFiYzM2YWZjYTIzMWU4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1z
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmgKQEAg
LTIzLDYgKzIzLDcgQEAKICNkZWZpbmUgQ29udGFpbmVyTm9kZUFsZ29yaXRobXNfaAogCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgpAQCAtMjM3LDYgKzIzOCw5IEBAIGlubGluZSB2
b2lkIENoaWxkTm9kZVJlbW92YWxOb3RpZmllcjo6bm90aWZ5Tm9kZVJlbW92ZWRGcm9tRG9jdW1l
bnQoTm9kZSYgbm9kZSkKICAgICBBU1NFUlQobV9yZW1vdmFsUG9pbnQuaW5Eb2N1bWVudCgpKTsK
ICAgICBub2RlLnJlbW92ZWRGcm9tKG1fcmVtb3ZhbFBvaW50KTsKIAorICAgIGlmIChpczxUZXh0
Pihub2RlKSkKKyAgICAgICAgbm9kZS5kb2N1bWVudCgpLm1hcmtlcnMoKS5yZW1vdmVNYXJrZXJz
KCZub2RlKTsKKwogICAgIGlmIChpczxDb250YWluZXJOb2RlPihub2RlKSkKICAgICAgICAgbm90
aWZ5RGVzY2VuZGFudFJlbW92ZWRGcm9tRG9jdW1lbnQoZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4o
bm9kZSkpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>245704</attachid>
            <date>2015-01-30 02:57:51 -0800</date>
            <delta_ts>2015-02-13 03:16:34 -0800</delta_ts>
            <desc>test_case_1, input.value = &quot;&quot; does not clear markers</desc>
            <filename>clearTextNode.html</filename>
            <type>text/html</type>
            <size>825</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">PGh0bWw+Cjxib2R5PgpDbGVhcmluZyB0ZXh0IHZpYSBzY3JpcHQgc2hvdWxkIHJlbW92ZSBpdHMg
YXNzb2NpYXRlZCBtYXJrZXJzLjxicj4KVG8gdmVyaWZ5IGl0IHlvdSBuZWVkIHRvIGNhbGwgZG9j
dW1lbnQoKS5tYXJrZXJzKCkuc2hvd01hcmtlcnMoKSBhZnRlciBjbGVhcmluZyB0aGUgdGV4dC48
YnI+PGJyPgpUaGlzIHRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgdGhlIGZvbGxvd2luZyBtZXNzYWdl
IG9uIGNvbnNvbGU6PGJyPgo8aT4wIG5vZGVzIGhhdmUgbWFya2Vyczo8L2k+CjxkaXYgaWQ9InRl
c3RFbGVtZW50IiBjb250ZW50ZWRpdGFibGU9InRydWUiPjwvZGl2PiA8IS0tICBUaGlzIGhhcHBl
bnMgb24gaW5wdXQgYW5kIHRleHRhcmVhIGVsZW1lbnRzIGFzIHdlbGwgIC0tPgo8YnV0dG9uIG9u
Y2xpY2s9InN0YXJ0KCkiPlN0YXJ0PC9idXR0b24+CjxzY3JpcHQ+CnZhciBkaXYgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGVzdEVsZW1lbnQiKTsKCmZ1bmN0aW9uIHN0YXJ0KCkgewogICAg
ZGl2LmZvY3VzKCk7CiAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZhbHNl
LCAid2VsbGxjb21lICIpOyAKICAgIC8vIEdpdmUgYSB0aW1lIGFzeW5jIHNwZWxsY2hlY2tlciB0
byBzaG93IGl0cyBtYXJrZXJzIGFuZAogICAgLy8gY2xlYXIgdGhlIHRleHQgKHByZXZpb3VzIG1h
cmtlciBzaG91bGQgbm90IGJlIHN0b3JlZCBpbiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIpCgog
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgZGl2LmlubmVySFRNTCA9ICIiOyB9LCAxMDApOwp9
Cjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245705</attachid>
            <date>2015-01-30 03:03:41 -0800</date>
            <delta_ts>2015-02-02 05:50:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140999-20150130120347.patch</filename>
            <type>text/plain</type>
            <size>3011</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5Mzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE4MjIwOGFkODI5ZjMy
MWQ4ZjllYmFjM2RjMzg5NGQ3MGRmOTVlZi4uODZhMDU3YzZlOGNhNDQ2MDg2OGM2YWExZWJmNTIz
NDU1YjY4ODVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE1LTAxLTMwICBHcnpl
Z29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAgIENs
ZWFyaW5nIHRleHQgbm9kZSBkb2VzIG5vdCByZW1vdmUgaXRzIGFzc29jaWF0ZWQgbWFya2Vycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwOTk5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYXJpbmcg
dGV4dCBvbiBIVE1MRWxlbWVudCB2aWEgc2NyaXB0IGRvZXMgbm90IHJlbW92ZSBpdHMgbWFya2Vy
cy4KKyAgICAgICAgRm9yIGV4YW1wbGUsIHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBzY3JpcHQ6CisK
KyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdEVsZW1lbnQiKTsKKyAgICAgICAgICAgIGRpdi5mb2N1cygpOworICAgICAg
ICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgIndlbGxsY29t
ZSAiKTsKKworICAgICAgICAgICAgLy8gR2l2ZSBhIHRpbWUgYXN5bmMgc3BlbGxjaGVja2VyIHRv
IHNob3cgaXRzIG1hcmtlcnMgYW5kCisgICAgICAgICAgICAvLyBjbGVhciB0aGUgdGV4dC4KKyAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGRpdi5pbm5lckhUTUwgPSAiIjsgfSwg
MTAwKTsKKyAgICAgICAgPC9zY3JpcHQ+CisKKyAgICAgICAgd2lsbCBjYXVzZSB0aGF0IERvY3Vt
ZW50TWFya2VyQ29udHJvbGxlciBzdGlsbCBzdG9yZXMgdGhlIG1hcmtlcnMgZm9yCisgICAgICAg
IGRldGFjaGVkIG5vZGUuCisKKyAgICAgICAgVGhpcyBoYXBwZW5zIHdoZW4gdGV4dCB0byBpbnNl
cnQgaXMgZW1wdHkgYW5kIHNldElubmVyVGV4dFZhbHVlKCIiKSBjYWxscworICAgICAgICByZW1v
dmVDaGlsZHJlbigpIG9uIHRoZSBwcmV2aW91cyBub2RlLgorICAgICAgICBJdCdzIHJlcHJvZHVj
aWJsZSBmb3IgSFRNTElucHV0RWxlbWVudCwgSFRNTFRleHRBcmVhRWxlbWVudCBhbmQgY29udGVu
dGVkaWFibGUKKyAgICAgICAgZWxlbWVudHMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBJbnRl
cm5hbHMgbWFya2VyIEFQSXMgb3BlcmF0ZSBvbiB0ZXh0IG5vZGUgYXR0YWNoZWQKKyAgICAgICAg
dG8gdGhlIGVsZW1lbnQuIFRvIHRlc3QgaXQgd2UgY291bGQgZXhwb3NlIGRvY3VtZW50KCkubWFy
a2VycygpLmhhc01hcmtlcnMoKQorICAgICAgICBidXQgdGhlcmUgaXMgbm8gbW9yZSB1c2VmdWwg
Y2FzZXMgd2hlcmUgaXQgY291bGQgYmUgdXNlZC4KKyAgICAgICAgQW5vdGhlciBvYnN0YWNsZSBp
cyB0aGF0IHdlIGFyZSBpbiBpc0luU2hhZG93VHJlZSgpIHNvIHRoYXQgdGhlcmUgaXMKKyAgICAg
ICAgbm8gcG9zc2libGUgdG8gcmVnaXN0ZXIgb24gIkRPTVN1YnRyZWVNb2RpZmllZCIgZXZlbnQu
CisKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
b250YWluZXJOb2RlOjpyZW1vdmVDaGlsZHJlbik6CisgICAgICAgIFJlbW92ZSBtYXJrZXJzIGFz
c29jaWF0ZWQgd2l0aCB0aGUgdGV4dCBub2Rlcy4KKwogMjAxNS0wMS0yOSAgRGFyaW4gQWRsZXIg
IDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIFNWR1VzZUVsZW1lbnQuaW5zdGFu
Y2VSb290IGFuZCBhbGwgdGVzdHMgdGhhdCBkZXBlbmQgb24gaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmNwcAppbmRleCAxZjZhNzdmZWE2MWVjNzYzNzVmYmI5MDM0YjNhNzUzZjEyNWE1
YzJlLi4xYjBkMjQwMDgxZGI0YjUzMmI5Y2E3MjE0OGQ0M2E2YTNiY2U5NmI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ2hy
b21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2xhc3NOb2RlTGlzdC5oIgogI2luY2x1ZGUgIkNvbnRh
aW5lck5vZGVBbGdvcml0aG1zLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVk
ZSAiRnJhbWVWaWV3LmgiCkBAIC02NTcsOCArNjU4LDEyIEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6
cmVtb3ZlQ2hpbGRyZW4oKQogICAgICAgICBDaGlsZENoYW5nZSBjaGFuZ2UgPSB7IEFsbENoaWxk
cmVuUmVtb3ZlZCwgbnVsbHB0ciwgbnVsbHB0ciwgQ2hpbGRDaGFuZ2VTb3VyY2VBUEkgfTsKICAg
ICAgICAgY2hpbGRyZW5DaGFuZ2VkKGNoYW5nZSk7CiAgICAgICAgIAotICAgICAgICBmb3IgKGF1
dG8mIHJlbW92ZWRDaGlsZCA6IHJlbW92ZWRDaGlsZHJlbikKKyAgICAgICAgZm9yIChhdXRvJiBy
ZW1vdmVkQ2hpbGQgOiByZW1vdmVkQ2hpbGRyZW4pIHsKICAgICAgICAgICAgIENoaWxkTm9kZVJl
bW92YWxOb3RpZmllcigqdGhpcykubm90aWZ5KHJlbW92ZWRDaGlsZCk7CisKKyAgICAgICAgICAg
IGlmIChpczxUZXh0PihyZW1vdmVkQ2hpbGQpKQorICAgICAgICAgICAgICAgIGRvY3VtZW50KCku
bWFya2VycygpLnJlbW92ZU1hcmtlcnMocmVtb3ZlZENoaWxkLnB0cigpKTsKKyAgICAgICAgfQog
ICAgIH0KIAogICAgIGlmIChkb2N1bWVudCgpLnN2Z0V4dGVuc2lvbnMoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245871</attachid>
            <date>2015-02-02 05:50:36 -0800</date>
            <delta_ts>2015-02-03 05:44:46 -0800</delta_ts>
            <desc>apply Chris&apos; comments + add async bits</desc>
            <filename>bug-140999-20150202145044.patch</filename>
            <type>text/plain</type>
            <size>6847</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5NDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGMzODliY2JiNTBmYTll
NTU5OWZmZWExOGRmYWVkN2FmOTk4ZDEzNS4uOTg1YTQ1ZTE0Njk5NTNjY2I0NTFlYmZmMDdmZGRm
MDBmNDY4ZjRhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE1LTAyLTAyICBHcnpl
Z29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAgIENs
ZWFyaW5nIHRleHQgbm9kZSBkb2VzIG5vdCByZW1vdmUgaXRzIGFzc29jaWF0ZWQgbWFya2Vycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwOTk5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYXJpbmcg
dGV4dCBvbiBIVE1MRWxlbWVudCB2aWEgc2NyaXB0IGRvZXMgbm90IHJlbW92ZSBpdHMgbWFya2Vy
cy4KKyAgICAgICAgRm9yIGV4YW1wbGUsIHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBzY3JpcHQ6CisK
KyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdEVsZW1lbnQiKTsKKyAgICAgICAgICAgIGRpdi5mb2N1cygpOworICAgICAg
ICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgIndlbGxsY29t
ZSAiKTsKKworICAgICAgICAgICAgLy8gR2l2ZSBhIHRpbWUgYXN5bmMgc3BlbGxjaGVja2VyIHRv
IHNob3cgaXRzIG1hcmtlcnMgYW5kCisgICAgICAgICAgICAvLyBjbGVhciB0aGUgdGV4dC4KKyAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGRpdi5pbm5lckhUTUwgPSAiIjsgfSwg
MTAwKTsKKyAgICAgICAgPC9zY3JpcHQ+CisKKyAgICAgICAgd2lsbCBjYXVzZSB0aGF0IERvY3Vt
ZW50TWFya2VyQ29udHJvbGxlciBzdGlsbCBzdG9yZXMgdGhlIG1hcmtlcnMgZm9yCisgICAgICAg
IGRldGFjaGVkIG5vZGUuCisKKyAgICAgICAgVGhpcyBoYXBwZW5zIHdoZW4gdGV4dCB0byBpbnNl
cnQgaXMgZW1wdHkgYW5kIHNldElubmVyVGV4dFZhbHVlKCIiKSBjYWxscworICAgICAgICByZW1v
dmVDaGlsZHJlbigpIG9uIHRoZSBwcmV2aW91cyBub2RlLgorICAgICAgICBJdCdzIHJlcHJvZHVj
aWJsZSBmb3IgSFRNTElucHV0RWxlbWVudCwgSFRNTFRleHRBcmVhRWxlbWVudCBhbmQgY29udGVu
dGVkaWFibGUKKyAgICAgICAgZWxlbWVudHMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBJbnRl
cm5hbHMgbWFya2VyIEFQSXMgb3BlcmF0ZSBvbiB0ZXh0IG5vZGUgYXR0YWNoZWQKKyAgICAgICAg
dG8gdGhlIGVsZW1lbnQuIFRvIHRlc3QgaXQgd2UgY291bGQgZXhwb3NlIGRvY3VtZW50KCkubWFy
a2VycygpLmhhc01hcmtlcnMoKQorICAgICAgICBidXQgdGhlcmUgaXMgbm8gbW9yZSB1c2VmdWwg
Y2FzZXMgd2hlcmUgaXQgY291bGQgYmUgdXNlZC4KKyAgICAgICAgQW5vdGhlciBvYnN0YWNsZSBp
cyB0aGF0IHdlIGFyZSBpbiBpc0luU2hhZG93VHJlZSgpIHNvIHRoYXQgdGhlcmUgaXMKKyAgICAg
ICAgbm8gcG9zc2libGUgdG8gcmVnaXN0ZXIgb24gIkRPTVN1YnRyZWVNb2RpZmllZCIgZXZlbnQu
CisgICAgICAgIFRlc3QgY2FzZTogaHR0cHM6Ly9idWctMTQwOTk5LWF0dGFjaG1lbnRzLndlYmtp
dC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9MjQ1NzA0CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnRN
YXJrZXJDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQ29u
dHJvbGxlcjo6RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50TWFya2VyQ29udHJvbGxlcjo6d2lsbFJlbW92ZUFsbE1hcmtlcnNGcm9tKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6cmVtb3ZlTWFya2Vyc0Zyb21S
ZW1vdmVkTm9kZVRpbWVyRmlyZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuaDoKKyAgICAgICAgU2luY2Ugbm9uZSByZWxpZXMgb24gdGhvc2UgbWFya2VycyBhbmQg
aXRlcmF0aW5nIG92ZXIgbWFwIGlzIGV4cGVuc2l2ZQorICAgICAgICByZW1vdmUgdGhlbSBhc3lu
Y2hyb25vdXNseS4KKworICAgICAgICAqIGRvbS9UZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRleHQ6OnJlbW92ZWRGcm9tKToKKyAgICAgICAgKiBkb20vVGV4dC5oOgorICAgICAgICBSZW1v
dmUgbWFya2VycyBhc3NvY2lhdGVkIHdpdGggdGhlIHRleHQgbm9kZXMgd2hlbiB0aGV5IGdldHMg
cmVtb3ZlZAorICAgICAgICBmcm9tIENvbnRhaW5lck5vZGUuCisKIDIwMTUtMDItMDEgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgbW9yZSByZWZlcmVuY2Vz
IGluIEhpc3RvcnlJdGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRN
YXJrZXJDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNv
bnRyb2xsZXIuY3BwCmluZGV4IDA5NmMxMjA1YTBlMjNhZmIyNDc3NGQxN2QyMTljMTBiNjE2NDk0
ODQuLjRjMjMxNGUwODkxZGNlNDFiNjFiZDRjYzdjZTljYzFjYjFiNTE3OWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCkBAIC00NCw2ICs0
NCw3IEBAIGlubGluZSBib29sIERvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6cG9zc2libHlIYXNN
YXJrZXJzKERvY3VtZW50TWFya2VyOjpNYXJrZXJUCiAKIERvY3VtZW50TWFya2VyQ29udHJvbGxl
cjo6RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyKCkKICAgICA6IG1fcG9zc2libHlFeGlzdGluZ01h
cmtlclR5cGVzKDApCisgICAgLCBtX3JlbW92ZU1hcmtlcnNUaW1lcigqdGhpcywgJkRvY3VtZW50
TWFya2VyQ29udHJvbGxlcjo6cmVtb3ZlTWFya2Vyc0Zyb21SZW1vdmVkTm9kZVRpbWVyRmlyZWQp
CiB7CiB9CiAKQEAgLTQ2MCw2ICs0NjEsMTggQEAgdm9pZCBEb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXI6OnJlbW92ZU1hcmtlcnMoTm9kZSogbm9kZSwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclQKICAg
ICAgICAgcmVtb3ZlTWFya2Vyc0Zyb21MaXN0KGl0ZXJhdG9yLCBtYXJrZXJUeXBlcyk7CiB9CiAK
K3ZvaWQgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjp3aWxsUmVtb3ZlQWxsTWFya2Vyc0Zyb20o
Tm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIXBvc3NpYmx5SGFzTWFya2VycyhEb2N1bWVudE1hcmtl
cjo6QWxsTWFya2VycygpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcmVtb3ZlTWFy
a2Vyc1RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVtb3ZlZE5v
ZGUgPSBub2RlOworICAgIG1fcmVtb3ZlTWFya2Vyc1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30K
Kwogdm9pZCBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OnJlbW92ZU1hcmtlcnMoRG9jdW1lbnRN
YXJrZXI6Ok1hcmtlclR5cGVzIG1hcmtlclR5cGVzKQogewogICAgIGlmICghcG9zc2libHlIYXNN
YXJrZXJzKG1hcmtlclR5cGVzKSkKQEAgLTUxOSw2ICs1MzIsMTQgQEAgdm9pZCBEb2N1bWVudE1h
cmtlckNvbnRyb2xsZXI6OnJlbW92ZU1hcmtlcnNGcm9tTGlzdChNYXJrZXJNYXA6Oml0ZXJhdG9y
IGl0ZXJhdG8KICAgICB9CiB9CiAKK3ZvaWQgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpyZW1v
dmVNYXJrZXJzRnJvbVJlbW92ZWROb2RlVGltZXJGaXJlZCgpCit7CisgICAgQVNTRVJUKG1fcmVt
b3ZlZE5vZGUpOworCisgICAgcmVtb3ZlTWFya2VycyhtX3JlbW92ZWROb2RlLmdldCgpLCBEb2N1
bWVudE1hcmtlcjo6QWxsTWFya2VycygpKTsKKyAgICBtX3JlbW92ZWROb2RlLmNsZWFyKCk7Cit9
CisKIHZvaWQgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpyZXBhaW50TWFya2VycyhEb2N1bWVu
dE1hcmtlcjo6TWFya2VyVHlwZXMgbWFya2VyVHlwZXMpCiB7CiAgICAgaWYgKCFwb3NzaWJseUhh
c01hcmtlcnMobWFya2VyVHlwZXMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50TWFya2VyQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFy
a2VyQ29udHJvbGxlci5oCmluZGV4IDc2OWRkOTIyN2Y0OWFkZjliYTUxMDRmY2MwOGM2NWI2MDQ1
N2Y2M2MuLmEyZWYzOWExMDZkNzBiYTRlZjljYjFmYzE4MzE1NjZmMzIwNDg5OWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgKQEAgLTI5LDYgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5o
IgorI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNzcsNiArNzgsNyBAQCBwdWJs
aWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZU1hcmtlcnMoRG9jdW1lbnRNYXJr
ZXI6Ok1hcmtlclR5cGVzID0gRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtlcnMoKSk7CiAgICAgdm9p
ZCByZW1vdmVNYXJrZXJzKE5vZGUqLCBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZXMgPSBEb2N1
bWVudE1hcmtlcjo6QWxsTWFya2VycygpKTsKKyAgICB2b2lkIHdpbGxSZW1vdmVBbGxNYXJrZXJz
RnJvbShOb2RlKik7CiAgICAgdm9pZCByZXBhaW50TWFya2VycyhEb2N1bWVudE1hcmtlcjo6TWFy
a2VyVHlwZXMgPSBEb2N1bWVudE1hcmtlcjo6QWxsTWFya2VycygpKTsKICAgICB2b2lkIGludmFs
aWRhdGVSZW5kZXJlZFJlY3RzRm9yTWFya2Vyc0luUmVjdChjb25zdCBMYXlvdXRSZWN0Jik7CiAg
ICAgdm9pZCBzaGlmdE1hcmtlcnMoTm9kZSosIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCBpbnQgZGVs
dGEpOwpAQCAtMTA0LDYgKzEwNiwxMSBAQCBwcml2YXRlOgogICAgIE1hcmtlck1hcCBtX21hcmtl
cnM7CiAgICAgLy8gUHJvdmlkZSBhIHF1aWNrIHdheSB0byBkZXRlcm1pbmUgd2hldGhlciBhIHBh
cnRpY3VsYXIgbWFya2VyIHR5cGUgaXMgYWJzZW50IHdpdGhvdXQgZ29pbmcgdGhyb3VnaCB0aGUg
bWFwLgogICAgIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlcyBtX3Bvc3NpYmx5RXhpc3RpbmdN
YXJrZXJUeXBlczsKKworICAgIFRpbWVyIG1fcmVtb3ZlTWFya2Vyc1RpbWVyOworICAgIFJlZlB0
cjxOb2RlPiBtX3JlbW92ZWROb2RlOworCisgICAgdm9pZCByZW1vdmVNYXJrZXJzRnJvbVJlbW92
ZWROb2RlVGltZXJGaXJlZCgpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Rl
eHQuY3BwCmluZGV4IGY5MGYwM2ZiMWVkOWRjMGM2ZTYxOTA2NGQwMzc1Yjc4ZTgyYWIwMzcuLmMz
ZWJjNzgwMmVkNzYzMjg4MDc0MjBiMWZiYTM2MmQ5OTcwOTE1NmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAK
QEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXh0Lmgi
CiAKKyNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJSZW5k
ZXJDb21iaW5lVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0lubGluZVRleHQuaCIKICNpbmNs
dWRlICJSZW5kZXJUZXh0LmgiCkBAIC0xOTQsNiArMTk1LDEyIEBAIFJlbmRlclB0cjxSZW5kZXJU
ZXh0PiBUZXh0OjpjcmVhdGVUZXh0UmVuZGVyZXIoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQog
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJUZXh0PigqdGhpcywgZGF0YSgpKTsKIH0K
IAordm9pZCBUZXh0OjpyZW1vdmVkRnJvbShDb250YWluZXJOb2RlJiByZW1vdmFsUG9pbnQpCit7
CisgICAgZG9jdW1lbnQoKS5tYXJrZXJzKCkud2lsbFJlbW92ZUFsbE1hcmtlcnNGcm9tKHRoaXMp
OworICAgIE5vZGU6OnJlbW92ZWRGcm9tKHJlbW92YWxQb2ludCk7Cit9CisKIGJvb2wgVGV4dDo6
Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3QKIHsKICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RleHQuaAppbmRleCBiMmRmMzQwZGMxMTViZmRlZTJiMmNhM2FlNWIyMjg5MmJkNzI2YWJjLi5k
YzI0ZjlhNmI3YzE1ZTg4ZTA1ZDE4ZTFmN2ZlOWE3NDE1NGNkZmFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgKQEAg
LTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgIFJlbmRlclB0cjxSZW5kZXJUZXh0PiBjcmVhdGVU
ZXh0UmVuZGVyZXIoY29uc3QgUmVuZGVyU3R5bGUmKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wg
Y2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBvdmVycmlkZSBmaW5hbCB7IHJldHVybiB0
cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmIHJlbW92
YWxQb2ludCkgb3ZlcnJpZGUgZmluYWw7CiAKICAgICBSZW5kZXJUZXh0KiByZW5kZXJlcigpIGNv
bnN0OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245933</attachid>
            <date>2015-02-03 05:44:56 -0800</date>
            <delta_ts>2015-02-13 07:53:45 -0800</delta_ts>
            <desc>Apply Chris&apos; comments (round 2) and let removeMarkersAync remove specific DocumentMarkers</desc>
            <filename>bug-140999-20150203144455.patch</filename>
            <type>text/plain</type>
            <size>7343</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5NTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzY0OWJiMDVmYzQwMzQy
MTQwNmY4ZDNmOGY0YTc3Yjg3ODUwMjVkZC4uZmNlZDM3MzM2YjM5MWQ1ZDJhN2Q1ZDMwNDYyYjY3
ZTNmOTJlNzc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE1LTAyLTAzICBHcnpl
Z29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAgIENs
ZWFyaW5nIHRleHQgbm9kZSBkb2VzIG5vdCByZW1vdmUgaXRzIGFzc29jaWF0ZWQgbWFya2Vycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwOTk5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYXJpbmcg
dGV4dCBvbiBIVE1MRWxlbWVudCB2aWEgc2NyaXB0IGRvZXMgbm90IHJlbW92ZSBpdHMgbWFya2Vy
cy4KKyAgICAgICAgRm9yIGV4YW1wbGUsIHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBzY3JpcHQ6CisK
KyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdEVsZW1lbnQiKTsKKyAgICAgICAgICAgIGRpdi5mb2N1cygpOworICAgICAg
ICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFRleHQiLCBmYWxzZSwgIndlbGxsY29t
ZSAiKTsKKworICAgICAgICAgICAgLy8gR2l2ZSBhIHRpbWUgYXN5bmMgc3BlbGxjaGVja2VyIHRv
IHNob3cgaXRzIG1hcmtlcnMgYW5kCisgICAgICAgICAgICAvLyBjbGVhciB0aGUgdGV4dC4KKyAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGRpdi5pbm5lckhUTUwgPSAiIjsgfSwg
MTAwKTsKKyAgICAgICAgPC9zY3JpcHQ+CisKKyAgICAgICAgd2lsbCBjYXVzZSB0aGF0IERvY3Vt
ZW50TWFya2VyQ29udHJvbGxlciBzdGlsbCBzdG9yZXMgdGhlIG1hcmtlcnMgZm9yCisgICAgICAg
IGRldGFjaGVkIG5vZGUuCisKKyAgICAgICAgVGhpcyBoYXBwZW5zIHdoZW4gdGV4dCB0byBpbnNl
cnQgaXMgZW1wdHkgYW5kIHNldElubmVyVGV4dFZhbHVlKCIiKSBjYWxscworICAgICAgICBDb250
YWluZXJOb2RlOjpyZW1vdmVDaGlsZHJlbigpLgorCisgICAgICAgIEl0J3MgcmVwcm9kdWNpYmxl
IHdpdGggSFRNTElucHV0RWxlbWVudCwgSFRNTFRleHRBcmVhRWxlbWVudCBhbmQgY29udGVudGVk
aWFibGUKKyAgICAgICAgZWxlbWVudHMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBJbnRlcm5h
bHMgbWFya2VyIEFQSXMgb3BlcmF0ZSBvbiB0ZXh0IG5vZGUgYXR0YWNoZWQKKyAgICAgICAgdG8g
dGhlIGVsZW1lbnQuIFRvIHRlc3QgaXQgd2UgY291bGQgZXhwb3NlIGRvY3VtZW50KCkubWFya2Vy
cygpLmhhc01hcmtlcnMoKQorICAgICAgICBidXQgdGhlcmUgaXMgbm8gbW9yZSB1c2VmdWwgY2Fz
ZXMgd2hlcmUgaXQgY291bGQgYmUgdXNlZC4KKyAgICAgICAgQW5vdGhlciBvYnN0YWNsZSBpcyB0
aGF0IHdlIGFyZSBpbiBpc0luU2hhZG93VHJlZSgpIHNvIHRoYXQgdGhlcmUgaXMKKyAgICAgICAg
bm8gcG9zc2libGUgdG8gcmVnaXN0ZXIgb24gIkRPTVN1YnRyZWVNb2RpZmllZCIgZXZlbnQuCisg
ICAgICAgIFRlc3QgY2FzZTogaHR0cHM6Ly9idWctMTQwOTk5LWF0dGFjaG1lbnRzLndlYmtpdC5v
cmcvYXR0YWNobWVudC5jZ2k/aWQ9MjQ1NzA0CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQ29udHJv
bGxlcjo6RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50TWFya2VyQ29udHJvbGxlcjo6cmVtb3ZlTWFya2Vyc0FzeW5jKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6cmVtb3ZlTWFya2Vyc1RpbWVyRmlyZWQpOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaDoKKyAgICAgICAgU2luY2Ug
bm9uZSByZWxpZXMgb24gdGhvc2UgbWFya2VycyBhbmQgaXRlcmF0aW5nIG92ZXIgbWFwIGlzIGV4
cGVuc2l2ZQorICAgICAgICByZW1vdmUgdGhlbSBhc3luY2hyb25vdXNseS4KKworICAgICAgICAq
IGRvbS9UZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHQ6OnJlbW92ZWRGcm9tKToKKyAg
ICAgICAgKiBkb20vVGV4dC5oOgorICAgICAgICBSZW1vdmUgbWFya2VycyBhc3NvY2lhdGVkIHdp
dGggdGhlIHRleHQgbm9kZXMgd2hlbiB0aGV5IGdldHMgcmVtb3ZlZAorICAgICAgICBmcm9tIENv
bnRhaW5lck5vZGUuCisKIDIwMTUtMDItMDIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxNzA1NzYpOiBTdG9yYWdlIGxlYWtzIGluIHBhcnNp
bmcgb2YgQ1NTIGltYWdlIHNpemVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1h
cmtlckNvbnRyb2xsZXIuY3BwCmluZGV4IDA5NmMxMjA1YTBlMjNhZmIyNDc3NGQxN2QyMTljMTBi
NjE2NDk0ODQuLjQ0ZTk2MWNhNTMwMzJmOWFkZDU3ZmEzYzY1M2NkOGM1NDhlYjdmYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCkBAIC00
NCw2ICs0NCw4IEBAIGlubGluZSBib29sIERvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6cG9zc2li
bHlIYXNNYXJrZXJzKERvY3VtZW50TWFya2VyOjpNYXJrZXJUCiAKIERvY3VtZW50TWFya2VyQ29u
dHJvbGxlcjo6RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyKCkKICAgICA6IG1fcG9zc2libHlFeGlz
dGluZ01hcmtlclR5cGVzKDApCisgICAgLCBtX3JlbW92ZU1hcmtlcnNUaW1lcigqdGhpcywgJkRv
Y3VtZW50TWFya2VyQ29udHJvbGxlcjo6cmVtb3ZlTWFya2Vyc1RpbWVyRmlyZWQpCisgICAgLCBt
X3JlbW92ZU1hcmtlcnNUaW1lckRhdGEoc3RkOjptYWtlX3BhaXIobnVsbHB0ciwgMCkpCiB7CiB9
CiAKQEAgLTQ2MCw2ICs0NjIsMTkgQEAgdm9pZCBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OnJl
bW92ZU1hcmtlcnMoTm9kZSogbm9kZSwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclQKICAgICAgICAg
cmVtb3ZlTWFya2Vyc0Zyb21MaXN0KGl0ZXJhdG9yLCBtYXJrZXJUeXBlcyk7CiB9CiAKK3ZvaWQg
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpyZW1vdmVNYXJrZXJzQXN5bmMoTm9kZSYgbm9kZSwg
RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzIG1hcmtlclR5cGVzKQoreworICAgIGlmICghcG9z
c2libHlIYXNNYXJrZXJzKG1hcmtlclR5cGVzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KG1fcmVtb3ZlTWFya2Vyc1RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fcmVtb3ZlTWFya2Vyc1RpbWVyRGF0YS5maXJzdCA9ICZub2RlOworICAgIG1fcmVtb3ZlTWFy
a2Vyc1RpbWVyRGF0YS5zZWNvbmQgPSBtYXJrZXJUeXBlczsKKyAgICBtX3JlbW92ZU1hcmtlcnNU
aW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisKIHZvaWQgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
OjpyZW1vdmVNYXJrZXJzKERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlcyBtYXJrZXJUeXBlcykK
IHsKICAgICBpZiAoIXBvc3NpYmx5SGFzTWFya2VycyhtYXJrZXJUeXBlcykpCkBAIC01MTksNiAr
NTM0LDE2IEBAIHZvaWQgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpyZW1vdmVNYXJrZXJzRnJv
bUxpc3QoTWFya2VyTWFwOjppdGVyYXRvciBpdGVyYXRvCiAgICAgfQogfQogCit2b2lkIERvY3Vt
ZW50TWFya2VyQ29udHJvbGxlcjo6cmVtb3ZlTWFya2Vyc1RpbWVyRmlyZWQoKQoreworICAgIEFT
U0VSVChtX3JlbW92ZU1hcmtlcnNUaW1lckRhdGEuZmlyc3QpOworCisgICAgcmVtb3ZlTWFya2Vy
cyhtX3JlbW92ZU1hcmtlcnNUaW1lckRhdGEuZmlyc3QuZ2V0KCksIG1fcmVtb3ZlTWFya2Vyc1Rp
bWVyRGF0YS5zZWNvbmQpOworCisgICAgbV9yZW1vdmVNYXJrZXJzVGltZXJEYXRhLmZpcnN0LmNs
ZWFyKCk7CisgICAgbV9yZW1vdmVNYXJrZXJzVGltZXJEYXRhLnNlY29uZC5yZW1vdmUoRG9jdW1l
bnRNYXJrZXI6OkFsbE1hcmtlcnMoKSk7Cit9CisKIHZvaWQgRG9jdW1lbnRNYXJrZXJDb250cm9s
bGVyOjpyZXBhaW50TWFya2VycyhEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZXMgbWFya2VyVHlw
ZXMpCiB7CiAgICAgaWYgKCFwb3NzaWJseUhhc01hcmtlcnMobWFya2VyVHlwZXMpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCmluZGV4IDc2OWRkOTIy
N2Y0OWFkZjliYTUxMDRmY2MwOGM2NWI2MDQ1N2Y2M2MuLmQxYjljOWYzNGFhYzRhNmFiZDZkMGRk
OTk5MmUyYjY3YmQxNTYwMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dE1hcmtlckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50TWFy
a2VyLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVk
ZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgpAQCAtNzcsNiArNzgsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHJlbW92ZU1hcmtlcnMoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzID0gRG9jdW1lbnRNYXJr
ZXI6OkFsbE1hcmtlcnMoKSk7CiAgICAgdm9pZCByZW1vdmVNYXJrZXJzKE5vZGUqLCBEb2N1bWVu
dE1hcmtlcjo6TWFya2VyVHlwZXMgPSBEb2N1bWVudE1hcmtlcjo6QWxsTWFya2VycygpKTsKKyAg
ICB2b2lkIHJlbW92ZU1hcmtlcnNBc3luYyhOb2RlJiwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5
cGVzID0gRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtlcnMoKSk7CiAgICAgdm9pZCByZXBhaW50TWFy
a2VycyhEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZXMgPSBEb2N1bWVudE1hcmtlcjo6QWxsTWFy
a2VycygpKTsKICAgICB2b2lkIGludmFsaWRhdGVSZW5kZXJlZFJlY3RzRm9yTWFya2Vyc0luUmVj
dChjb25zdCBMYXlvdXRSZWN0Jik7CiAgICAgdm9pZCBzaGlmdE1hcmtlcnMoTm9kZSosIHVuc2ln
bmVkIHN0YXJ0T2Zmc2V0LCBpbnQgZGVsdGEpOwpAQCAtMTAwLDEwICsxMDIsMTQgQEAgcHJpdmF0
ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPE5vZGU+LCBzdGQ6OnVuaXF1ZV9wdHI8TWFy
a2VyTGlzdD4+IE1hcmtlck1hcDsKICAgICBib29sIHBvc3NpYmx5SGFzTWFya2VycyhEb2N1bWVu
dE1hcmtlcjo6TWFya2VyVHlwZXMpOwogICAgIHZvaWQgcmVtb3ZlTWFya2Vyc0Zyb21MaXN0KE1h
cmtlck1hcDo6aXRlcmF0b3IsIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlcyk7CisgICAgdm9p
ZCByZW1vdmVNYXJrZXJzVGltZXJGaXJlZCgpOwogCiAgICAgTWFya2VyTWFwIG1fbWFya2VyczsK
ICAgICAvLyBQcm92aWRlIGEgcXVpY2sgd2F5IHRvIGRldGVybWluZSB3aGV0aGVyIGEgcGFydGlj
dWxhciBtYXJrZXIgdHlwZSBpcyBhYnNlbnQgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoZSBtYXAu
CiAgICAgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzIG1fcG9zc2libHlFeGlzdGluZ01hcmtl
clR5cGVzOworCisgICAgVGltZXIgbV9yZW1vdmVNYXJrZXJzVGltZXI7CisgICAgc3RkOjpwYWly
PFJlZlB0cjxOb2RlPiwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzPiBtX3JlbW92ZU1hcmtl
cnNUaW1lckRhdGE7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAK
aW5kZXggZjkwZjAzZmIxZWQ5ZGMwYzZlNjE5MDY0ZDAzNzViNzhlODJhYjAzNy4uOGFmYjAzZjU2
ODZlOWIyOWQ3YWNmM2Q2ODZiMmJlYTZiYTQ5ZmUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtMjIs
NiArMjIsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRleHQuaCIKIAorI2lu
Y2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlJlbmRlckNvbWJp
bmVUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHSW5saW5lVGV4dC5oIgogI2luY2x1ZGUgIlJl
bmRlclRleHQuaCIKQEAgLTE5NCw2ICsxOTUsMTIgQEAgUmVuZGVyUHRyPFJlbmRlclRleHQ+IFRl
eHQ6OmNyZWF0ZVRleHRSZW5kZXJlcihjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgcmV0
dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlclRleHQ+KCp0aGlzLCBkYXRhKCkpOwogfQogCit2b2lk
IFRleHQ6OnJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmIHJlbW92YWxQb2ludCkKK3sKKyAgICBk
b2N1bWVudCgpLm1hcmtlcnMoKS5yZW1vdmVNYXJrZXJzQXN5bmMoKnRoaXMpOworICAgIENoYXJh
Y3RlckRhdGE6OnJlbW92ZWRGcm9tKHJlbW92YWxQb2ludCk7Cit9CisKIGJvb2wgVGV4dDo6Y2hp
bGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3QKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Rl
eHQuaAppbmRleCBiMmRmMzQwZGMxMTViZmRlZTJiMmNhM2FlNWIyMjg5MmJkNzI2YWJjLi4xNGIx
ZWNlZDJmMDkwYTNkMjFiNDFjMTVhZTU5YTI3ZGU1NGJiNGJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgKQEAgLTU4
LDYgKzU4LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICA6IENoYXJhY3RlckRhdGEoZG9jdW1lbnQs
IGRhdGEsIHR5cGUpCiAgICAgewogICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20o
Q29udGFpbmVyTm9kZSYgcmVtb3ZhbFBvaW50KSBvdmVycmlkZSBmaW5hbDsKIAogcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>246515</attachid>
            <date>2015-02-13 03:19:44 -0800</date>
            <delta_ts>2015-02-13 03:19:44 -0800</delta_ts>
            <desc>test_case_2, removing text node does not clear markers</desc>
            <filename>removeTextNodeShouldClearMarkers.html</filename>
            <type>text/html</type>
            <size>763</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">PGh0bWw+Cjxib2R5PgpSZW1vdmluZyB0ZXh0IG5vZGUgc2hvdWxkIHJlbW92ZSBpdHMgYXNzb2Np
YXRlZCBtYXJrZXJzLjxicj4KVG8gdmVyaWZ5IGl0IHlvdSBuZWVkIHRvIGNhbGwgZG9jdW1lbnQo
KS5tYXJrZXJzKCkuc2hvd01hcmtlcnMoKSBhZnRlciBjbGVhcmluZyB0aGUgdGV4dC48YnI+PGJy
PgpUaGlzIHRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgdGhlIGZvbGxvd2luZyBtZXNzYWdlIG9uIGNv
bnNvbGU6PGJyPgo8aT4wIG5vZGVzIGhhdmUgbWFya2Vyczo8L2k+CjxkaXYgaWQ9InRlc3RFbGVt
ZW50IiBjb250ZW50ZWRpdGFibGU+PC9kaXY+CjxidXR0b24gb25jbGljaz0ic3RhcnQoKSI+U3Rh
cnQ8L2J1dHRvbj4KPHNjcmlwdD4KdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXN0RWxlbWVudCIpOwoKZnVuY3Rpb24gc3RhcnQoKSB7CiAgICBkaXYuZm9jdXMoKTsKICAgIGRv
Y3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRUZXh0IiwgZmFsc2UsICJ3ZWxsbGNvbWUgIik7IAog
ICAgLy8gR2l2ZSBhIHRpbWUgYXN5bmMgc3BlbGxjaGVja2VyIHRvIHNob3cgaXRzIG1hcmtlcnMg
YW5kCiAgICAvLyByZW1vdmUgdGhlIHRleHQgKHByZXZpb3VzIG1hcmtlciBzaG91bGQgbm90IGJl
IHN0b3JlZCBpbiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIpCgogICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsgZGl2LnJlbW92ZUNoaWxkKGRpdi5maXJzdENoaWxkKTsgfSwgMTAwKTsKfQo8L3Nj
cmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246526</attachid>
            <date>2015-02-13 07:53:53 -0800</date>
            <delta_ts>2015-02-13 17:04:12 -0800</delta_ts>
            <desc>Apply Ryosuke&apos;s comments</desc>
            <filename>bug-140999-20150213165349.patch</filename>
            <type>text/plain</type>
            <size>3737</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwMDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE3NWQ1NTU0YTkyZGEw
ZmMyODgwZjc5YTBhMDcxNzQ4YmVkYTA4Mi4uMzI1NDFkYWRkODM1NmIxZDc2NTNmZTkzNzY5MjUx
OWZjZmVmZjIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE1LTAyLTEzICBHcnpl
Z29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJl
bW92aW5nIHRleHQgbm9kZSBkb2VzIG5vdCByZW1vdmUgaXRzIGFzc29jaWF0ZWQgbWFya2Vycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwOTk5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3Zpbmcg
dGV4dCBub2RlIHZpYSBzY3JpcHQgZG9lcyBub3QgcmVtb3ZlIGl0cyBtYXJrZXJzLgorICAgICAg
ICBGb3IgZXhhbXBsZSwgcnVubmluZyB0aGUgZm9sbG93aW5nIHNjcmlwdDoKKworICAgICAgICA8
c2NyaXB0PgorICAgICAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXN0RWxlbWVudCIpOworICAgICAgICAgICAgZGl2LmZvY3VzKCk7CisgICAgICAgICAgICBkb2N1
bWVudC5leGVjQ29tbWFuZCgiSW5zZXJ0VGV4dCIsIGZhbHNlLCAid2VsbGxjb21lICIpOworCisg
ICAgICAgICAgICAvLyBHaXZlIGEgdGltZSBhc3luYyBzcGVsbGNoZWNrZXIgdG8gc2hvdyBpdHMg
bWFya2VycyBhbmQKKyAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUgbm9kZS4KKyAgICAgICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGRpdi5yZW1vdmVDaGlsZChkaXYuZmlyc3RDaGlsZCk7
IH0sIDEwMCk7CisgICAgICAgIDwvc2NyaXB0PgorCisgICAgICAgIHdpbGwgY2F1c2UgdGhhdCBE
b2N1bWVudE1hcmtlckNvbnRyb2xsZXIgc3RpbGwgc3RvcmVzIHRoZSBtYXJrZXJzIGZvcgorICAg
ICAgICBkZXRhY2hlZCBub2RlLgorCisgICAgICAgIFRoZSBzYW1lIGlzc3VlIG9jY3VycyB3aGVu
IHRoZSB0ZXh0IGdldHMgY2xlYXJlZCwgZm9yIGV4YW1wbGUsCisgICAgICAgIDxzY3JpcHQ+Cisg
ICAgICAgICAgICBpbnB1dC52YWx1ZSA9ICIiOyAvLyBmb3IgSFRNTFRleHRBcmVhRWxlbWVudCwg
SFRNTElucHV0RWxlbWVudAorICAgICAgICAgICAgLy8gb3IKKyAgICAgICAgICAgIGRpdi5pbm5l
ckhUTUwgPSAiIjsgLy8gZm9yIGNvbnRlbnQgZWRpdGFibGUKKyAgICAgICAgPC9zY3JpcHQ+CisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLiBJbnRlcm5hbHMgbWFya2VyIEFQSXMgb3BlcmF0ZSBvbiB0
ZXh0IG5vZGUgYXR0YWNoZWQKKyAgICAgICAgdG8gdGhlIGVsZW1lbnQuIFRvIHRlc3QgaXQgd2Ug
Y291bGQgZXhwb3NlIGRvY3VtZW50KCkubWFya2VycygpLmhhc01hcmtlcnMoKQorICAgICAgICBi
dXQgdGhlcmUgaXMgbm8gbW9yZSB1c2VmdWwgY2FzZXMgd2hlcmUgaXQgY291bGQgYmUgdXNlZC4K
KyAgICAgICAgQW5vdGhlciBvYnN0YWNsZSBpcyB0aGF0IHdlIGFyZSBpbiBpc0luU2hhZG93VHJl
ZSgpIHNvIHRoYXQgdGhlcmUgaXMKKyAgICAgICAgbm8gcG9zc2libGUgdG8gcmVnaXN0ZXIgb24g
IkRPTVN1YnRyZWVNb2RpZmllZCIgZXZlbnQuCisgICAgICAgIFRlc3QgY2FzZXMgYXR0YWNoZWQg
dG8gdGhlIGJ1ZzoKKyAgICAgICAgMS4gaW5wdXQudmFsdWUgPSAiIiAgaHR0cHM6Ly9idWctMTQw
OTk5LWF0dGFjaG1lbnRzLndlYmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9MjQ1NzA0CisgICAg
ICAgIDIuIGVsZW0ucmVtb3ZlQ2hpbGQodGV4dE5vZGUpIGh0dHBzOi8vYnVnLTE0MDk5OS1hdHRh
Y2htZW50cy53ZWJraXQub3JnL2F0dGFjaG1lbnQuY2dpP2lkPTI0NjUxNQorCisgICAgICAgIFJl
bW92ZSBtYXJrZXJzIHdoZW4gdGV4dCBub2RlcyBhcmUgYWJvdXQgdG8gcmVtb3ZlLgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bm9kZUNo
aWxkcmVuV2lsbEJlUmVtb3ZlZCk6CisgICAgICAgIEZpeGVzIGlucHV0LnZhbHVlID0gIiIKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpub2RlV2lsbEJlUmVtb3ZlZCk6CisgICAgICAgIEZp
eGVzIGVsZW0ucmVtb3ZlQ2hpbGQodGV4dE5vZGUpCisKIDIwMTUtMDItMTIgIFRpbW90aHkgSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoZXMgdW5kZXIg
ZGV0ZWN0SXRlbUFyb3VuZEhpdFRlc3RSZXN1bHQgd2hlbiBEYXRhRGV0ZWN0b3JzIGlzIG5vdCBh
dmFpbGFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDA3OWIxNDEyMzExODE0NWE1YTQ0
Zjk5YjVmZDliNTIzMDVkZWFlZDMuLmQ1NWI3NDNkYmNiNTc1N2M5YTZiYTk3MTI3Njg1MTdmNzli
MTAxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTQ1LDYgKzE0NSw3IEBACiAjaW5j
bHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgog
I2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0LmgiCisjaW5jbHVkZSAiVGV4dE5vZGVUcmF2ZXJzYWwu
aCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3Jt
U291cmNlLmgiCiAjaW5jbHVkZSAiVHJlZVdhbGtlci5oIgpAQCAtMzY4NCw2ICszNjg1LDExIEBA
IHZvaWQgRG9jdW1lbnQ6Om5vZGVDaGlsZHJlbldpbGxCZVJlbW92ZWQoQ29udGFpbmVyTm9kZSYg
Y29udGFpbmVyKQogICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NhcmV0Q29udHJvbGxl
cigpLm5vZGVXaWxsQmVSZW1vdmVkKCpuKTsKICAgICAgICAgfQogICAgIH0KKworICAgIGlmICht
X21hcmtlcnMtPmhhc01hcmtlcnMoKSkgeworICAgICAgICBmb3IgKFRleHQqIHRleHROb2RlID0g
VGV4dE5vZGVUcmF2ZXJzYWw6OmZpcnN0Q2hpbGQoY29udGFpbmVyKTsgdGV4dE5vZGU7IHRleHRO
b2RlID0gVGV4dE5vZGVUcmF2ZXJzYWw6Om5leHRTaWJsaW5nKCp0ZXh0Tm9kZSkpCisgICAgICAg
ICAgICBtX21hcmtlcnMtPnJlbW92ZU1hcmtlcnModGV4dE5vZGUsIERvY3VtZW50TWFya2VyOjpB
bGxNYXJrZXJzKCkpOworICAgIH0KIH0KIAogdm9pZCBEb2N1bWVudDo6bm9kZVdpbGxCZVJlbW92
ZWQoTm9kZSYgbikKQEAgLTM3MDMsNiArMzcwOSw5IEBAIHZvaWQgRG9jdW1lbnQ6Om5vZGVXaWxs
QmVSZW1vdmVkKE5vZGUmIG4pCiAgICAgICAgIGZyYW1lLT5zZWxlY3Rpb24oKS5ub2RlV2lsbEJl
UmVtb3ZlZChuKTsKICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+ZHJhZ0NhcmV0Q29udHJvbGxlcigp
Lm5vZGVXaWxsQmVSZW1vdmVkKG4pOwogICAgIH0KKworICAgIGlmIChpczxUZXh0PihuKSkKKyAg
ICAgICAgbV9tYXJrZXJzLT5yZW1vdmVNYXJrZXJzKCZuLCBEb2N1bWVudE1hcmtlcjo6QWxsTWFy
a2VycygpKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6dGV4dEluc2VydGVkKE5vZGUqIHRleHQsIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQo=
</data>
<flag name="review"
          id="271466"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>