<?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>69680</bug_id>
          
          <creation_ts>2011-10-07 17:37:44 -0700</creation_ts>
          <short_desc>Dir attribute is converted into direction property when merging paragraphs</short_desc>
          <delta_ts>2011-10-11 18:06:54 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>68168</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>aharon</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>mitz</cc>
    
    <cc>playmobil</cc>
    
    <cc>spocke</cc>
    
    <cc>tony</cc>
    
    <cc>xji</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>480414</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-07 17:37:44 -0700</bug_when>
    <thetext>If a user presses delete key and merges two paragraphs between &lt;div dir=&quot;ltr&quot;&gt;X&lt;/div&gt;&lt;div dir=&quot;rtl&quot;&gt;Y&lt;/div&gt; where X and Y can independently be LTR or RTL text, should we generate &lt;div dir=&quot;ltr&quot;&gt;XY&lt;/div&gt; or &lt;div dir=&quot;ltr&quot;&gt;X&lt;span dir=&quot;rtl&quot;&gt;Y&lt;/div&gt;?

WebKit currently adds direction property when copying a content inside an element with dir property. But this wouldn&apos;t work if the copied content was wrapped by span (need to add unicode-bidi: embed as well). I don&apos;t even know what the correct behavior is.

Test case (from the bug 45784): https://bug-45784-attachments.webkit.org/attachment.cgi?id=110125</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480694</commentid>
    <comment_count>1</comment_count>
    <who name="Aharon (Vladimir) Lanin">aharon</who>
    <bug_when>2011-10-09 03:21:36 -0700</bug_when>
    <thetext>Caveat: below are my personal opinions. I do not think that there is a standard to follow here.

&gt; should we generate &lt;div dir=&quot;ltr&quot;&gt;XY&lt;/div&gt;
&gt; or &lt;div dir=&quot;ltr&quot;&gt;X&lt;span dir=&quot;rtl&quot;&gt;Y&lt;/div&gt;?

IMO, the former. The problem with the latter is that you are converting paragraph direction style to inline direction style. While paragraph direction is usually indicated by alignment, and most editors provide buttons to see it and control it, neither is the case for inline direction. Thus, later on, the user has no way of knowing that the &lt;span dir=rtl&gt; is there, and thus will be surprised when things work differently than they do normally. And even if the user figures out what&apos;s going on, he has no way of removing the inline direction style, and can not tell whether the caret is inside it or just next to it. This is all very different from the case with other styles, e.g. bolding, where the bolding is obvious in itself - and is made even more obvious by the status of its button, which also gives a way to control it.

(However, this issue should be revisited if WebKit were to start supporting a visualization of the bidi structure of the content during editing.)

&gt; WebKit currently adds direction property when copying content
&gt; inside an element with dir property. But this wouldn&apos;t work if
&gt; the copied content was wrapped by span (need to add
&gt; unicode-bidi: embed as well). I don&apos;t even know what the correct
&gt; behavior is.

First, about the dir attribute vs direction &amp; unicode-embded styles: stay true to what the source has. If it has mark-up like the dir attribute, use that mark-up. Only use CSS if it has something beyond the mark-up. 

Now regarding copying directional information on the copy command. Here too, I think the guiding principle should be to avoid creating inline direction. Thus, if you are going to be creating a &lt;div&gt; or &lt;p&gt;, I think it is very good to put a dir on it in accordance with the source&apos;s computed style (even if the source did not have it explicitly on that element). And if the source already has a &lt;span dir=...&gt;, then by all means copy it verbatim. But I do not think that it is good to create a span with direction when the source did not have it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481246</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-10 15:50:30 -0700</bug_when>
    <thetext>Thanks for the response, Aharon!

