<?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>81656</bug_id>
          
          <creation_ts>2012-03-20 06:21:33 -0700</creation_ts>
          <short_desc>Backspace/delete produces combined font/span from existing inline elements</short_desc>
          <delta_ts>2012-06-25 10:04:46 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc>http://tinymce.com/webkit/backspace_delete.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>89890</dependson>
          <blocked>6627</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Johan &quot;Spocke&quot; Sörlin">spocke</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ayg</cc>
    
    <cc>enrica</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>583005</commentid>
    <comment_count>0</comment_count>
    <who name="Johan &quot;Spocke&quot; Sörlin">spocke</who>
    <bug_when>2012-03-20 06:21:33 -0700</bug_when>
    <thetext>Backspace/delete produces a font or span element of the combined text styles when you delete the last character in a paragraph.

Expected results:
It should not touch any existing inline elements and only delete the character and insert a BR element to place the caret.

Actual results:
It combines all visual styles into a span or font element.

Steps to reproduce scenario 1:
1. Open the attached URL.
2. Click &quot;Dump HTML&quot;.
3. Notice that the &quot;1&quot; is wrapped in a span.
4. Place the caret after the &quot;1&quot;.
5. Press backspace.
6. Click &quot;Dump HTML&quot;.
7. Notice that the span is now replaced with a font element.

Steps to reproduce scenario 2:
1. Open the attached URL.
2. Click &quot;Dump HTML&quot;.
3. Notice that the &quot;2&quot; is wrapped in a b.
4. Click the &quot;Set StyleWithCSS&quot;
5. Place the caret after the &quot;2&quot;.
6. Press backspace.
7. Click &quot;Dump HTML&quot;.
8. Notice that the b is now replaced with a span element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591893</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-29 23:19:13 -0700</bug_when>
    <thetext>Aryeh,

Do you know the expected behavior here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593032</commentid>
    <comment_count>2</comment_count>
    <who name="Aryeh Gregor">ayg</who>
    <bug_when>2012-04-01 06:29:53 -0700</bug_when>
    <thetext>Testing at &lt;http://aryeh.name/tmp/editing/autoimplementation.html#delete&gt; with input &apos;&lt;p&gt;&lt;span style=&quot;font-size: large&quot;&gt;1[]&lt;/span&gt;&lt;/p&gt;&apos;, I find the spec says to produce:

  &lt;p&gt;&lt;span style=&quot;font-size: large&quot;&gt;{}&lt;br&gt;&lt;/span&gt;&lt;/p&gt;

which is as requested.  Firefox 14.0a1 seems to remove the tag entirely in the second case, which is a bug.  Opera Next 12.00 alpha seems to behave per spec.  IE 10 Developer Preview deletes the entire paragraph here when you backspace, which is an egregious bug, but seems to leave the span/b tags alone.

Relevant parts of the spec are not exactly simple, but if you step through them I think you&apos;ll find that it matches the autoimplementation:

http://dvcs.w3.org/hg/editing/raw-file/tip/editing.html#the-delete-command
http://dvcs.w3.org/hg/editing/raw-file/tip/editing.html#delete-the-selection

Basically, in this case the text node is removed from its parent, then it notices that the block is now empty, so it adds a &lt;br&gt;.  The interesting line is

&quot;&quot;&quot;
If the block node of parent has no visible children, and parent is editable or an editing host, call createElement(&quot;br&quot;) on the context object and append the result as the last child of parent.
&quot;&quot;&quot;

&quot;parent&quot; here is the &lt;span&gt; or &lt;b&gt; or such, and this is run after its text node child is removed.  If you look at &quot;View comments&quot;, this step was deliberately done before stripping wrappers like &lt;span&gt;/&lt;b&gt;, due to &lt;https://www.w3.org/Bugs/Public/show_bug.cgi?id=13831&gt;.  That was in turn inspired by WebKit bug 7360.


In summary, I think this bug is legitimate, and WebKit should match the spec.  Whatever code removes the empty tags here should come after the code that adds a &lt;br&gt; -- then by the time it checks whether the &lt;span&gt;/&lt;b&gt;/etc. is empty, it won&apos;t be, because it will have a &lt;br&gt; in it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632728</commentid>
    <comment_count>3</comment_count>
      <attachid>143818</attachid>
    <who name="Parag Radke">parag</who>
    <bug_when>2012-05-24 06:43:23 -0700</bug_when>
    <thetext>Created attachment 143818
Praposed patch

Please give your feed back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633000</commentid>
    <comment_count>4</comment_count>
      <attachid>143818</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-24 11:36:32 -0700</bug_when>
    <thetext>Comment on attachment 143818
Praposed patch

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

This patch makes things worse, not better.

&gt; Source/WebCore/ChangeLog:12
&gt; +        Covered by existing test, updated expected.txt.

Definitely not. r- because of the lack of the tests.

&gt; Source/WebCore/editing/DeleteSelectionCommand.cpp:527
&gt; +                    if (isTableStructureNode(node.get()))
&gt; +                        removeNode(node);
&gt; +                    else {
&gt; +                        while (n != node) {
&gt; +                            removeNode(n);
&gt; +                            // see http://dvcs.w3.org/hg/editing/raw-file/tip/editing.html#delete-the-selection point 22 
&gt; +                            if (!nParent-&gt;hasChildNodes() &amp;&amp; isOnlyChildOfParent(nParent)) {
&gt; +                                RefPtr&lt;Node&gt; placeholder = m_needPlaceholder ? createBreakElement(document()).get() : 0;
&gt; +                                if (placeholder) {
&gt; +                                    if (m_sanitizeMarkup)
&gt; +                                        removeRedundantBlocks();
&gt; +                                    nParent-&gt;appendChild(placeholder.get());
&gt; +                                    m_needPlaceholder = false;
&gt; +                                }
&gt; +                                break;
&gt; +                            }
&gt; +                            // if nParent-&gt;isOnlyChildOfParent() is false we are going to remove nParent.
&gt; +                            if (nParent != node) {
&gt; +                                n = nParent-&gt;parentNode();
&gt; +                                removeNode(nParent);
&gt; +                                nParent = n-&gt;parentNode();
&gt; +                                continue;
&gt; +                            }
&gt; +                            removeNode(node);
&gt; +                            break;
&gt; +                            n = nParent;
&gt; +                            nParent = nParent-&gt;parentNode();
&gt; +                        }
&gt; +                        node =0;
&gt; +                    } 