(In reply to comment #1)
&gt; &gt; should we generate &lt;div dir=&quot;ltr&quot;&gt;XY&lt;/div&gt;
&gt; &gt; or &lt;div dir=&quot;ltr&quot;&gt;X&lt;span dir=&quot;rtl&quot;&gt;Y&lt;/div&gt;?
&gt; 
&gt; IMO, the former. The problem with the latter is that you are converting paragraph direction style to inline direction style. While paragraph direction is usually indicated by alignment, and most editors provide buttons to see it and control it, neither is the case for inline direction.

Right. It&apos;s really hard for users to figure out that the latter is happening.

&gt;Thus, later on, the user has no way of knowing that the &lt;span dir=rtl&gt; is there, and thus will be surprised when things work differently than they do normally. And even if the user figures out what&apos;s going on, he has no way of removing the inline direction style, and can not tell whether the caret is inside it or just next to it.

Safari provides a context menu to do this but I agree that it&apos;s not so user-friendly if the user had to use it very often after copy-paste.

&gt; &gt; WebKit currently adds direction property when copying content
&gt; &gt; inside an element with dir property. But this wouldn&apos;t work if
&gt; &gt; the copied content was wrapped by span (need to add
&gt; &gt; unicode-bidi: embed as well). I don&apos;t even know what the correct
&gt; &gt; behavior is.
&gt; 
&gt; First, about the dir attribute vs direction &amp; unicode-embded styles: stay true to what the source has. If it has mark-up like the dir attribute, use that mark-up. Only use CSS if it has something beyond the mark-up. 

This issue is a little tangential in my opinion. It&apos;s same problem as WebKit converting b to &lt;span style=&quot;font-weight: bold&quot;&gt; in some cases. We can probably tackle this in some other bug.

&gt; Now regarding copying directional information on the copy command. Here too, I think the guiding principle should be to avoid creating inline direction. Thus, if you are going to be creating a &lt;div&gt; or &lt;p&gt;, I think it is very good to put a dir on it in accordance with the source&apos;s computed style (even if the source did not have it explicitly on that element). And if the source already has a &lt;span dir=...&gt;, then by all means copy it verbatim. But I do not think that it is good to create a span with direction when the source did not have it.

Here&apos;s a tricky case what if an user selected a part of block? e.g. ([ and ] indicate the start and the end of selection below)
&lt;div dir=&quot;rtl&quot;&gt;hello [world&lt;p&gt;WebKit&lt;/p&gt;]&lt;/div&gt;

In this case, p is a block element and it has RTL directionality inherited from the parent div. Which one of the following markups should we generate?
1. world&lt;p&gt;WebKit&lt;/p&gt;
2. world&lt;p dir=&quot;rtl&quot;&gt;WebKit&lt;/p&gt;
3. &lt;div dir=&quot;rtl&quot;&gt;world&lt;p&gt;WebKit&lt;/p&gt;&lt;/div&gt;

I&apos;d cross-out option 2 because &quot;world&quot; and &quot;WebKit&quot; would have different directionalities after paste and behave differently for &lt;div dir=&quot;rtl&quot;&gt;hello [world&lt;br&gt;WebKit]&lt;/div&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481615</commentid>
    <comment_count>3</comment_count>
    <who name="Aharon (Vladimir) Lanin">aharon</who>
    <bug_when>2011-10-11 07:10:05 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; &gt; should we generate &lt;div dir=&quot;ltr&quot;&gt;XY&lt;/div&gt;
&gt; &gt; &gt; or &lt;div dir=&quot;ltr&quot;&gt;X&lt;span dir=&quot;rtl&quot;&gt;Y&lt;/div&gt;?
&gt; &gt; 
&gt; &gt; IMO, the former. The problem with the latter is that you are converting
&gt; &gt; paragraph direction style to inline direction style. While paragraph
&gt; &gt; direction is usually indicated by alignment, and most editors provide
&gt; &gt; buttons to see it and control it, neither is the case for inline direction.
&gt; &gt; Thus, later on, the user has no way of knowing that the &lt;span dir=rtl&gt; is
&gt; &gt; there, and thus will be surprised when things work differently than they do
&gt; &gt; normally. And even if the user figures out what&apos;s going on, he has no way
&gt; &gt; of removing the inline direction style, and can not tell whether the caret
&gt; &gt; is inside it or just next to it.
&gt; 
&gt; Safari provides a context menu to do this

Wow, I did not realize this.

&gt; but I agree that it&apos;s not so user-friendly if the user had to use it very
&gt; often after copy-paste.

Indeed. To see that the inline direction style is there, one has to highlight *exactly* the text covered by the span (not one character more) and click for the context menu. Not very discoverable.

&gt; &gt; &gt; WebKit currently adds direction property when copying content
&gt; &gt; &gt; inside an element with dir property. But this wouldn&apos;t work if
&gt; &gt; &gt; the copied content was wrapped by span (need to add
&gt; &gt; &gt; unicode-bidi: embed as well). I don&apos;t even know what the correct
&gt; &gt; &gt; behavior is.
&gt; &gt; 
&gt; &gt; First, about the dir attribute vs direction &amp; unicode-embded styles: stay
&gt; &gt; true to what the source has. If it has mark-up like the dir attribute, use
&gt; &gt; that mark-up. Only use CSS if it has something beyond the mark-up. 
&gt; 
&gt; This issue is a little tangential in my opinion.

True.

&gt; It&apos;s same problem as WebKit converting b to &lt;span style=&quot;font-weight: bold&quot;&gt;
&gt; in some cases. We can probably tackle this in some other bug.

The problems are not of the same severity. Bolding is basically an issue of presentation, so style is the right way to do it (for which reason &lt;b&gt; had been deprecated at some point). Text direction is far more than presentation - it is the very nature of the text being displayed. The dir attribute is the right way to do it, and doing it in style alone is discouraged. But, as you said, this is not what this bug is about.

&gt; &gt; Now regarding copying directional information on the copy command. Here
&gt; &gt; too, I think the guiding principle should be to avoid creating inline
&gt; &gt; direction. Thus, if you are going to be creating a &lt;div&gt; or &lt;p&gt;, I think it
&gt; &gt; is very good to put a dir on it in accordance with the source&apos;s computed
&gt; &gt; style (even if the source did not have it explicitly on that element). And
&gt; &gt; if the source already has a &lt;span dir=...&gt;, then by all means copy it
&gt; &gt; verbatim. But I do not think that it is good to create a span with
&gt; &gt; direction when the source did not have it.
&gt; 
&gt; Here&apos;s a tricky case what if an user selected a part of block? e.g. ([ and ]
&gt; indicate the start and the end of selection below)
&gt; &lt;div dir=&quot;rtl&quot;&gt;hello [world&lt;p&gt;WebKit&lt;/p&gt;]&lt;/div&gt;
&gt; 
&gt; In this case, p is a block element and it has RTL directionality inherited
&gt; from the parent div. Which one of the following markups should we generate?
&gt; 1. world&lt;p&gt;WebKit&lt;/p&gt;
&gt; 2. world&lt;p dir=&quot;rtl&quot;&gt;WebKit&lt;/p&gt;
&gt; 3. &lt;div dir=&quot;rtl&quot;&gt;world&lt;p&gt;WebKit&lt;/p&gt;&lt;/div&gt;
&gt; 
&gt; I&apos;d cross-out option 2 because &quot;world&quot; and &quot;WebKit&quot; would have different
&gt; directionalities after paste and behave differently for &lt;div dir=&quot;rtl&quot;&gt;hello
&gt; [world&lt;br&gt;WebKit]&lt;/div&gt;

Whatever you do, I do not think it should be a special case for directionality. That is, you should not come up with different element structures for two cases that only differ in elements having or not having a dir attribute. Probably the best way to think about it is to change the case to have a text-align style (which, by definition, is a block-level style) where it currently has a dir attribute and work backwards from there. So, what would you do for &lt;div style=&quot;text-align:center&quot;&gt;hello [world&lt;p&gt;WebKit&lt;/p&gt;]&lt;/div&gt;?

The good thing about asking that question is that you do not have to limit yourself to a supposed bidi expert like myself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481618</commentid>
    <comment_count>4</comment_count>
    <who name="Aharon (Vladimir) Lanin">aharon</who>
    <bug_when>2011-10-11 07:18:43 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; Safari provides a context menu to [set selection direction]
&gt; 
&gt; Wow, I did not realize this.
&gt; 

BTW, this feature triggers a bug in Gmail. Let&apos;s say we have

&lt;div dir=ltr&gt;hello &lt;span dir=rtl&gt;RTL!&lt;/span&gt; world&lt;/div&gt;

When the user puts the caret inside the span, Gmail&apos;s LTR paragraph button becomes &quot;non-pushed&quot; and the RTL paragraph button becomes &quot;pushed&quot;. This is already bad - the paragraph is *not* RTL. If one then clicks the LTR paragraph button, nothing happens - the &quot;RTL!&quot; is still displayed as &quot;!RTL&quot;, while the LTR paragraph button stays non-pushed, and the RTL button stays pushed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481814</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-11 12:20:58 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Whatever you do, I do not think it should be a special case for directionality. That is, you should not come up with different element structures for two cases that only differ in elements having or not having a dir attribute. Probably the best way to think about it is to change the case to have a text-align style (which, by definition, is a block-level style) where it currently has a dir attribute and work backwards from there. So, what would you do for &lt;div style=&quot;text-align:center&quot;&gt;hello [world&lt;p&gt;WebKit&lt;/p&gt;]&lt;/div&gt;?

That&apos;s a good approach. We don&apos;t preserve text-align in this case so we should probably do the same for directionality. Thanks for your help!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481969</commentid>
    <comment_count>6</comment_count>
      <attachid>110590</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-11 15:42:03 -0700</bug_when>
    <thetext>Created attachment 110590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482049</commentid>
    <comment_count>7</comment_count>
      <attachid>110590</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-10-11 17:01:37 -0700</bug_when>
    <thetext>Comment on attachment 110590
Patch

Looks good to me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482051</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-11 17:05:27 -0700</bug_when>
    <thetext>Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482111</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-11 18:06:54 -0700</bug_when>
    <thetext>Committed r97205: &lt;http://trac.webkit.org/changeset/97205&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110590</attachid>
            <date>2011-10-11 15:42:03 -0700</date>
            <delta_ts>2011-10-11 17:01:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69680-20111011154202.patch</filename>
            <type>text/plain</type>
            <size>13733</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3MTg3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMTAtMTEgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRGlyIGF0dHJpYnV0ZSBpcyBjb252
ZXJ0ZWQgaW50byBkaXJlY3Rpb24gcHJvcGVydHkgd2hlbiBtZXJnaW5nIHBhcmFncmFwaHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjgwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG9uJ3QgaW5jbHVk
ZSBkaXJlY3Rpb24gYW5kIHVuaWNvZGUtYmlkaSBwcm9wZXJ0aWVzIGluIHRoZSB3cmFwcGluZyBz
dHlsZS4KKworICAgICAgICBUZXN0czogZWRpdGluZy9kZWxldGluZy9tZXJnZS1wYXJhZ3JhcGgt
aW50by1oMS13aXRoLWRpci0yLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcvZGVsZXRpbmcv
bWVyZ2UtcGFyYWdyYXBoLWludG8taDEtd2l0aC1kaXIuaHRtbAorCisgICAgICAgICogZWRpdGlu
Zy9FZGl0aW5nU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjptZXJn
ZUlubGluZUFuZEltcGxpY2l0U3R5bGVPZkVsZW1lbnQpOiBTa2lwIHVuaWNvZGUtYmlkaSBhbmQg
ZGlyZWN0aW9uIHByb3BlcnRpZXMuCisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6Ondy
YXBwaW5nU3R5bGVGb3JTZXJpYWxpemF0aW9uKTogRXh0cmFjdGVkIGZyb20gU3R5bGVkTWFya3Vw
QWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzLgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ1N0
eWxlLmg6CisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzKTogQ2FsbHMgd3JhcHBpbmdT
dHlsZUZvclNlcmlhbGl6YXRpb24uCisKIDIwMTEtMTAtMTEgIE5vJ2FtIFJvc2VudGhhbCAgPG5v
YW0ucm9zZW50aGFsQG5va2lhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCwg
dW5icmVha2luZyB0aGUgUXQgbWluaW1hbCBib3QuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRpbmdTdHlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0aW5nU3R5bGUuY3BwCShyZXZpc2lvbiA5NzExNCkKKysrIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdGluZ1N0eWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODg3LDExICs4ODcsNDQg
QEAgdm9pZCBFZGl0aW5nU3R5bGU6Om1lcmdlSW5saW5lQW5kSW1wbGljaQogCiAgICAgY29uc3Qg
VmVjdG9yPE93blB0cjxIVE1MQXR0cmlidXRlRXF1aXZhbGVudD4gPiYgYXR0cmlidXRlRXF1aXZh
bGVudHMgPSBodG1sQXR0cmlidXRlRXF1aXZhbGVudHMoKTsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGF0dHJpYnV0ZUVxdWl2YWxlbnRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChh
dHRyaWJ1dGVFcXVpdmFsZW50c1tpXS0+YXR0cmlidXRlTmFtZSgpID09IEhUTUxOYW1lczo6ZGly
QXR0cikKKyAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUg
ZGlyZWN0aW9uYWxpdHkKICAgICAgICAgaWYgKGVsZW1lbnRNYXRjaGVzQW5kUHJvcGVydHlJc05v
dEluSW5saW5lU3R5bGVEZWNsKGF0dHJpYnV0ZUVxdWl2YWxlbnRzW2ldLmdldCgpLCBlbGVtZW50
LCBtb2RlLCBtX211dGFibGVTdHlsZS5nZXQoKSkpCiAgICAgICAgICAgICBhdHRyaWJ1dGVFcXVp
dmFsZW50c1tpXS0+YWRkVG9TdHlsZShlbGVtZW50LCB0aGlzKTsKICAgICB9CiB9CiAKK1Bhc3NS
ZWZQdHI8RWRpdGluZ1N0eWxlPiBFZGl0aW5nU3R5bGU6OndyYXBwaW5nU3R5bGVGb3JTZXJpYWxp
emF0aW9uKE5vZGUqIGNvbnRleHQsIGJvb2wgc2hvdWxkQW5ub3RhdGUpCit7CisgICAgUmVmUHRy
PEVkaXRpbmdTdHlsZT4gd3JhcHBpbmdTdHlsZTsKKyAgICBpZiAoc2hvdWxkQW5ub3RhdGUpIHsK
KyAgICAgICAgd3JhcHBpbmdTdHlsZSA9IEVkaXRpbmdTdHlsZTo6Y3JlYXRlKGNvbnRleHQsIEVk
aXRpbmdTdHlsZTo6RWRpdGluZ0luaGVyaXRhYmxlUHJvcGVydGllc0FuZEJhY2tncm91bmRDb2xv
ckluRWZmZWN0KTsKKworICAgICAgICAvLyBTdHlsZXMgdGhhdCBNYWlsIGJsb2NrcXVvdGVzIGNv
bnRyaWJ1dGUgc2hvdWxkIG9ubHkgYmUgcGxhY2VkIG9uIHRoZSBNYWlsIGJsb2NrcXVvdGUsCisg
ICAgICAgIC8vIHRvIGhlbHAgdXMgZGlmZmVyZW50aWF0ZSB0aG9zZSBzdHlsZXMgZnJvbSBvbmVz
IHRoYXQgdGhlIHVzZXIgaGFzIGFwcGxpZWQuCisgICAgICAgIC8vIFRoaXMgaGVscHMgdXMgZ2V0
IHRoZSBjb2xvciBvZiBjb250ZW50IHBhc3RlZCBpbnRvIGJsb2NrcXVvdGVzIHJpZ2h0LgorICAg
ICAgICB3cmFwcGluZ1N0eWxlLT5yZW1vdmVTdHlsZUFkZGVkQnlOb2RlKGVuY2xvc2luZ05vZGVP
ZlR5cGUoZmlyc3RQb3NpdGlvbkluT3JCZWZvcmVOb2RlKGNvbnRleHQpLCBpc01haWxCbG9ja3F1
b3RlLCBDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkpOworCisgICAgICAgIC8vIENhbGwgY29sbGFw
c2VUZXh0RGVjb3JhdGlvblByb3BlcnRpZXMgZmlyc3Qgb3Igb3RoZXJ3aXNlIGl0J2xsIGNvcHkg
dGhlIHZhbHVlIG92ZXIgZnJvbSBpbi1lZmZlY3QgdG8gdGV4dC1kZWNvcmF0aW9ucy4KKyAgICAg
ICAgd3JhcHBpbmdTdHlsZS0+Y29sbGFwc2VUZXh0RGVjb3JhdGlvblByb3BlcnRpZXMoKTsKKyAg
ICAgICAgCisgICAgICAgIHJldHVybiB3cmFwcGluZ1N0eWxlLnJlbGVhc2UoKTsKKyAgICB9CisK
KyAgICB3cmFwcGluZ1N0eWxlID0gRWRpdGluZ1N0eWxlOjpjcmVhdGUoKTsKKworICAgIC8vIFdo
ZW4gbm90IGFubm90YXRpbmcgZm9yIGludGVyY2hhbmdlLCB3ZSBvbmx5IHByZXNlcnZlIGlubGlu
ZSBzdHlsZSBkZWNsYXJhdGlvbnMuCisgICAgZm9yIChOb2RlKiBub2RlID0gY29udGV4dDsgbm9k
ZSAmJiAhbm9kZS0+aXNEb2N1bWVudE5vZGUoKTsgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKSkg
eworICAgICAgICBpZiAobm9kZS0+aXNTdHlsZWRFbGVtZW50KCkpIHsKKyAgICAgICAgICAgIHdy
YXBwaW5nU3R5bGUtPm1lcmdlSW5saW5lQW5kSW1wbGljaXRTdHlsZU9mRWxlbWVudChzdGF0aWNf
Y2FzdDxTdHlsZWRFbGVtZW50Kj4obm9kZSksIEVkaXRpbmdTdHlsZTo6RG9Ob3RPdmVycmlkZVZh
bHVlcywKKyAgICAgICAgICAgICAgICBFZGl0aW5nU3R5bGU6OkVkaXRpbmdJbmhlcml0YWJsZVBy
b3BlcnRpZXNBbmRCYWNrZ3JvdW5kQ29sb3JJbkVmZmVjdCk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICByZXR1cm4gd3JhcHBpbmdTdHlsZS5yZWxlYXNlKCk7Cit9CisKKwogc3RhdGljIHZvaWQg
bWVyZ2VUZXh0RGVjb3JhdGlvblZhbHVlcyhDU1NWYWx1ZUxpc3QqIG1lcmdlZFZhbHVlLCBjb25z
dCBDU1NWYWx1ZUxpc3QqIHZhbHVlVG9NZXJnZSkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4sIHVuZGVybGluZSwgKENTU1ByaW1pdGl2
ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlVW5kZXJsaW5lKSkpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5oCShyZXZpc2lvbiA5NzExNCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNSw3
ICsxMjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtZXJnZVR5cGluZ1N0eWxlKERvY3VtZW50Kik7
CiAgICAgZW51bSBDU1NQcm9wZXJ0eU92ZXJyaWRlTW9kZSB7IE92ZXJyaWRlVmFsdWVzLCBEb05v
dE92ZXJyaWRlVmFsdWVzIH07CiAgICAgdm9pZCBtZXJnZUlubGluZVN0eWxlT2ZFbGVtZW50KFN0
eWxlZEVsZW1lbnQqLCBDU1NQcm9wZXJ0eU92ZXJyaWRlTW9kZSwgUHJvcGVydGllc1RvSW5jbHVk
ZSA9IEFsbFByb3BlcnRpZXMpOwotICAgIHZvaWQgbWVyZ2VJbmxpbmVBbmRJbXBsaWNpdFN0eWxl
T2ZFbGVtZW50KFN0eWxlZEVsZW1lbnQqLCBDU1NQcm9wZXJ0eU92ZXJyaWRlTW9kZSwgUHJvcGVy
dGllc1RvSW5jbHVkZSk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiB3cmFw
cGluZ1N0eWxlRm9yU2VyaWFsaXphdGlvbihOb2RlKiBjb250ZXh0LCBib29sIHNob3VsZEFubm90
YXRlKTsKICAgICB2b2lkIG1lcmdlU3R5bGVGcm9tUnVsZXMoU3R5bGVkRWxlbWVudCopOwogICAg
IHZvaWQgbWVyZ2VTdHlsZUZyb21SdWxlc0ZvclNlcmlhbGl6YXRpb24oU3R5bGVkRWxlbWVudCop
OwogICAgIHZvaWQgcmVtb3ZlU3R5bGVGcm9tUnVsZXNBbmRDb250ZXh0KFN0eWxlZEVsZW1lbnQq
LCBOb2RlKiBjb250ZXh0KTsKQEAgLTE0OCw2ICsxNDgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
cmVwbGFjZUZvbnRTaXplQnlLZXl3b3JkSWZQb3NzaWJsZShSZW5kZXJTdHlsZSosIENTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbiopOwogICAgIHZvaWQgZXh0cmFjdEZvbnRTaXplRGVsdGEoKTsK
ICAgICBib29sIGNvbmZsaWN0c1dpdGhJbmxpbmVTdHlsZU9mRWxlbWVudChTdHlsZWRFbGVtZW50
KiwgRWRpdGluZ1N0eWxlKiBleHRyYWN0ZWRTdHlsZSwgVmVjdG9yPENTU1Byb3BlcnR5SUQ+KiBj
b25mbGljdGluZ1Byb3BlcnRpZXMpIGNvbnN0OworICAgIHZvaWQgbWVyZ2VJbmxpbmVBbmRJbXBs
aWNpdFN0eWxlT2ZFbGVtZW50KFN0eWxlZEVsZW1lbnQqLCBDU1NQcm9wZXJ0eU92ZXJyaWRlTW9k
ZSwgUHJvcGVydGllc1RvSW5jbHVkZSk7CiAgICAgdm9pZCBtZXJnZVN0eWxlKENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uKiwgQ1NTUHJvcGVydHlPdmVycmlkZU1vZGUpOwogCiAgICAgUmVmUHRy
PENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBtX211dGFibGVTdHlsZTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hcmt1cC5jcHAJKHJldmlzaW9uIDk3MTE0KQorKysgU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYXJrdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDMsMjkgKzM0Myw4IEBAIE5v
ZGUqIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjpzZXJpYWxpemUKICAgICAgICAgbV9oaWdoZXN0
Tm9kZVRvQmVTZXJpYWxpemVkID0gbGFzdENsb3NlZDsKICAgICB9CiAKLSAgICBpZiAoTm9kZSog
cGFyZW50T2ZIaWdoZXN0Tm9kZSA9IG1faGlnaGVzdE5vZGVUb0JlU2VyaWFsaXplZCA/IG1faGln
aGVzdE5vZGVUb0JlU2VyaWFsaXplZC0+cGFyZW50Tm9kZSgpIDogMCkgewotICAgICAgICBpZiAo
c2hvdWxkQW5ub3RhdGUoKSkgewotICAgICAgICAgICAgbV93cmFwcGluZ1N0eWxlID0gRWRpdGlu
Z1N0eWxlOjpjcmVhdGUocGFyZW50T2ZIaWdoZXN0Tm9kZSwgRWRpdGluZ1N0eWxlOjpFZGl0aW5n
SW5oZXJpdGFibGVQcm9wZXJ0aWVzQW5kQmFja2dyb3VuZENvbG9ySW5FZmZlY3QpOwotCi0gICAg
ICAgICAgICAvLyBTdHlsZXMgdGhhdCBNYWlsIGJsb2NrcXVvdGVzIGNvbnRyaWJ1dGUgc2hvdWxk
IG9ubHkgYmUgcGxhY2VkIG9uIHRoZSBNYWlsIGJsb2NrcXVvdGUsCi0gICAgICAgICAgICAvLyB0
byBoZWxwIHVzIGRpZmZlcmVudGlhdGUgdGhvc2Ugc3R5bGVzIGZyb20gb25lcyB0aGF0IHRoZSB1
c2VyIGhhcyBhcHBsaWVkLgotICAgICAgICAgICAgLy8gVGhpcyBoZWxwcyB1cyBnZXQgdGhlIGNv
bG9yIG9mIGNvbnRlbnQgcGFzdGVkIGludG8gYmxvY2txdW90ZXMgcmlnaHQuCi0gICAgICAgICAg
ICBtX3dyYXBwaW5nU3R5bGUtPnJlbW92ZVN0eWxlQWRkZWRCeU5vZGUoZW5jbG9zaW5nTm9kZU9m
VHlwZShmaXJzdFBvc2l0aW9uSW5PckJlZm9yZU5vZGUocGFyZW50T2ZIaWdoZXN0Tm9kZSksIGlz
TWFpbEJsb2NrcXVvdGUsIENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KSk7Ci0KLSAgICAgICAgICAg
IC8vIENhbGwgY29sbGFwc2VUZXh0RGVjb3JhdGlvblByb3BlcnRpZXMgZmlyc3Qgb3Igb3RoZXJ3
aXNlIGl0J2xsIGNvcHkgdGhlIHZhbHVlIG92ZXIgZnJvbSBpbi1lZmZlY3QgdG8gdGV4dC1kZWNv
cmF0aW9ucy4KLSAgICAgICAgICAgIG1fd3JhcHBpbmdTdHlsZS0+Y29sbGFwc2VUZXh0RGVjb3Jh
dGlvblByb3BlcnRpZXMoKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1fd3JhcHBp
bmdTdHlsZSA9IEVkaXRpbmdTdHlsZTo6Y3JlYXRlKCk7Ci0KLSAgICAgICAgICAgIC8vIFdoZW4g
bm90IGFubm90YXRpbmcgZm9yIGludGVyY2hhbmdlLCB3ZSBvbmx5IHByZXNlcnZlIGlubGluZSBz
dHlsZSBkZWNsYXJhdGlvbnMuCi0gICAgICAgICAgICBmb3IgKE5vZGUqIG5vZGUgPSBwYXJlbnRP
ZkhpZ2hlc3ROb2RlOyBub2RlICYmICFub2RlLT5pc0RvY3VtZW50Tm9kZSgpOyBub2RlID0gbm9k
ZS0+cGFyZW50Tm9kZSgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG5vZGUtPmlzU3R5bGVkRWxl
bWVudCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fd3JhcHBpbmdTdHlsZS0+bWVyZ2VJbmxp
bmVBbmRJbXBsaWNpdFN0eWxlT2ZFbGVtZW50KHN0YXRpY19jYXN0PFN0eWxlZEVsZW1lbnQqPihu
b2RlKSwgRWRpdGluZ1N0eWxlOjpEb05vdE92ZXJyaWRlVmFsdWVzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgRWRpdGluZ1N0eWxlOjpFZGl0aW5nSW5oZXJpdGFibGVQcm9wZXJ0aWVzQW5kQmFj
a2dyb3VuZENvbG9ySW5FZmZlY3QpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgIH0KKyAgICBpZiAoTm9kZSogcGFyZW50T2ZIaWdoZXN0Tm9kZSA9IG1f
aGlnaGVzdE5vZGVUb0JlU2VyaWFsaXplZCA/IG1faGlnaGVzdE5vZGVUb0JlU2VyaWFsaXplZC0+
cGFyZW50Tm9kZSgpIDogMCkKKyAgICAgICAgbV93cmFwcGluZ1N0eWxlID0gRWRpdGluZ1N0eWxl
Ojp3cmFwcGluZ1N0eWxlRm9yU2VyaWFsaXphdGlvbihwYXJlbnRPZkhpZ2hlc3ROb2RlLCBzaG91
bGRBbm5vdGF0ZSgpKTsKIAogICAgIHJldHVybiB0cmF2ZXJzZU5vZGVzRm9yU2VyaWFsaXphdGlv
bihzdGFydE5vZGUsIHBhc3RFbmQsIEVtaXRTdHJpbmcpOwogfQpJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
OTcxODcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxOCBAQAorMjAxMS0xMC0xMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBEaXIgYXR0cmlidXRlIGlzIGNvbnZlcnRlZCBpbnRvIGRpcmVjdGlvbiBwcm9wZXJ0
eSB3aGVuIG1lcmdpbmcgcGFyYWdyYXBocworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Njk2ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0cyB0byBtZXJnZSBwYXJhZ3JhcGhzIGluc2lkZSBh
IGJsb2NrIHdpdGggZGlyIGF0dHJpYnV0ZS4gV2ViS2l0IHNob3VsZCBub3QgYWRkCisgICAgICAg
IGRpcmVjdGlvbiBvciB1bmljb2RlLWJpZGkgcHJvcGVydGllcy4KKworICAgICAgICAqIGVkaXRp
bmcvZGVsZXRpbmcvbWVyZ2UtcGFyYWdyYXBoLWludG8taDEtd2l0aC1kaXItMi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvbWVyZ2UtcGFyYWdyYXBoLWlu
dG8taDEtd2l0aC1kaXItMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5n
L21lcmdlLXBhcmFncmFwaC1pbnRvLWgxLXdpdGgtZGlyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZWRpdGluZy9kZWxldGluZy9tZXJnZS1wYXJhZ3JhcGgtaW50by1oMS13aXRoLWRp
ci5odG1sOiBBZGRlZC4KKwogMjAxMS0xMC0xMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBNYWMgcmViYXNlbGluZSBhZnRlciByOTY2MTAuCkluZGV4OiBMYXlv
dXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL21lcmdlLXBhcmFncmFwaC1pbnRvLWgxLXdpdGgtZGly
LTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRp
bmcvbWVyZ2UtcGFyYWdyYXBoLWludG8taDEtd2l0aC1kaXItMi1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL21lcmdlLXBhcmFncmFwaC1p
bnRvLWgxLXdpdGgtZGlyLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIw
IEBACitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRCZWdpbkVkaXRpbmdJbkRPTVJhbmdlOnJhbmdl
IGZyb20gMCBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mIERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50CitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQmVnaW5F
ZGl0aW5nOldlYlZpZXdEaWRCZWdpbkVkaXRpbmdOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5v
dGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpX
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBz
aG91bGREZWxldGVET01SYW5nZTpyYW5nZSBmcm9tIDUgb2YgI3RleHQgPiBIMSA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDAgb2YgUCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50CitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJh
bmdlIGZyb20gMiBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAyIG9mIERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA1IG9mICN0ZXh0
ID4gSDEgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0ZXh0ID4gSDEg
PiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmlu
aXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0
aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VO
b3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRFbmRFZGl0aW5nOldlYlZp
ZXdEaWRFbmRFZGl0aW5nTm90aWZpY2F0aW9uCitUaGlzIHRlc3RzIGRlbGV0aW5nIGxpbmUgYnJl
YWsgYWZ0ZXIgaDEgaW5zaWRlIGEgYmxvY2sgd2l0aCBkaXIgYXR0cmlidXRlLgorV2ViS2l0IHNo
b3VsZCBub3QgYWRkIGRpcmVjdGlvbiBvciB1bmljb2RlLWJpZGkgcHJvcGVydGllcyB3aGlsZSBt
ZXJnaW5nIHBhcmFncmFwaHMuCit8ICIKKyIKK3wgPGgxPgorfCAgICJoZWxsbzwjc2VsZWN0aW9u
LWNhcmV0PiIKK3wgICA8Yj4KK3wgICAgICJ3b3JsIgorfCAgICJkIgorfCAiCisiCkluZGV4OiBM
YXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL21lcmdlLXBhcmFncmFwaC1pbnRvLWgxLXdpdGgt
ZGlyLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL21l
cmdlLXBhcmFncmFwaC1pbnRvLWgxLXdpdGgtZGlyLTIuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvbWVyZ2UtcGFyYWdyYXBoLWludG8taDEtd2l0aC1k
aXItMi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPiAKKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj5UaGlzIHRlc3RzIGRlbGV0aW5n
IGxpbmUgYnJlYWsgYWZ0ZXIgaDEgaW5zaWRlIGEgYmxvY2sgd2l0aCBkaXIgYXR0cmlidXRlLgor
V2ViS2l0IHNob3VsZCBub3QgYWRkIGRpcmVjdGlvbiBvciB1bmljb2RlLWJpZGkgcHJvcGVydGll
cyB3aGlsZSBtZXJnaW5nIHBhcmFncmFwaHMuPC9wPgorPGRpdiBpZD0idGVzdCIgZGlyPSJsdHIi
IGNvbnRlbnRlZGl0YWJsZT4KKzxoMT5oZWxsbzwvaDE+Cis8cD48Yj53b3JsPC9iPmQ8L3A+Cis8
L2Rpdj4KKzwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uL2VkaXRpbmcuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorCitmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKKyAgICBtb3ZlU2VsZWN0aW9uRm9y
d2FyZEJ5TGluZUNvbW1hbmQoKTsKKyAgICBkZWxldGVDb21tYW5kKCk7CisKKyAgICBNYXJrdXAu
ZGVzY3JpcHRpb24oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rlc2NyaXB0aW9uJykudGV4dENv
bnRlbnQpOworICAgIE1hcmt1cC5kdW1wKCd0ZXN0Jyk7Cit9CisKK3J1bkVkaXRpbmdUZXN0KCk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
ZGVsZXRpbmcvbWVyZ2UtcGFyYWdyYXBoLWludG8taDEtd2l0aC1kaXItZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvbWVyZ2UtcGFyYWdyYXBo
LWludG8taDEtd2l0aC1kaXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZWRpdGluZy9kZWxldGluZy9tZXJnZS1wYXJhZ3JhcGgtaW50by1oMS13aXRoLWRpci1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTcgQEAKK0VESVRJTkcgREVMRUdBVEU6
IHNob3VsZEJlZ2luRWRpdGluZ0luRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQK
K0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2lu
RWRpdGluZ05vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOnJh
bmdlIGZyb20gNSBvZiAjdGV4dCA+IEgxID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gMCBvZiBQID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKK0VESVRJTkcgREVMRUdB
VEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAyIG9mIERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDIgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDUgb2YgI3RleHQgPiBIMSA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBIMSA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2Vs
ZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
OldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZEVuZEVkaXRpbmc6V2ViVmlld0RpZEVuZEVkaXRpbmdOb3RpZmlj
YXRpb24KK1RoaXMgdGVzdHMgZGVsZXRpbmcgbGluZSBicmVhayBhZnRlciBoMSBpbnNpZGUgYSBi
bG9jayB3aXRoIGRpciBhdHRyaWJ1dGUuCitXZWJLaXQgc2hvdWxkIG5vdCBhZGQgZGlyZWN0aW9u
IG9yIHVuaWNvZGUtYmlkaSBwcm9wZXJ0aWVzIHdoaWxlIG1lcmdpbmcgcGFyYWdyYXBocy4KK3wg
IgorIgorfCA8aDE+Cit8ICAgImhlbGxvPCNzZWxlY3Rpb24tY2FyZXQ+d29ybGQiCit8ICIKKyIK
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvbWVyZ2UtcGFyYWdyYXBoLWludG8t
aDEtd2l0aC1kaXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0
aW5nL21lcmdlLXBhcmFncmFwaC1pbnRvLWgxLXdpdGgtZGlyLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL21lcmdlLXBhcmFncmFwaC1pbnRvLWgxLXdp
dGgtZGlyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+IAorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPlRoaXMgdGVzdHMgZGVsZXRp
bmcgbGluZSBicmVhayBhZnRlciBoMSBpbnNpZGUgYSBibG9jayB3aXRoIGRpciBhdHRyaWJ1dGUu
CitXZWJLaXQgc2hvdWxkIG5vdCBhZGQgZGlyZWN0aW9uIG9yIHVuaWNvZGUtYmlkaSBwcm9wZXJ0
aWVzIHdoaWxlIG1lcmdpbmcgcGFyYWdyYXBocy48L3A+Cis8ZGl2IGlkPSJ0ZXN0IiBkaXI9Imx0
ciIgY29udGVudGVkaXRhYmxlPgorPGgxPmhlbGxvPC9oMT4KKzxwPndvcmxkPC9wPgorPC9kaXY+
Cis8L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi9lZGl0aW5nLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKworZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7CisgICAgbW92ZVNlbGVjdGlvbkZvcndhcmRC
eUxpbmVDb21tYW5kKCk7CisgICAgZGVsZXRlQ29tbWFuZCgpOworCisgICAgTWFya3VwLmRlc2Ny
aXB0aW9uKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZXNjcmlwdGlvbicpLnRleHRDb250ZW50
KTsKKyAgICBNYXJrdXAuZHVtcCgndGVzdCcpOworfQorCitydW5FZGl0aW5nVGVzdCgpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="review"
          id="108137"
          type_id="1"
          status="+"
          setter="enrica"
    />
          </attachment>
      

    </bug>

</bugzilla>