I don&apos;t think we can implement the spec partially like this. There are a lot of inter-dependencies between different sections in the spec.

&gt; LayoutTests/editing/deleting/delete-and-cleanup-expected.txt:8
&gt; -PASS confirmedMarkup is &apos;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&apos;
&gt; -PASS confirmedMarkup is &apos;&lt;b&gt;&lt;div style=&quot;border: solid red&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;/b&gt;&apos;
&gt; +PASS confirmedMarkup is &apos;&lt;b&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/b&gt;&apos;
&gt; +PASS confirmedMarkup is &apos;&lt;b&gt;&lt;div style=&quot;border: solid red&quot;&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;/b&gt;&apos;

These outputs look strictly worse.

&gt; LayoutTests/editing/deleting/delete-and-cleanup.html:41
&gt; +testDelete(&quot;div&quot;, &quot;&lt;div&gt;&lt;b&gt;&lt;div&gt;&lt;i&gt;Hello&lt;/i&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&quot;, &quot;&lt;b&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/b&gt;&quot;);
&gt; +testDelete(&quot;div&quot;, &quot;&lt;div&gt;&lt;b&gt;&lt;div style=\&quot;border: solid red\&quot;&gt;&lt;i&gt;Hello&lt;/i&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&quot;, &quot;&lt;b&gt;&lt;div style=\&quot;border: solid red\&quot;&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/div&gt;&lt;/b&gt;&quot;);

Ditto.

&gt; LayoutTests/editing/style/block-style-005-expected.txt:9
&gt; +execDeleteCommand: &lt;div id=&quot;test&quot; class=&quot;editing&quot;&gt;&lt;font size=&quot;7&quot;&gt;x&lt;/font&gt;&lt;/div&gt;&lt;div id=&quot;test&quot; class=&quot;editing&quot;&gt;&lt;font size=&quot;7&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div id=&quot;test&quot; class=&quot;editing&quot;&gt;&lt;font size=&quot;7&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;

Ditto.

&gt; LayoutTests/platform/gtk/editing/deleting/collapse-whitespace-3587601-fix-expected.txt:56
&gt; +        RenderInline {SPAN} at (0,0) size 0x28
&gt; +          RenderBR {BR} at (14,14) size 0x28

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633009</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-24 11:41:35 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Testing at &lt;http://aryeh.name/tmp/editing/autoimplementation.html#delete&gt; with input &apos;&lt;p&gt;&lt;span style=&quot;font-size: large&quot;&gt;1[]&lt;/span&gt;&lt;/p&gt;&apos;, I find the spec says to produce:
&gt; 
&gt;   &lt;p&gt;&lt;span style=&quot;font-size: large&quot;&gt;{}&lt;br&gt;&lt;/span&gt;&lt;/p&gt;
&gt; 
&gt; which is as requested.  Firefox 14.0a1 seems to remove the tag entirely in the second case, which is a bug.

Firefox&apos;s behavior makes more sense. The thing is, we have to remove the span if the user moves the caret elsewhere and bring it back since that should reset the style. And it&apos;s very undesirable to leave spans like this when the user moved the caret elsewhere because the span is going to linger around in the markup and slowly bloats the HTML over time.

&gt; In summary, I think this bug is legitimate, and WebKit should match the spec.  Whatever code removes the empty tags here should come after the code that adds a &lt;br&gt; -- then by the time it checks whether the &lt;span&gt;/&lt;b&gt;/etc. is empty, it won&apos;t be, because it will have a &lt;br&gt; in it.

While I do agree that merging span with font is bad, I don&apos;t think we should be leaving span behind. The spec needs to change here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633035</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-24 12:04:43 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Expected results:
&gt; It should not touch any existing inline elements and only delete the character and insert a BR element to place the caret.

I don&apos;t think this is a reasonable expectation because leaving inline elements after deletion can bloat the markup over time.

&gt; Steps to reproduce scenario 1:
&gt; 1. Open the attached URL.
&gt; 2. Click &quot;Dump HTML&quot;.
&gt; 3. Notice that the &quot;1&quot; is wrapped in a span.
&gt; 4. Place the caret after the &quot;1&quot;.
&gt; 5. Press backspace.
&gt; 6. Click &quot;Dump HTML&quot;.
&gt; 7. Notice that the span is now replaced with a font element.
&gt; 
&gt; Steps to reproduce scenario 2:
&gt; 1. Open the attached URL.
&gt; 2. Click &quot;Dump HTML&quot;.
&gt; 3. Notice that the &quot;2&quot; is wrapped in a b.
&gt; 4. Click the &quot;Set StyleWithCSS&quot;
&gt; 5. Place the caret after the &quot;2&quot;.
&gt; 6. Press backspace.
&gt; 7. Click &quot;Dump HTML&quot;.
&gt; 8. Notice that the b is now replaced with a span element.

I think you meant to add step 5.5 which is to type &quot;1&quot; and &quot;2&quot; respectively. Otherwise, WebKit correctly removes all inline elements as expected. Frankly, I&apos;m not convinced that we want this behavior. The author should know whether they want CSS or &quot;presentational&quot; elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633325</commentid>
    <comment_count>7</comment_count>
    <who name="Johan &quot;Spocke&quot; Sörlin">spocke</who>
    <bug_when>2012-05-24 15:56:42 -0700</bug_when>
    <thetext>(In reply to comment #6)

Common desktop office suites like word etc keep the formatting when you delete the last character in a P tag. So when you type again it will be the right font size that the paragraph had. But sure it bloats up the HTML a bit since you might then have paragraphs like:
&lt;p&gt;&lt;span class=&quot;x&quot;&gt;&lt;b&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

It think it would look strange if you backspaced in this contents:
&lt;p&gt;&lt;span style=&quot;font-size:large&quot;&gt;a&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:large&quot;&gt;b|&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:large&quot;&gt;c&lt;/span&gt;&lt;/p&gt;

And it would produce:
&lt;p&gt;&lt;span style=&quot;font-size:large&quot;&gt;a&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;|&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size:large&quot;&gt;c&lt;/span&gt;&lt;/p&gt;

Since the line height would change when you remove the inline element. For a developer it would be ok but not for n00bs that doesn&apos;t understand that rich text editors produce HTML and that the inner element got removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633345</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-24 16:27:24 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Common desktop office suites like word etc keep the formatting when you delete the last character in a P tag.

I don&apos;t think this is true at least for bolding.

&gt; So when you type again it will be the right font size that the paragraph had. But sure it bloats up the HTML a bit since you might then have paragraphs like:
&gt; &lt;p&gt;&lt;span class=&quot;x&quot;&gt;&lt;b&gt;&lt;i&gt;&lt;br&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

Yes.

&gt; It think it would look strange if you backspaced in this contents:
&gt; &lt;p&gt;&lt;span style=&quot;font-size:large&quot;&gt;a&lt;/span&gt;&lt;/p&gt;
&gt; &lt;p&gt;&lt;span style=&quot;font-size:large&quot;&gt;b|&lt;/span&gt;&lt;/p&gt;
&gt; &lt;p&gt;&lt;span style=&quot;font-size:large&quot;&gt;c&lt;/span&gt;&lt;/p&gt;
&gt; 
&gt; And it would produce:
&gt; &lt;p&gt;&lt;span style=&quot;font-size:large&quot;&gt;a&lt;/span&gt;&lt;/p&gt;
&gt; &lt;p&gt;|&lt;/p&gt;
&gt; &lt;p&gt;&lt;span style=&quot;font-size:large&quot;&gt;c&lt;/span&gt;&lt;/p&gt;
&gt; 
&gt; Since the line height would change when you remove the inline element. For a developer it would be ok but not for n00bs that doesn&apos;t understand that rich text editors produce HTML and that the inner element got removed.

Yeah, maybe we need to treat font-size special.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633825</commentid>
    <comment_count>9</comment_count>
    <who name="Aryeh Gregor">ayg</who>
    <bug_when>2012-05-25 04:29:08 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; And it&apos;s very undesirable to leave spans like this when the user moved the caret elsewhere because the span is going to linger around in the markup and slowly bloats the HTML over time.

I agree if the tags don&apos;t have any effect -- e.g., leaving just &lt;b&gt;&lt;/b&gt; anywhere with no contents is wrong, because it doesn&apos;t do anything.  But here, the tags serve a very important purpose: they remember the style that the paragraph had.  In word processors, AFAICT, the style of each line is remembered even if all text on the line is deleted.  Try this test:

1) Type &quot;foo\nbar\nbaz&quot;.

2) Select all and make bold.

3) Delete the three letters &quot;bar&quot;, so the middle line is empty.

4) Move the cursor someplace else, then move it back to the empty middle line.

5) Type &quot;quz&quot;.

In LibreOffice 3.4.4, the word &quot;quz&quot; is bold.  This is as expected: the user made all three lines bold, and all three lines should stay bold even if text is deleted from them.  The tag should only be removed if the line itself is removed.

Think about it from the perspective of a user who doesn&apos;t know anything about HTML.  The user made a whole range of text bold, so from then on, anything within that range of text should be bold.  If you type &quot;foobarbaz&quot;, delete &quot;bar&quot;, and then type &quot;quz&quot; instead, &quot;quz&quot; is bolded.  Why should the linebreaks make any difference?

The only reason there&apos;s a difference right now in browsers is because bolding &quot;foobarbaz&quot; produces &quot;&lt;b&gt;foobarbaz&lt;/b&gt;&quot;, with only one &lt;b&gt; tag.  Bolding &quot;&lt;p&gt;foo&lt;p&gt;bar&lt;p&gt;baz&quot; produces &quot;&lt;p&gt;&lt;b&gt;foo&lt;/b&gt;&lt;p&gt;&lt;b&gt;bar&lt;/b&gt;&lt;p&gt;&lt;b&gt;baz&lt;/b&gt;&quot;, with three &lt;b&gt; tags.  This is an implementation detail that users shouldn&apos;t be exposed to.  It should work the same as if we produced &quot;&lt;b&gt;&lt;p&gt;foo&lt;p&gt;bar&lt;p&gt;baz&lt;/p&gt;&lt;/b&gt;&quot; -- deleting &quot;bar&quot; should leave that position bold.

&gt; While I do agree that merging span with font is bad, I don&apos;t think we should be leaving span behind. The spec needs to change here.

I disagree, for the reasons given.  The spec matches word processors (at least LibreOffice), and I think it matches user expectations.  I don&apos;t see why the user would expect it to behave any differently depending on whether &quot;bar&quot; is on its own line or not.  See also &lt;https://www.w3.org/Bugs/Public/show_bug.cgi?id=13831&gt;, where Ehsan seems to agree with me.  If you can convince him, then I&apos;ll change the spec to match what the majority of browsers want, but I think the spec is right.

(In reply to comment #6)
&gt; I don&apos;t think this is a reasonable expectation because leaving inline elements after deletion can bloat the markup over time.

Using the least markup necessary to achieve expected results is not bloat.  If the expected result is that deleting all text on the line and then later coming back and typing on the line results in bold text, then leaving the tags is necessary.  We should try to use the minimum markup necessary, but no less.

(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Common desktop office suites like word etc keep the formatting when you delete the last character in a P tag.
&gt; 
&gt; I don&apos;t think this is true at least for bolding.

My test-case above found that LibreOffice does preserve bold when you delete the last character on a line.  I&apos;m almost sure that Word does too.  I&apos;ll get back to you when I have a chance to test it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633828</commentid>
    <comment_count>10</comment_count>
    <who name="Aryeh Gregor">ayg</who>
    <bug_when>2012-05-25 04:42:53 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; 1) Type &quot;foo\nbar\nbaz&quot;.
&gt; 
&gt; 2) Select all and make bold.
&gt; 
&gt; 3) Delete the three letters &quot;bar&quot;, so the middle line is empty.
&gt; 
&gt; 4) Move the cursor someplace else, then move it back to the empty middle line.
&gt; 
&gt; 5) Type &quot;quz&quot;.
&gt; 
&gt; In LibreOffice 3.4.4, the word &quot;quz&quot; is bold.

asmodai in #whatwg confirms that Word 2010 behaves this way too (thanks, asmodai!).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634086</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-25 11:12:22 -0700</bug_when>
    <thetext>Okay, it sounds like we just need to revert http://trac.webkit.org/changeset/112444 then. I don&apos;t think we want to support preserving the original elements just yet.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143818</attachid>
            <date>2012-05-24 06:43:23 -0700</date>
            <delta_ts>2012-05-24 11:36:31 -0700</delta_ts>
            <desc>Praposed patch</desc>
            <filename>bug-81656-20120524191340.patch</filename>
            <type>text/plain</type>
            <size>14144</size>
            <attacher name="Parag Radke">parag</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExODM1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA1LTI0ICBQYXJhZyBS
YWRrZSAgPHBhcmFnQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBCYWNrc3BhY2UvZGVsZXRlIHBy
b2R1Y2VzIGNvbWJpbmVkIGZvbnQvc3BhbiBmcm9tIGV4aXN0aW5nIGlubGluZSBlbGVtZW50cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE2NTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFYXJsaWVyIHdl
IHVzZSB0byByZW1vdmUgdGhlIGVudGlyZSBzdWIgdHJlZSBpZiB0aGUgbGFzdCBkZWNlbmRlbnQg
b2YgdGhlIHJvb3QgbGllcyBpbnNpZGUKKyAgICAgICAgdGhlIHNlbGVjdGVkIHJhbmdlLiBOb3cg
aW1wbGVtZW50ZWQgYXMgcGVyIHBvaW50IDIyIG9mCisgICAgICAgIGh0dHA6Ly9kdmNzLnczLm9y
Zy9oZy9lZGl0aW5nL3Jhdy1maWxlL3RpcC9lZGl0aW5nLmh0bWwjZGVsZXRlLXRoZS1zZWxlY3Rp
b24KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3QsIHVwZGF0ZWQgZXhwZWN0ZWQu
dHh0LgorCisgICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmlzT25seUNoaWxkT2ZQYXJlbnQpOiBhZGRlZCBhIGZ1bmN0aW9uIGlz
T25seUNoaWxkT2ZQYXJlbnQoKSwgd2hpY2ggcmV0dXJuIHRydWUgaWYKKyAgICAgICAgbm9kZSBp
cyB0aGUgb25seSBjaGlsZCBvZiB0aGUgcGFyZW50LCBmYWxzZSBvdGhlciB3aXNlLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpo
YW5kbGVHZW5lcmFsRGVsZXRlKToKKyAgICAgICAgR2V0IHRoZSBsYXN0IGRlY2VuZGVudCBvZiB0
aGUgbm9kZSBhcyBuLgorICAgICAgICBHZXQgdGhlIHBhcmVudCBvZiB0aGUgbGFzdCBkZWNlbmRl
bnQgbm9kZSBhcyBwLgorICAgICAgICBJZiBub2RlIGlzIHRhYmxlIHN0cnVjdHVyZSBub2RlIGRl
bGV0ZSBpdCBzdHJhaWdodCB3YXkuCisgICAgICAgIERvIHRoZSBmb2xsb3dpbmcgc3RlcHMgdGls
bCBuICE9IG5vZGUuCisgICAgICAgIFJlbW92ZSBuLgorICAgICAgICBJZiBQIGRvZXMgbm90IGhh
dmUgYW55IGNoaWxkcmVuIGFuZCBpdCdzIG9ubHkgY2hpbGQgb2YgaXQncyBwYXJlbnQgY3JlYXRl
IGEgcGxhY2UgaG9sZGVyIEJyCisgICAgICAgIGFuZCBhcHBlbmQgaXQgYXMgYSBjaGlsZCBvZiBw
IGFuZCBicmVhayBvdXQgZnJvbSB0aGUgbG9vcC4KKyAgICAgICAgSWYgcCBpcyBzYW1lIGFzIG5v
ZGUgcmVtb3ZlIHAgYW5kIGJyZWFrIG91dCBmcm9tIHRoZSBsb29wLgorICAgICAgICBFbHNlIG1h
a2UgbiBwb2ludCB0byBwYXJlbnQgb2YgcC4gcmVtb3ZlIHAgYW5kIG1ha2UgcCBwb2ludCB0byBw
YXJlbnQgb2YgbiBhbmQgY29udGludWUuCisgICAgICAgIElmIHAgaGFzIG90aGVyIGNoaWxkcmVu
IG1ha2UgbiBwb2ludCB0byBwIGFuZCBwIHBvaW50IHRvIHAncyBwYXJlbnQuCisKKwogMjAxMi0w
NS0yMyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBhZGQgYSBjb21tYW5kIHRvIEluc3BlY3Rvck1lbW9yeUFnZW50IGZvciBn
ZXR0aW5nIHByb2Nlc3MgbWVtb3J5IGJyZWFrIGRvd24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAkocmV2aXNpb24gMTE3MjY1
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDA4LDYgKzQwOCwxMSBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OmRlbGV0ZVRleHRGCiAgICAgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVRleHRG
cm9tTm9kZShub2RlLCBvZmZzZXQsIGNvdW50KTsKIH0KIAorYm9vbCBpc09ubHlDaGlsZE9mUGFy
ZW50KE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuICFub2RlLT5wcmV2aW91c1NpYmxpbmcoKSAm
JiAhbm9kZS0+bmV4dFNpYmxpbmcoKTsKK30KKwogdm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5k
OjpoYW5kbGVHZW5lcmFsRGVsZXRlKCkKIHsKICAgICBpZiAobV91cHN0cmVhbVN0YXJ0LmlzTnVs
bCgpKQpAQCAtNDg4LDkgKzQ5MywzOCBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6Omhh
bmRsZUdlbmVyCiAgICAgICAgICAgICAgICAgbm9kZSA9IG5leHROb2RlLmdldCgpOwogICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBOb2RlKiBuID0gbm9kZS0+bGFzdERlc2Nl
bmRhbnQoKTsKKyAgICAgICAgICAgICAgICBDb250YWluZXJOb2RlKiBuUGFyZW50ID0gbi0+cGFy
ZW50Tm9kZSgpOwogICAgICAgICAgICAgICAgIGlmIChtX2Rvd25zdHJlYW1FbmQuZGVwcmVjYXRl
ZE5vZGUoKSA9PSBuICYmIG1fZG93bnN0cmVhbUVuZC5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgp
ID49IGNhcmV0TWF4T2Zmc2V0KG4pKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlbW92ZU5vZGUo
bm9kZS5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vZGUgPSAwOworICAgICAgICAgICAg
ICAgICAgICBpZiAoaXNUYWJsZVN0cnVjdHVyZU5vZGUobm9kZS5nZXQoKSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICByZW1vdmVOb2RlKG5vZGUpOworICAgICAgICAgICAgICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChuICE9IG5vZGUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZW1vdmVOb2RlKG4pOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIHNlZSBodHRwOi8vZHZjcy53My5vcmcvaGcvZWRpdGluZy9yYXctZmlsZS90aXAv
ZWRpdGluZy5odG1sI2RlbGV0ZS10aGUtc2VsZWN0aW9uIHBvaW50IDIyIAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICghblBhcmVudC0+aGFzQ2hpbGROb2RlcygpICYmIGlzT25seUNo
aWxkT2ZQYXJlbnQoblBhcmVudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UmVmUHRyPE5vZGU+IHBsYWNlaG9sZGVyID0gbV9uZWVkUGxhY2Vob2xkZXIgPyBjcmVhdGVCcmVh
a0VsZW1lbnQoZG9jdW1lbnQoKSkuZ2V0KCkgOiAwOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAocGxhY2Vob2xkZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChtX3Nhbml0aXplTWFya3VwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlbW92ZVJlZHVuZGFudEJsb2NrcygpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgblBhcmVudC0+YXBwZW5kQ2hpbGQocGxhY2Vob2xkZXIuZ2V0KCkp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9uZWVkUGxhY2Vob2xkZXIg
PSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgblBhcmVudC0+aXNPbmx5Q2hpbGRP
ZlBhcmVudCgpIGlzIGZhbHNlIHdlIGFyZSBnb2luZyB0byByZW1vdmUgblBhcmVudC4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoblBhcmVudCAhPSBub2RlKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG4gPSBuUGFyZW50LT5wYXJlbnROb2RlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZU5vZGUoblBhcmVudCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5QYXJlbnQgPSBuLT5wYXJlbnROb2RlKCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVOb2RlKG5vZGUpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG4gPSBuUGFyZW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5QYXJlbnQg
PSBuUGFyZW50LT5wYXJlbnROb2RlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICAgICBub2RlID0wOworICAgICAgICAgICAgICAgICAgICB9IAogICAg
ICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICBub2RlID0gbm9kZS0+dHJh
dmVyc2VOZXh0Tm9kZSgpOwogICAgICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTE4MzU3
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTItMDUtMjQgIFBhcmFnIFJhZGtlICA8cGFyYWdAbW90b3JvbGEuY29tPgorCisgICAg
ICAgIEJhY2tzcGFjZS9kZWxldGUgcHJvZHVjZXMgY29tYmluZWQgZm9udC9zcGFuIGZyb20gZXhp
c3RpbmcgaW5saW5lIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MTY1NgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdCwg
dXBkYXRlZCBleHBlY3RlZC50eHQuCisKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL2RlbGV0
ZS1hbmQtY2xlYW51cC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9k
ZWxldGUtYW5kLWNsZWFudXAuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL2Jsb2NrLXN0
eWxlLTAwNS1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9l
eHBlY3RhdGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9lZGl0aW5nL2RlbGV0aW5n
L2NvbGxhcHNlLXdoaXRlc3BhY2UtMzU4NzYwMS1maXgtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS0zODY1ODU0LWZpeC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9xdC90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisKIDIwMTItMDUtMjQg
IEtyaXN0w7NmIEtvc3p0ecOzICA8a2tyaXN0b2ZAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAg
IG5ldyB0ZXN0IGZhc3QvanMvZGZnLWFyZ3VtZW50cy1taXhlZC1hbGlhcy5odG1sIGZhaWwgb24g
MzIgYml0IGxpbnV4CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1h
bmQtY2xlYW51cC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9kZWxldGluZy9kZWxldGUtYW5kLWNsZWFudXAtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTcy
NjUpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1hbmQtY2xlYW51cC1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsOCArNCw4IEBAIFBBU1MgY29uZmlybWVk
TWFya3VwIGlzICc8YnI+JwogUEFTUyBjb25maXJtZWRNYXJrdXAgaXMgJzxicj4nCiBQQVNTIGNv
bmZpcm1lZE1hcmt1cCBpcyAnPGRpdiBpZD0ibXlkaXYiPjxicj48L2Rpdj4nCiBQQVNTIGNvbmZp
cm1lZE1hcmt1cCBpcyAnPGJyPicKLVBBU1MgY29uZmlybWVkTWFya3VwIGlzICc8Yj48YnI+PC9i
PicKLVBBU1MgY29uZmlybWVkTWFya3VwIGlzICc8Yj48ZGl2IHN0eWxlPSJib3JkZXI6IHNvbGlk
IHJlZCI+PGJyPjwvZGl2PjwvYj4nCitQQVNTIGNvbmZpcm1lZE1hcmt1cCBpcyAnPGI+PGk+PGJy
PjwvaT48L2I+JworUEFTUyBjb25maXJtZWRNYXJrdXAgaXMgJzxiPjxkaXYgc3R5bGU9ImJvcmRl
cjogc29saWQgcmVkIj48aT48YnI+PC9pPjwvZGl2PjwvYj4nCiBQQVNTIGNvbmZpcm1lZE1hcmt1
cCBpcyAnPGJyPicKIFBBU1MgY29uZmlybWVkTWFya3VwIGlzICc8YnI+JwogUEFTUyBjb25maXJt
ZWRNYXJrdXAgaXMgJzxwPjxicj48L3A+JwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxl
dGluZy9kZWxldGUtYW5kLWNsZWFudXAuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1hbmQtY2xlYW51cC5odG1sCShyZXZpc2lvbiAxMTcyNjUp
CisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1hbmQtY2xlYW51cC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNyw4IEBAIHRlc3REZWxldGUoImRpdiIsICJIZWxs
byIsICI8YnI+Iik7CiB0ZXN0RGVsZXRlKCJkaXYiLCAiPGRpdj5IZWxsbzwvZGl2PiIsICI8YnI+
Iik7CiB0ZXN0RGVsZXRlKCJkaXYiLCAiPGRpdiBpZD1cIm15ZGl2XCI+SGVsbG88L2Rpdj4iLCAi
PGRpdiBpZD1cIm15ZGl2XCI+PGJyPjwvZGl2PiIpOwogdGVzdERlbGV0ZSgiZGl2IiwgIjxkaXY+
PGRpdj5IZWxsbzwvZGl2PjwvZGl2PiIsICI8YnI+Iik7Ci10ZXN0RGVsZXRlKCJkaXYiLCAiPGRp
dj48Yj48ZGl2PjxpPkhlbGxvPC9pPjwvZGl2PjwvYj48L2Rpdj4iLCAiPGI+PGJyPjwvYj4iKTsK
LXRlc3REZWxldGUoImRpdiIsICI8ZGl2PjxiPjxkaXYgc3R5bGU9XCJib3JkZXI6IHNvbGlkIHJl
ZFwiPjxpPkhlbGxvPC9pPjwvZGl2PjwvYj48L2Rpdj4iLCAiPGI+PGRpdiBzdHlsZT1cImJvcmRl
cjogc29saWQgcmVkXCI+PGJyPjwvZGl2PjwvYj4iKTsKK3Rlc3REZWxldGUoImRpdiIsICI8ZGl2
PjxiPjxkaXY+PGk+SGVsbG88L2k+PC9kaXY+PC9iPjwvZGl2PiIsICI8Yj48aT48YnI+PC9pPjwv
Yj4iKTsKK3Rlc3REZWxldGUoImRpdiIsICI8ZGl2PjxiPjxkaXYgc3R5bGU9XCJib3JkZXI6IHNv
bGlkIHJlZFwiPjxpPkhlbGxvPC9pPjwvZGl2PjwvYj48L2Rpdj4iLCAiPGI+PGRpdiBzdHlsZT1c
ImJvcmRlcjogc29saWQgcmVkXCI+PGk+PGJyPjwvaT48L2Rpdj48L2I+Iik7CiB0ZXN0RGVsZXRl
KCJkaXYiLCAiPGRpdj5IZWxsbzwvZGl2PjxkaXY+d29ybGQ8L2Rpdj4iLCAiPGJyPiIpOwogdGVz
dERlbGV0ZSgiZGl2IiwgIjxkaXY+SGVsbG88L2Rpdj48ZGl2PndvcmxkPC9kaXY+IiwgIjxicj4i
KTsKIHRlc3REZWxldGUoImRpdiIsICI8ZGl2PjxwPkhlbGxvPC9wPjwvZGl2PjxwPndvcmxkPC9w
PjwvZGl2PiIsICI8cD48YnI+PC9wPiIpOwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zdHls
ZS9ibG9jay1zdHlsZS0wMDUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvc3R5bGUvYmxvY2stc3R5bGUtMDA1LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE3
MjY1KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9ibG9jay1zdHlsZS0wMDUtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02LDQgKzYsNCBAQCBleGVjSW5zZXJ0UGFyYWdyYXBo
Q29tbWFuZDogPGRpdiBpZD0idGVzCiBleGVjSW5zZXJ0UGFyYWdyYXBoQ29tbWFuZDogPGRpdiBp
ZD0idGVzdCIgY2xhc3M9ImVkaXRpbmciPng8L2Rpdj48ZGl2IGlkPSJ0ZXN0IiBjbGFzcz0iZWRp
dGluZyI+PGJyPjwvZGl2PjxkaXYgaWQ9InRlc3QiIGNsYXNzPSJlZGl0aW5nIj48YnI+PC9kaXY+
CiBleGVjVHlwZUNoYXJhY3RlckNvbW1hbmQ6IDxkaXYgaWQ9InRlc3QiIGNsYXNzPSJlZGl0aW5n
Ij54PC9kaXY+PGRpdiBpZD0idGVzdCIgY2xhc3M9ImVkaXRpbmciPjxicj48L2Rpdj48ZGl2IGlk
PSJ0ZXN0IiBjbGFzcz0iZWRpdGluZyI+eDwvZGl2PgogZXhlY0ZvbnRTaXplQ29tbWFuZDogPGRp
diBpZD0idGVzdCIgY2xhc3M9ImVkaXRpbmciPjxmb250IHNpemU9IjciPng8L2ZvbnQ+PC9kaXY+
PGRpdiBpZD0idGVzdCIgY2xhc3M9ImVkaXRpbmciPjxmb250IHNpemU9IjciPjxicj48L2ZvbnQ+
PC9kaXY+PGRpdiBpZD0idGVzdCIgY2xhc3M9ImVkaXRpbmciPjxmb250IHNpemU9IjciPng8L2Zv
bnQ+PC9kaXY+Ci1leGVjRGVsZXRlQ29tbWFuZDogPGRpdiBpZD0idGVzdCIgY2xhc3M9ImVkaXRp
bmciPjxmb250IHNpemU9IjciPng8L2ZvbnQ+PC9kaXY+PGRpdiBpZD0idGVzdCIgY2xhc3M9ImVk
aXRpbmciPjxmb250IHNpemU9IjciPjxicj48L2ZvbnQ+PC9kaXY+PGRpdiBpZD0idGVzdCIgY2xh
c3M9ImVkaXRpbmciPjxicj48L2Rpdj4KK2V4ZWNEZWxldGVDb21tYW5kOiA8ZGl2IGlkPSJ0ZXN0
IiBjbGFzcz0iZWRpdGluZyI+PGZvbnQgc2l6ZT0iNyI+eDwvZm9udD48L2Rpdj48ZGl2IGlkPSJ0
ZXN0IiBjbGFzcz0iZWRpdGluZyI+PGZvbnQgc2l6ZT0iNyI+PGJyPjwvZm9udD48L2Rpdj48ZGl2
IGlkPSJ0ZXN0IiBjbGFzcz0iZWRpdGluZyI+PGZvbnQgc2l6ZT0iNyI+PGJyPjwvZm9udD48L2Rp
dj4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25z
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQJKHJldmlzaW9uIDExNzI2NSkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzgwNSwz
ICszODA1LDggQEAgQlVHV0s4NjU5MiBMSU5VWCA6IGh0dHAvdGVzdHMveG1saHR0cHJlcQogLy8g
c3RyYW5nZSAiVW5leHBlY3RlZCBubyBleHBlY3RlZCByZXN1bHRzIGZvdW5kIiBvbiBjci1saW51
eCBld3MKIEJVR1dLODY2MDAgTElOVVggOiBodHRwL3Rlc3RzL2NhY2hlL2xvYWRlZC1mcm9tLWNh
Y2hlLWFmdGVyLXJlbG9hZC13aXRoaW4taWZyYW1lLmh0bWwgPSBNSVNTSU5HIFBBU1MKIEJVR1dL
ODY2MDAgTElOVVggOiBodHRwL3Rlc3RzL2NhY2hlL2xvYWRlZC1mcm9tLWNhY2hlLWFmdGVyLXJl
bG9hZC5odG1sID0gTUlTU0lORyBQQVNTCisKKy8vIFJlcXVpcmVzIHJlYmFzZWxpbmUgYWZ0ZXIg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNjU2CitCVUdXSzgxNjU2
IDogZWRpdGluZy9kZWxldGluZy9kZWxldGUtMzg2NTg1NC1maXguaHRtbCA9IFRFWFQKK0JVR1dL
ODE2NTYgOiBlZGl0aW5nL2RlbGV0aW5nL2NvbGxhcHNlLXdoaXRlc3BhY2UtMzU4NzYwMS1maXgu
aHRtbCA9IFRFWFQKKwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvZGVs
ZXRpbmcvY29sbGFwc2Utd2hpdGVzcGFjZS0zNTg3NjAxLWZpeC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvZGVsZXRpbmcvY29sbGFw
c2Utd2hpdGVzcGFjZS0zNTg3NjAxLWZpeC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDExNzI2NSkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL2RlbGV0aW5nL2NvbGxhcHNlLXdo
aXRlc3BhY2UtMzU4NzYwMS1maXgtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01Miw1
ICs1Miw2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkg
c2l6ZSA3ODR4NTg0CiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHg1
NiBbYm9yZGVyOiAoMnB4IHNvbGlkICNGRjAwMDApXQotICAgICAgICBSZW5kZXJCUiB7QlJ9IGF0
ICgxNCwxNCkgc2l6ZSAweDI4Ci1jYXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHtCUn0gb2Yg
Y2hpbGQgMSB7RElWfSBvZiBib2R5CisgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAs
MCkgc2l6ZSAweDI4CisgICAgICAgICAgUmVuZGVyQlIge0JSfSBhdCAoMTQsMTQpIHNpemUgMHgy
OAorY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7QlJ9IG9mIGNoaWxkIDAge1NQQU59IG9m
IGNoaWxkIDEge0RJVn0gb2YgYm9keQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Vk
aXRpbmcvZGVsZXRpbmcvZGVsZXRlLTM4NjU4NTQtZml4LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9kZWxldGluZy9kZWxldGUtMzg2
NTg1NC1maXgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTcyNjUpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvZWRpdGluZy9kZWxldGluZy9kZWxldGUtMzg2NTg1NC1maXgtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC02LDcgKzYsNyBAQCBFRElUSU5HIERFTEVHQVRFOiB3ZWJW
aWV3RGlkQ2hhbmdlU2VsZWN0CiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFu
Z2UgZnJvbSAzIG9mICN0ZXh0ID4gQiA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvIDMgb2YgI3RleHQgPiBJID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQKLUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSAzIG9mICN0ZXh0ID4gQiA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IHRvIDIgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBm
cm9tIDMgb2YgI3RleHQgPiBCID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gMyBvZiAjdGV4dCA+IEIgPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBh
ZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxT
RQorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBm
cm9tIDMgb2YgI3RleHQgPiBCID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gMCBvZiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJh
bmdlIGZyb20gMyBvZiAjdGV4dCA+IEIgPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCB0byAzIG9mICN0ZXh0ID4gQiA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5n
OkZBTFNFCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZp
ZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgogbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCkBAIC0xOSw2ICsxOSw4IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAogICAgICAgICAgIFJlbmRlcklubGluZSB7Qn0gYXQgKDAsMCkgc2l6ZSAzNngyOAogICAgICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzZ4MjgKICAgICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzY6ICJvbmUiCisgICAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgxNCw0Mikgc2l6ZSA3NTZ4MAorICAgICAgICAgIFJlbmRlcklubGluZSB7SX0g
YXQgKDAsMCkgc2l6ZSAweDAKICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDE0LDQyKSBz
aXplIDc1NngyOAogICAgICAgICAgIFJlbmRlcklubGluZSB7Qn0gYXQgKDAsMCkgc2l6ZSA1NHgy
OAogICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTR4MjgKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy90ZXN0X2V4cGVjdGF0aW9ucy50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAko
cmV2aXNpb24gMTE4MzUwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3Rlc3RfZXhwZWN0
YXRpb25zLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjQ0LDMgKzI0NCw3IEBAIEJVR1dLODU0MDUg
OiB0YWJsZXMvbW96aWxsYS9idWdzL2J1ZzEwMjkKIEJVR1dLODU5MTggOiBjb21wb3NpdGluZy9i
YWNrZmFjZS12aXNpYmlsaXR5L2JhY2tmYWNlLXZpc2liaWxpdHktM2QuaHRtbCA9IElNQUdFCiBC
VUdXSzg1OTE4IDogY29tcG9zaXRpbmcvYmFja2ZhY2UtdmlzaWJpbGl0eS9iYWNrZmFjZS12aXNp
YmlsaXR5LWhpZXJhcmNoaWNhbC10cmFuc2Zvcm0uaHRtbCA9IElNQUdFCiBCVUdXSzg1OTE4IDog
Y29tcG9zaXRpbmcvYmFja2ZhY2UtdmlzaWJpbGl0eS9iYWNrZmFjZS12aXNpYmlsaXR5LW5vbjNk
Lmh0bWwgPSBJTUFHRQorCisvLyBSZXF1aXJlcyByZWJhc2VsaW5lIGFmdGVyIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTY1NgorQlVHV0s4MTY1NiA6IGVkaXRpbmcv
ZGVsZXRpbmcvZGVsZXRlLTM4NjU4NTQtZml4Lmh0bWwgPSBURVhUCitCVUdXSzgxNjU2IDogZWRp
dGluZy9kZWxldGluZy9jb2xsYXBzZS13aGl0ZXNwYWNlLTM1ODc2MDEtZml4Lmh0bWwgPSBURVhU
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC90ZXN0X2V4cGVjdGF0aW9ucy50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvdGVzdF9leHBlY3RhdGlvbnMudHh0
CShyZXZpc2lvbiAxMTgzNTApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC90ZXN0X2V4cGVj
dGF0aW9ucy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTc4LDMgKzc4LDcgQEAgQlVHV0s4NTQwNSA6
IHRhYmxlcy9tb3ppbGxhL2J1Z3MvYnVnMTAyOQogCiAvLyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQgaXNuJ3QgaW1wbGVtZW50ZWQKIEJVR1dL
ODU0NjMgU0tJUCA6IGVkaXRpbmcvaW5zZXJ0aW5nL3R5cGluZy1zcGFjZS10by10cmlnZ2VyLXNt
YXJ0LWxpbmsuaHRtbCA9IEZBSUwKKworLy8gUmVxdWlyZXMgcmViYXNlbGluZSBhZnRlciBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE2NTYKK0JVR1dLODE2NTYgOiBl
ZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS0zODY1ODU0LWZpeC5odG1sID0gVEVYVAorQlVHV0s4MTY1
NiA6IGVkaXRpbmcvZGVsZXRpbmcvY29sbGFwc2Utd2hpdGVzcGFjZS0zNTg3NjAxLWZpeC5odG1s
ID0gVEVYVAo=
</data>
<flag name="review"
          id="150473"
          type_id="1"
          status="-"
          setter="rniwa"
    />
    <flag name="commit-queue"
          id="150474"
          type_id="3"
          status="-"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>