<?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>221651</bug_id>
          
          <creation_ts>2021-02-09 21:31:08 -0800</creation_ts>
          <short_desc>Nullptr crash in ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline</short_desc>
          <delta_ts>2021-02-23 12:19:32 -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>HTML Editing</component>
          <version>WebKit 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="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Frédéric Wang Nélar">fred.wang</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>ews-feeder</cc>
    
    <cc>fred.wang</cc>
    
    <cc>gpoo</cc>
    
    <cc>product-security</cc>
    
    <cc>rbuis</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1727423</commentid>
    <comment_count>0</comment_count>
      <attachid>419814</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-02-09 21:31:08 -0800</bug_when>
    <thetext>Created attachment 419814
Test

e.g.

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebCore             	0x00000002f339272f WebCore::Node::parentNode() const + 0 (Node.h:835) [inlined]
1   com.apple.WebCore             	0x00000002f339272f WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline(WebCore::ReplaceSelectionCommand::InsertedNodes&amp;) + 799 (ReplaceSelectionCommand.cpp:631)
2   com.apple.WebCore             	0x00000002f3397095 WebCore::ReplaceSelectionCommand::doApply() + 10261 (ReplaceSelectionCommand.cpp:1317)
3   com.apple.WebCore             	0x00000002f331d267 WebCore::CompositeEditCommand::apply() + 327 (CompositeEditCommand.cpp:375)
4   com.apple.WebCore             	0x00000002f334ec24 WebCore::Editor::replaceSelectionWithFragment(WebCore::DocumentFragment&amp;, WebCore::Editor::SelectReplacement, WebCore::Editor::SmartReplace, WebCore::Editor::MatchStyle, WebCore::EditAction, WebCore::MailBlockquoteHandling) + 868 (Editor.cpp:685)
5   com.apple.WebCore             	0x00000002f334e7d8 WebCore::Editor::handleTextEvent(WebCore::TextEvent&amp;) + 72 (Editor.cpp:334)
6   com.apple.WebCore             	0x00000002f38006cf WebCore::EventHandler::defaultTextInputEventHandler(WebCore::TextEvent&amp;) + 31 (EventHandler.cpp:4120)
7   com.apple.WebCore             	0x00000002f328abb4 WebCore::callDefaultEventHandlersInBubblingOrder(WebCore::Event&amp;, WebCore::EventPath const&amp;) + 39 (EventDispatcher.cpp:62) [inlined]
8   com.apple.WebCore             	0x00000002f328abb4 WebCore::EventDispatcher::dispatchEvent(WebCore::Node&amp;, WebCore::Event&amp;) + 1684 (EventDispatcher.cpp:203)
9   com.apple.WebCore             	0x00000002f3350ee2 WebCore::Editor::pasteAsFragment(WTF::Ref&lt;WebCore::DocumentFragment, WTF::RawPtrTraits&lt;WebCore::DocumentFragment&gt; &gt;&amp;&amp;, bool, bool, WebCore::MailBlockquoteHandling) + 226 (Editor.cpp:616)
10  com.apple.WebCore             	0x00000002f26db582 WebCore::Editor::pasteWithPasteboard(WebCore::Pasteboard*, WTF::OptionSet&lt;WebCore::Editor::PasteOption&gt;) + 274 (EditorMac.mm:96)
11  com.apple.WebCore             	0x00000002f33579e2 WebCore::Editor::paste(WebCore::Pasteboard&amp;, WebCore::Editor::FromMenuOrKeyBinding) + 354 (Editor.cpp:1464)
12  com.apple.WebCore             	0x00000002f3378355 WebCore::Editor::paste(WebCore::Editor::FromMenuOrKeyBinding) + 19 (Editor.cpp:1450) [inlined]
13  com.apple.WebCore             	0x00000002f3378355 WebCore::executePaste(WebCore::Frame&amp;, WebCore::Event*, WebCore::EditorCommandSource, WTF::String const&amp;) + 69 (EditorCommand.cpp:903)
14  com.apple.WebCore             	0x00000002f324e2bc WebCore::Document::execCommand(WTF::String const&amp;, bool, WTF::String const&amp;) + 76 (Document.cpp:5662)
15  com.apple.WebCore             	0x00000002f2551ab0 WebCore::jsDocumentPrototypeFunction_execCommandBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSDocument*) + 229 (JSDocument.cpp:5889) [inlined]
16  com.apple.WebCore             	0x00000002f2551ab0 long long WebCore::IDLOperation&lt;WebCore::JSDocument&gt;::call&lt;&amp;(WebCore::jsDocumentPrototypeFunction_execCommandBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSDocument*)), (WebCore::CastedThisErrorBehavior)0&gt;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, char const*) + 402 (JSDOMOperation.h:53) [inlined]


&lt;rdar://problem/74150947&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730846</commentid>
    <comment_count>1</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-02-18 07:58:19 -0800</bug_when>
    <thetext>This test hits an ASSERT failure in debug mode:

#0  WTFCrash() () at ../../Source/WTF/wtf/Assertions.cpp:295
#1  0x00007fccabafe8cd in CRASH_WITH_INFO(...) () at DerivedSources/ForwardingHeaders/wtf/Assertions.h:713
#2  0x00007fccb0c85389 in WebCore::CompositeEditCommand::appendBlockPlaceholder(WTF::Ref&lt;WebCore::Element, WTF::RawPtrTraits&lt;WebCore::Element&gt; &gt;&amp;&amp;) (this=0x7fcc934445a0, container=...) at ../../Source/WebCore/editing/CompositeEditCommand.cpp:1073
#3  0x00007fccaefcaec2 in WebCore::InsertParagraphSeparatorCommand::doApply() (this=0x7fcc934445a0)
    at ../../Source/WebCore/editing/InsertParagraphSeparatorCommand.cpp:253
#4  0x00007fccb0c81820 in WebCore::CompositeEditCommand::applyCommandToComposite(WTF::Ref&lt;WebCore::EditCommand, WTF::RawPtrTraits&lt;WebCore::EditCommand&gt; &gt;&amp;&amp;) (this=0x7fcc934a3570, command=...) at ../../Source/WebCore/editing/CompositeEditCommand.cpp:466
#5  0x00007fccb0c81cba in WebCore::CompositeEditCommand::insertParagraphSeparator(bool, bool)
    (this=0x7fcc934a3570, useDefaultParagraphElement=false, pasteBlockqutoeIntoUnquotedArea=false)
    at ../../Source/WebCore/editing/CompositeEditCommand.cpp:507
#6  0x00007fccaefe48e0 in WebCore::ReplaceSelectionCommand::doApply() (this=0x7fcc934a3570)
    at ../../Source/WebCore/editing/ReplaceSelectionCommand.cpp:1112</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730848</commentid>
    <comment_count>2</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-02-18 08:00:59 -0800</bug_when>
    <thetext>Some preliminary reverse debugging below. This is a nullptr dereference due to a disconnected &lt;b&gt; tag. This tag seems to be initially created in a document fragment and does not have a renderer. It still lacks a renderer when it is inserted later in an orphan &lt;div&gt; container. This &lt;div&gt; does not create any renderer (because of the `display: content` rule of the testcase) and so in debug mode hits the assertion from comment 1.

If one changes the testcase to remove &quot;display: content&quot;, then the &lt;b&gt; in the document fragment still does not have a renderer initially but it is later properly inserted in the tree via the &lt;div&gt; container and both of them have a renderer.

At that point I have not checked in more details, but I wonder what a proper fix would be. It seems we would like to use a generated &lt;div style=&quot;display: block&quot;&gt; as a container. WDYT?

---
Debugging session

SIGSEGV, Segmentation fault in WebCore::Node::parentNode (this=0x0) at DerivedSources/ForwardingHeaders/WebCore/Node.h:835
(rr) reverse-finish
(rr) reverse-finish
https://webkit-search.igalia.com/webkit/rev/a1f338a6e6776f3d63b7eb8451aa6b5dc6ddff0e/Source/WebCore/editing/ReplaceSelectionCommand.cpp#631
(rr) p element
$1 = (WebCore::StyledElement *) 0x0
(rr) watch -l element
(rr) rc
https://webkit-search.igalia.com/webkit/rev/a1f338a6e6776f3d63b7eb8451aa6b5dc6ddff0e/Source/WebCore/editing/ReplaceSelectionCommand.cpp#631
(rr) disable 1
(rr) p node.get()
$2 = (WebCore::Node *) 0x0
(rr) b replaceElementWithSpanPreservingChildrenAndAttributes
(rr) rc
https://webkit-search.igalia.com/webkit/rev/a1f338a6e6776f3d63b7eb8451aa6b5dc6ddff0e/Source/WebCore/editing/CompositeEditCommand.cpp#643
(rr) n
(rr) n
(rr) n
(rr) p commandPtr-&gt;spanElement()
$3 = (WebCore::HTMLElement *) 0x0
(rr) b ReplaceNodeWithSpanCommand::doApply
(rr) c
https://webkit-search.igalia.com/webkit/rev/a1f338a6e6776f3d63b7eb8451aa6b5dc6ddff0e/Source/WebCore/editing/ReplaceNodeWithSpanCommand.cpp#61
(rr) p ((Node*) m_elementToReplace)-&gt;isConnected()
$4 = false
(rr) p showTree((Node*) m_elementToReplace)
DIV	0x7fc689af8a60 (renderer (nil))
*	B	0x7fc689af85f0 (renderer (nil))  STYLE=border-style: ridge; float: right; font-weight: inherit; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: -webkit-standard; font-style: normal; font-variant-caps: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0.4); -webkit-text-stroke-width: 0px; text-decoration: none;
$5 = void
(rr) delete
(rr) reverse-finish
(rr) reverse-finish
(rr) reverse-finish
(rr) reverse-finish
https://webkit-search.igalia.com/webkit/rev/a1f338a6e6776f3d63b7eb8451aa6b5dc6ddff0e/Source/WebCore/editing/ReplaceSelectionCommand.cpp#1317
(rr) watch -l insertedNodes
(rr) rc
(rr) disable
(rr) reverse-finish
(rr) reverse-finish
(rr) reverse-finish
(rr) reverse-finish
https://webkit-search.igalia.com/webkit/rev/a1f338a6e6776f3d63b7eb8451aa6b5dc6ddff0e/Source/WebCore/editing/ReplaceSelectionCommand.cpp#1255
(rr) p insertedNodes.isEmpty()
$6 = true
(rr) refNode
(rr) watch -l refNode
(rr) rc
(rr) disable
(rr) reverse-finish
https://webkit-search.igalia.com/webkit/rev/a1f338a6e6776f3d63b7eb8451aa6b5dc6ddff0e/Source/WebCore/editing/ReplaceSelectionCommand.cpp#1242
(rr) watch -l &amp;fragment
(rr) rc
https://webkit-search.igalia.com/webkit/rev/a1f338a6e6776f3d63b7eb8451aa6b5dc6ddff0e/Source/WebCore/editing/ReplaceSelectionCommand.cpp#1063
(rr) p showTree((Node*) fragment.m_fragment)
*#document-fragment	0x7fc689af84e0 (renderer (nil)) 
	B	0x7fc689af85f0 (renderer (nil))  STYLE=border-style: ridge; float: right; font-weight: inherit; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: -webkit-standard; font-style: normal; font-variant-caps: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0.4); -webkit-text-stroke-width: 0px; text-decoration: none;
$7 = void</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730855</commentid>
    <comment_count>3</comment_count>
      <attachid>420830</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-02-18 08:28:55 -0800</bug_when>
    <thetext>Created attachment 420830
(proof-of-concept) Patch

Here is a patch that fixes the crash, as suggested in comment 2. Asking review to know if that would be an appropriate approach and if so, any suggestions for refinements (probably this kind of issue can happen everywhere with display: contents).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730877</commentid>
    <comment_count>4</comment_count>
      <attachid>420830</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-18 08:58:30 -0800</bug_when>
    <thetext>Comment on attachment 420830
(proof-of-concept) Patch

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

&gt; Source/WebCore/editing/Editing.cpp:865
&gt; +        div-&gt;setAttribute(styleAttr, &quot;display:block&quot;);

A few thoughts:

We would not want to unconditionally add a style attribute to all paragraphs we create. Instead we would add something like this only in a case where the style was needed to override something inherited. The editing machinery has lots of code that does that, adding explicit styles to prevent being adversely affected by the surrounding context, like adding boldness when pasting in a non-bold area to keep the text bold.

(You forgot the return statement, by the way.)

But honestly, not sure this is the best solution to a null dereference. The question is what would be good behavior in those null dereference cases. If actually changing the markup so the paragraphs are truly paragraphs is desired, then I agree that this is one of the best ways to do it.

Also, a solution specific to &quot;display&quot; might not be sufficient. Are the other inherited properties that could make a paragraph not be a paragraph? We have code to do these kinds of operations; not sure exactly where it is off hand, and it’s often very inefficient because it computes style for the surrounding context, often repeatedly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730889</commentid>
    <comment_count>5</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-02-18 09:16:59 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; A few thoughts:

Thanks Darin,

&gt; 
&gt; We would not want to unconditionally add a style attribute to all paragraphs
&gt; we create. Instead we would add something like this only in a case where the
&gt; style was needed to override something inherited. The editing machinery has
&gt; lots of code that does that, adding explicit styles to prevent being
&gt; adversely affected by the surrounding context, like adding boldness when
&gt; pasting in a non-bold area to keep the text bold.

I agree. I definitely want to refine this once we know what would be a &quot;proper&quot; fix.

&gt; (You forgot the return statement, by the way.)

Ah silly me. Just checked and it still works when really returning the div. (and that my incorrect patch still crashes if the test has p {display: contents})

&gt; But honestly, not sure this is the best solution to a null dereference. The
&gt; question is what would be good behavior in those null dereference cases. If
&gt; actually changing the markup so the paragraphs are truly paragraphs is
&gt; desired, then I agree that this is one of the best ways to do it.
&gt; 
&gt; Also, a solution specific to &quot;display&quot; might not be sufficient. Are the
&gt; other inherited properties that could make a paragraph not be a paragraph?
&gt; We have code to do these kinds of operations; not sure exactly where it is
&gt; off hand, and it’s often very inefficient because it computes style for the
&gt; surrounding context, often repeatedly.

As I explained in comment 2 the issue is not about &quot;paragraphs being truly paragraphs&quot; but seems to be that an element with &quot;display: contents&quot; does not generate any renderer. For now I can&apos;t think of other CSS properties than can have this effect.

(BTW I also expect this issue with &quot;display: contents&quot; not having a renderer to happen in a lot of places. I just noticed Rob fixed bug 221388 for example.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731251</commentid>
    <comment_count>6</comment_count>
      <attachid>420933</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-02-19 00:37:56 -0800</bug_when>
    <thetext>Created attachment 420933
Patch

After Darin&apos;s feedback here is another version that does not modify the DOM tree and instead just aborts InsertParagraphSeparatorCommand::doApply if the container has display: contents. Probably that makes the behavior weird, but it seems OK to do so for this edge case, at least the method has various places where it just returns. I still suspect there could be more issues in the editing code with display: contents (at least there are definitely more callers of WebCore::CompositeEditCommand::appendBlockPlaceholder that could hit the debug assert from comment 1).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732059</commentid>
    <comment_count>7</comment_count>
      <attachid>421172</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-02-22 01:49:27 -0800</bug_when>
    <thetext>Created attachment 421172
Patch

Update ios expectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732421</commentid>
    <comment_count>8</comment_count>
      <attachid>421172</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-02-22 18:20:57 -0800</bug_when>
    <thetext>Comment on attachment 421172
Patch

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

&gt; Source/WebCore/editing/InsertParagraphSeparatorCommand.cpp:255
&gt; +        if (parent-&gt;hasDisplayContents())
&gt; +            return;

Don&apos;t we want to just check parent-&gt;renderer() instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732468</commentid>
    <comment_count>9</comment_count>
      <attachid>421172</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-02-23 01:54:39 -0800</bug_when>
    <thetext>Comment on attachment 421172
Patch

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

&gt;&gt; Source/WebCore/editing/InsertParagraphSeparatorCommand.cpp:255
&gt;&gt; +            return;
&gt; 
&gt; Don&apos;t we want to just check parent-&gt;renderer() instead?

I think so. As I said in comment 6, there are probably more issues of these kind so to be safe I&apos;m going to upload a stricter patch for all the appendBlockPlaceholder calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732469</commentid>
    <comment_count>10</comment_count>
      <attachid>421293</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-02-23 01:55:33 -0800</bug_when>
    <thetext>Created attachment 421293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732650</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-23 12:19:29 -0800</bug_when>
    <thetext>Committed r273330: &lt;https://commits.webkit.org/r273330&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421293.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>419814</attachid>
            <date>2021-02-09 21:31:08 -0800</date>
            <delta_ts>2021-02-09 21:31:08 -0800</delta_ts>
            <desc>Test</desc>
            <filename>repro_512.html</filename>
            <type>text/html</type>
            <size>475</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PHN0eWxlPgogIGRpdiB7CiAgICBkaXNwbGF5OiBjb250ZW50czsKICB9CiAgYiwgc3BhbiB7CiAg
ICBib3JkZXItc3R5bGU6IHJpZGdlOwogICAgZmxvYXQ6IHJpZ2h0OwogIH0KICBiIHsKICAgIGZv
bnQtd2VpZ2h0OiBpbmhlcml0OwogIH0KPC9zdHlsZT4KPHNjcmlwdD4KICBvbmxvYWQgPSAoKSA9
PiB7CiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnYicpKTsKICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOwogICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoJ1NlbGVjdEFsbCcpOwogICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0NvcHknKTsKICAgIGRv
Y3VtZW50LmRlc2lnbk1vZGUgPSAnb24nOwogICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1Bhc3Rl
Jyk7CiAgfTsKPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420830</attachid>
            <date>2021-02-18 08:28:55 -0800</date>
            <delta_ts>2021-02-19 00:37:56 -0800</delta_ts>
            <desc>(proof-of-concept) Patch</desc>
            <filename>221651.patch</filename>
            <type>text/plain</type>
            <size>722</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRpbmcuY3BwCmluZGV4IGY5N2I5ZjE3YjcuLjFkYTIxYzc1NDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nLmNwcApAQCAtODYwLDggKzg2MCwxMCBAQCBib29s
IGlzRW1wdHlUYWJsZUNlbGwoY29uc3QgTm9kZSogbm9kZSkKIFJlZjxIVE1MRWxlbWVudD4gY3Jl
YXRlRGVmYXVsdFBhcmFncmFwaEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHN3
aXRjaCAoZG9jdW1lbnQuZWRpdG9yKCkuZGVmYXVsdFBhcmFncmFwaFNlcGFyYXRvcigpKSB7Ci0g
ICAgY2FzZSBFZGl0b3JQYXJhZ3JhcGhTZXBhcmF0b3JJc0RpdjoKLSAgICAgICAgcmV0dXJuIEhU
TUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNhc2UgRWRpdG9yUGFyYWdyYXBo
U2VwYXJhdG9ySXNEaXY6IHsKKyAgICAgICAgUmVmPEhUTUxFbGVtZW50PiBkaXYgPSBIVE1MRGl2
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICAgICAgZGl2LT5zZXRBdHRyaWJ1dGUoc3R5
bGVBdHRyLCAiZGlzcGxheTpibG9jayIpOworICAgIH0KICAgICBjYXNlIEVkaXRvclBhcmFncmFw
aFNlcGFyYXRvcklzUDoKICAgICAgICAgYnJlYWs7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420933</attachid>
            <date>2021-02-19 00:37:56 -0800</date>
            <delta_ts>2021-02-22 01:49:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Bug-221651-Nullptr-crash-in-ReplaceSelectionCommand-.patch</filename>
            <type>text/plain</type>
            <size>4880</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSA5Nzk4MDRjOGQyODFkZWNiOGMyZjU0NWJhNjhkYThkNmJmOGM1YmRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/RnI9QzM9QTlkPUMzPUE5cmljPTIwV2FuZz89
IDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRlOiBGcmksIDE5IEZlYiAyMDIxIDA5OjMwOjEzICswMTAw
ClN1YmplY3Q6IFtQQVRDSF0gQnVnIDIyMTY1MSAtIE51bGxwdHIgY3Jhc2ggaW4KIFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpyZW1vdmVSZWR1bmRhbnRTdHlsZXNBbmRLZWVwU3R5bGVTcGFuSW5s
aW5lCgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8
IDEwICsrKysrKysrCiAuLi5wbGF5LWNvbnRlbnRzLWNvbnRhaW5lci1jcmFzaC1leHBlY3RlZC50
eHQgfCAgMSArCiAuLi53aXRoLWRpc3BsYXktY29udGVudHMtY29udGFpbmVyLWNyYXNoLmh0bWwg
fCAyNSArKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgfCAxOCArKysrKysrKysrKysrCiAuLi4vSW5zZXJ0UGFyYWdyYXBoU2Vw
YXJhdG9yQ29tbWFuZC5jcHAgICAgICAgfCAgMyArKysKIDUgZmlsZXMgY2hhbmdlZCwgNTcgaW5z
ZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZWRpdGluZy9t
dXRhdGlvbi13aXRoLWRpc3BsYXktY29udGVudHMtY29udGFpbmVyLWNyYXNoLWV4cGVjdGVkLnR4
dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZWRpdGluZy9tdXRhdGlvbi13
aXRoLWRpc3BsYXktY29udGVudHMtY29udGFpbmVyLWNyYXNoLmh0bWwKCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTk4NDhi
NTNiYy4uZWM1NzY2NWQzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTAyLTE5ICBGcmVk
ZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBOdWxscHRyIGNyYXNoIGlu
IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpyZW1vdmVSZWR1bmRhbnRTdHlsZXNBbmRLZWVwU3R5
bGVTcGFuSW5saW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjE2NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3QvZWRpdGluZy9tdXRhdGlvbi13aXRoLWRpc3BsYXktY29udGVudHMtY29udGFp
bmVyLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9lZGl0aW5nL211
dGF0aW9uLXdpdGgtZGlzcGxheS1jb250ZW50cy1jb250YWluZXItY3Jhc2guaHRtbDogQWRkZWQu
CisKIDIwMjEtMDItMTUgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIENyYXNoIGluIFJldGFpblB0cjxDR0ltYWdlKj46OlJldGFpblB0ciB2aWEgSW1hZ2VCdWZm
ZXJDR0JhY2tlbmQ6OnRvQ0ZEYXRhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2VkaXRp
bmcvbXV0YXRpb24td2l0aC1kaXNwbGF5LWNvbnRlbnRzLWNvbnRhaW5lci1jcmFzaC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2VkaXRpbmcvbXV0YXRpb24td2l0aC1kaXNwbGF5LWNv
bnRlbnRzLWNvbnRhaW5lci1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMC4uNjU0ZGRmN2YxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZWRpdGluZy9tdXRhdGlvbi13aXRoLWRpc3BsYXktY29udGVudHMtY29udGFpbmVy
LWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitUaGlzIHRlc3QgcGFzc2VzIGlmIGl0
IGRvZXMgbm90IGNyYXNoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9lZGl0aW5nL211
dGF0aW9uLXdpdGgtZGlzcGxheS1jb250ZW50cy1jb250YWluZXItY3Jhc2guaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZWRpdGluZy9tdXRhdGlvbi13aXRoLWRpc3BsYXktY29udGVudHMtY29udGFp
bmVyLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYmQx
Y2RlYTllYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZWRpdGluZy9tdXRh
dGlvbi13aXRoLWRpc3BsYXktY29udGVudHMtY29udGFpbmVyLWNyYXNoLmh0bWwKQEAgLTAsMCAr
MSwyNSBAQAorPHN0eWxlPgorICBkaXYgeworICAgIGRpc3BsYXk6IGNvbnRlbnRzOworICB9Cisg
IGIsIHNwYW4geworICAgIGJvcmRlci1zdHlsZTogcmlkZ2U7CisgICAgZmxvYXQ6IHJpZ2h0Owor
ICB9CisgIGIgeworICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0OworICB9Cis8L3N0eWxlPgorPGRp
dj5UaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLjwvZGl2PgorPHNjcmlwdD4K
KyAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CisgIG9ubG9hZCA9ICgpID0+IHsKKyAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYicpKTsKKyAgICBkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKKyAg
ICBkb2N1bWVudC5leGVjQ29tbWFuZCgnU2VsZWN0QWxsJyk7CisgICAgZG9jdW1lbnQuZXhlY0Nv
bW1hbmQoJ0NvcHknKTsKKyAgICBkb2N1bWVudC5kZXNpZ25Nb2RlID0gJ29uJzsKKyAgICBkb2N1
bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnKTsKKyAgfTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGQ0ZmI4ZTdmYjguLjI5OTU0YTdkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAy
MS0wMi0xOSAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CisKKyAgICAgICAgTnVs
bHB0ciBjcmFzaCBpbiBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6cmVtb3ZlUmVkdW5kYW50U3R5
bGVzQW5kS2VlcFN0eWxlU3BhbklubGluZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNjUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlcmUgYXJlIGFzc3VtcHRpb25zIGluIHRoZSBlZGl0aW5nIGNv
ZGUgdGhhdCBuZXcgY29udGFpbmVycyBoYXZlIGFuIGFzc29jaWF0ZWQgcmVuZGVyZXIsCisgICAg
ICAgIHdoaWNoIGlzIG5vdCB0aGUgY2FzZSBpZiB0aGVpciBzdHlsZSBpcyAiZGlzcGxheTogY29u
dGVudHMiLiBUaGlzIHBhdGNoIGZpeGVzIG9uZSBudWxscHRyCisgICAgICAgIGRlcmVmZXJlbmNl
IGluIHJlbGVhc2UgYnVpbGQgYW5kIG9uZSBkZWJ1ZyBBU1NFUlQsIGJvdGggb2YgdGhlbSBoYXBw
ZW5pbmcgd2hlbiBleGVjdXRpbmcKKyAgICAgICAgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0
aEZyYWdtZW50LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZWRpdGluZy9tdXRhdGlvbi13aXRoLWRp
c3BsYXktY29udGVudHMtY29udGFpbmVyLWNyYXNoLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcv
SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpkb0FwcGx5KTogQWJvcnQgY29tbWFuZCBp
ZiB0aGUgY29udGFpbmVyIGhhcworICAgICAgICBkaXNwbGF5OiBjb250ZW50cy4KKwogMjAyMS0w
Mi0xNSAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgQ3Jhc2gg
aW4gUmV0YWluUHRyPENHSW1hZ2UqPjo6UmV0YWluUHRyIHZpYSBJbWFnZUJ1ZmZlckNHQmFja2Vu
ZDo6dG9DRkRhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFy
YWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCmluZGV4IDc1YTQzMWEwYTQuLmM1ZWExOTMz
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2Vw
YXJhdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcApAQCAtMjUwLDYgKzI1MCw5IEBAIHZvaWQgSW5zZXJ0
UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIGF1dG8gcGFyZW50
ID0gY2xvbmVIaWVyYXJjaHlVbmRlck5ld0Jsb2NrKGFuY2VzdG9ycywgKmJsb2NrVG9JbnNlcnQp
OwogICAgICAgICBhdXRvKiBwYXJlbnRQdHIgPSBwYXJlbnQucHRyKCk7CiAgICAgICAgIAorICAg
ICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwor
ICAgICAgICBpZiAocGFyZW50LT5oYXNEaXNwbGF5Q29udGVudHMoKSkKKyAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgYXBwZW5kQmxvY2tQbGFjZWhvbGRlcihXVEZNb3ZlKHBhcmVudCkpOwog
CiAgICAgICAgIHNldEVuZGluZ1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKGZpcnN0UG9zaXRp
b25Jbk5vZGUocGFyZW50UHRyKSwgQWZmaW5pdHk6OkRvd25zdHJlYW0sIGVuZGluZ1NlbGVjdGlv
bigpLmlzRGlyZWN0aW9uYWwoKSkpOwotLSAKMi4yNS4xCgo=
</data>
<flag name="commit-queue"
          id="439682"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421172</attachid>
            <date>2021-02-22 01:49:27 -0800</date>
            <delta_ts>2021-02-23 01:55:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Bug-221651-Nullptr-crash-in-ReplaceSelectionCommand-.patch</filename>
            <type>text/plain</type>
            <size>5607</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSAyYzdkNDU0N2ExOTJlMjlhMjlmYjRmZTgxYjQwMTJmMjU5YjczODUxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/RnI9QzM9QTlkPUMzPUE5cmljPTIwV2FuZz89
IDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRlOiBGcmksIDE5IEZlYiAyMDIxIDA5OjMwOjEzICswMTAw
ClN1YmplY3Q6IFtQQVRDSF0gQnVnIDIyMTY1MSAtIE51bGxwdHIgY3Jhc2ggaW4KIFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpyZW1vdmVSZWR1bmRhbnRTdHlsZXNBbmRLZWVwU3R5bGVTcGFuSW5s
aW5lCgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8
IDExICsrKysrKysrCiAuLi5wbGF5LWNvbnRlbnRzLWNvbnRhaW5lci1jcmFzaC1leHBlY3RlZC50
eHQgfCAgMSArCiAuLi53aXRoLWRpc3BsYXktY29udGVudHMtY29udGFpbmVyLWNyYXNoLmh0bWwg
fCAyNSArKysrKysrKysrKysrKysrKysrCiAuLi5wbGF5LWNvbnRlbnRzLWNvbnRhaW5lci1jcmFz
aC1leHBlY3RlZC50eHQgfCAgMiArKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgIHwgMTggKysrKysrKysrKysrKwogLi4uL0luc2VydFBhcmFncmFwaFNlcGFy
YXRvckNvbW1hbmQuY3BwICAgICAgIHwgIDMgKysrCiA2IGZpbGVzIGNoYW5nZWQsIDYwIGluc2Vy
dGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2VkaXRpbmcvbXV0
YXRpb24td2l0aC1kaXNwbGF5LWNvbnRlbnRzLWNvbnRhaW5lci1jcmFzaC1leHBlY3RlZC50eHQK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2VkaXRpbmcvbXV0YXRpb24td2l0
aC1kaXNwbGF5LWNvbnRlbnRzLWNvbnRhaW5lci1jcmFzaC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2Zhc3QvZWRpdGluZy9tdXRhdGlvbi13aXRoLWRp
c3BsYXktY29udGVudHMtY29udGFpbmVyLWNyYXNoLWV4cGVjdGVkLnR4dAoKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYjc3
YmI4MTQ3Li5lZjhjNmQ4MjY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMTkgIEZy
ZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgorCisgICAgICAgIE51bGxwdHIgY3Jhc2gg
aW4gUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OnJlbW92ZVJlZHVuZGFudFN0eWxlc0FuZEtlZXBT
dHlsZVNwYW5JbmxpbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMTY1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZmFzdC9lZGl0aW5nL211dGF0aW9uLXdpdGgtZGlzcGxheS1jb250ZW50cy1jb250
YWluZXItY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2VkaXRpbmcv
bXV0YXRpb24td2l0aC1kaXNwbGF5LWNvbnRlbnRzLWNvbnRhaW5lci1jcmFzaC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvZmFzdC9lZGl0aW5nL211dGF0aW9uLXdpdGgtZGlz
cGxheS1jb250ZW50cy1jb250YWluZXItY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAy
MS0wMi0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBTY3JvbGxpbmcgb24gaHR0cHM6Ly93d3cuYXBwbGUuY29tL2lwYWQtYWlyLyBjYW4gaml0dGVy
IG9uIGNlcnRhaW4gc2VjdGlvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZWRpdGlu
Zy9tdXRhdGlvbi13aXRoLWRpc3BsYXktY29udGVudHMtY29udGFpbmVyLWNyYXNoLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZWRpdGluZy9tdXRhdGlvbi13aXRoLWRpc3BsYXktY29u
dGVudHMtY29udGFpbmVyLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwLi42NTRkZGY3ZjE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9lZGl0aW5nL211dGF0aW9uLXdpdGgtZGlzcGxheS1jb250ZW50cy1jb250YWluZXIt
Y3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1RoaXMgdGVzdCBwYXNzZXMgaWYgaXQg
ZG9lcyBub3QgY3Jhc2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2VkaXRpbmcvbXV0
YXRpb24td2l0aC1kaXNwbGF5LWNvbnRlbnRzLWNvbnRhaW5lci1jcmFzaC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9lZGl0aW5nL211dGF0aW9uLXdpdGgtZGlzcGxheS1jb250ZW50cy1jb250YWlu
ZXItY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5iZDFj
ZGVhOWViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9lZGl0aW5nL211dGF0
aW9uLXdpdGgtZGlzcGxheS1jb250ZW50cy1jb250YWluZXItY3Jhc2guaHRtbApAQCAtMCwwICsx
LDI1IEBACis8c3R5bGU+CisgIGRpdiB7CisgICAgZGlzcGxheTogY29udGVudHM7CisgIH0KKyAg
Yiwgc3BhbiB7CisgICAgYm9yZGVyLXN0eWxlOiByaWRnZTsKKyAgICBmbG9hdDogcmlnaHQ7Cisg
IH0KKyAgYiB7CisgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7CisgIH0KKzwvc3R5bGU+Cis8ZGl2
PlRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jhc2guPC9kaXY+Cis8c2NyaXB0Pgor
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgb25sb2FkID0gKCkgPT4geworICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdiJykpOworICAgIGRvY3VtZW50LmRvY3VtZW50
RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOworICAg
IGRvY3VtZW50LmV4ZWNDb21tYW5kKCdTZWxlY3RBbGwnKTsKKyAgICBkb2N1bWVudC5leGVjQ29t
bWFuZCgnQ29weScpOworICAgIGRvY3VtZW50LmRlc2lnbk1vZGUgPSAnb24nOworICAgIGRvY3Vt
ZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScpOworICB9OworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvZmFzdC9lZGl0aW5nL211dGF0aW9uLXdpdGgtZGlzcGxh
eS1jb250ZW50cy1jb250YWluZXItY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL2Zhc3QvZWRpdGluZy9tdXRhdGlvbi13aXRoLWRpc3BsYXktY29udGVudHMtY29u
dGFpbmVyLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwLi4wMTYzYWJjOWU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL2Zhc3QvZWRpdGluZy9tdXRhdGlvbi13aXRoLWRpc3BsYXktY29udGVudHMtY29udGFp
bmVyLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1RoaXMgdGVzdCBwYXNzZXMg
aWYgaXQgZG9lcyBub3QgY3Jhc2guCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmN2U3Mzk1OTI5Li4wNTlkZDk5
NTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDItMTkgIEZyZWRlcmljIFdh
bmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgorCisgICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQ6OnJlbW92ZVJlZHVuZGFudFN0eWxlc0FuZEtlZXBTdHlsZVNwYW5J
bmxpbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MTY1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
ZXJlIGFyZSBhc3N1bXB0aW9ucyBpbiB0aGUgZWRpdGluZyBjb2RlIHRoYXQgbmV3IGNvbnRhaW5l
cnMgaGF2ZSBhbiBhc3NvY2lhdGVkIHJlbmRlcmVyLAorICAgICAgICB3aGljaCBpcyBub3QgdGhl
IGNhc2UgaWYgdGhlaXIgc3R5bGUgaXMgImRpc3BsYXk6IGNvbnRlbnRzIi4gVGhpcyBwYXRjaCBm
aXhlcyBvbmUgbnVsbHB0cgorICAgICAgICBkZXJlZmVyZW5jZSBpbiByZWxlYXNlIGJ1aWxkIGFu
ZCBvbmUgZGVidWcgQVNTRVJULCBib3RoIG9mIHRoZW0gaGFwcGVuaW5nIHdoZW4gZXhlY3V0aW5n
CisgICAgICAgIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudC4KKworICAgICAg
ICBUZXN0OiBmYXN0L2VkaXRpbmcvbXV0YXRpb24td2l0aC1kaXNwbGF5LWNvbnRlbnRzLWNvbnRh
aW5lci1jcmFzaC5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFy
YXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZDo6ZG9BcHBseSk6IEFib3J0IGNvbW1hbmQgaWYgdGhlIGNvbnRhaW5lciBoYXMK
KyAgICAgICAgZGlzcGxheTogY29udGVudHMuCisKIDIwMjEtMDItMTggIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgU2Nyb2xsaW5nIG9uIGh0dHBzOi8v
d3d3LmFwcGxlLmNvbS9pcGFkLWFpci8gY2FuIGppdHRlciBvbiBjZXJ0YWluIHNlY3Rpb25zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRv
ckNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBh
cmF0b3JDb21tYW5kLmNwcAppbmRleCA3NWE0MzFhMGE0Li5jNWVhMTkzMzQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9y
Q29tbWFuZC5jcHAKQEAgLTI1MCw2ICsyNTAsOSBAQCB2b2lkIEluc2VydFBhcmFncmFwaFNlcGFy
YXRvckNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAgICBhdXRvIHBhcmVudCA9IGNsb25lSGllcmFy
Y2h5VW5kZXJOZXdCbG9jayhhbmNlc3RvcnMsICpibG9ja1RvSW5zZXJ0KTsKICAgICAgICAgYXV0
byogcGFyZW50UHRyID0gcGFyZW50LnB0cigpOwogICAgICAgICAKKyAgICAgICAgZG9jdW1lbnQo
KS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICAgICAgaWYgKHBh
cmVudC0+aGFzRGlzcGxheUNvbnRlbnRzKCkpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IGFwcGVuZEJsb2NrUGxhY2Vob2xkZXIoV1RGTW92ZShwYXJlbnQpKTsKIAogICAgICAgICBzZXRF
bmRpbmdTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihmaXJzdFBvc2l0aW9uSW5Ob2RlKHBhcmVu
dFB0ciksIEFmZmluaXR5OjpEb3duc3RyZWFtLCBlbmRpbmdTZWxlY3Rpb24oKS5pc0RpcmVjdGlv
bmFsKCkpKTsKLS0gCjIuMjUuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421293</attachid>
            <date>2021-02-23 01:55:33 -0800</date>
            <delta_ts>2021-02-23 12:19:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Bug-221651-Nullptr-crash-in-ReplaceSelectionCommand-.patch</filename>
            <type>text/plain</type>
            <size>9364</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSA0OWEwMTZhMjdhNTY5NTQ4MmI3MDc0ZTQzOTliMjQ4Y2E0NDQ4MzdmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/RnI9QzM9QTlkPUMzPUE5cmljPTIwV2FuZz89
IDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRlOiBGcmksIDE5IEZlYiAyMDIxIDA5OjMwOjEzICswMTAw
ClN1YmplY3Q6IFtQQVRDSF0gQnVnIDIyMTY1MSAtIE51bGxwdHIgY3Jhc2ggaW4KIFJlcGxhY2VT
ZWxlY3Rpb25Db21tYW5kOjpyZW1vdmVSZWR1bmRhbnRTdHlsZXNBbmRLZWVwU3R5bGVTcGFuSW5s
aW5lCgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8
IDExICsrKysrKysrCiAuLi5wbGF5LWNvbnRlbnRzLWNvbnRhaW5lci1jcmFzaC1leHBlY3RlZC50
eHQgfCAgMSArCiAuLi53aXRoLWRpc3BsYXktY29udGVudHMtY29udGFpbmVyLWNyYXNoLmh0bWwg
fCAyNSArKysrKysrKysrKysrKysrKysrCiAuLi5wbGF5LWNvbnRlbnRzLWNvbnRhaW5lci1jcmFz
aC1leHBlY3RlZC50eHQgfCAgMiArKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgIHwgMjUgKysrKysrKysrKysrKysrKysrKwogLi4uL1dlYkNvcmUvZWRpdGlu
Zy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgIHwgIDcgKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggfCAgMiArLQogLi4uL0luc2VydFBhcmFncmFw
aFNlcGFyYXRvckNvbW1hbmQuY3BwICAgICAgIHwgMTIgKysrKysrLS0tCiA4IGZpbGVzIGNoYW5n
ZWQsIDc3IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9lZGl0aW5nL211dGF0aW9uLXdpdGgtZGlzcGxheS1jb250ZW50cy1j
b250YWluZXItY3Jhc2gtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvZmFzdC9lZGl0aW5nL211dGF0aW9uLXdpdGgtZGlzcGxheS1jb250ZW50cy1jb250YWluZXIt
Y3Jhc2guaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9m
YXN0L2VkaXRpbmcvbXV0YXRpb24td2l0aC1kaXNwbGF5LWNvbnRlbnRzLWNvbnRhaW5lci1jcmFz
aC1leHBlY3RlZC50eHQKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2I3N2JiODE0Ny4uZWY4YzZkODI2NCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDIxLTAyLTE5ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNv
bT4KKworICAgICAgICBOdWxscHRyIGNyYXNoIGluIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpy
ZW1vdmVSZWR1bmRhbnRTdHlsZXNBbmRLZWVwU3R5bGVTcGFuSW5saW5lCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE2NTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZWRpdGluZy9tdXRhdGlv
bi13aXRoLWRpc3BsYXktY29udGVudHMtY29udGFpbmVyLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9lZGl0aW5nL211dGF0aW9uLXdpdGgtZGlzcGxheS1jb250ZW50
cy1jb250YWluZXItY3Jhc2guaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL2Zh
c3QvZWRpdGluZy9tdXRhdGlvbi13aXRoLWRpc3BsYXktY29udGVudHMtY29udGFpbmVyLWNyYXNo
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMjEtMDItMTggIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgU2Nyb2xsaW5nIG9uIGh0dHBzOi8vd3d3LmFw
cGxlLmNvbS9pcGFkLWFpci8gY2FuIGppdHRlciBvbiBjZXJ0YWluIHNlY3Rpb25zCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2VkaXRpbmcvbXV0YXRpb24td2l0aC1kaXNwbGF5LWNvbnRl
bnRzLWNvbnRhaW5lci1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2VkaXRp
bmcvbXV0YXRpb24td2l0aC1kaXNwbGF5LWNvbnRlbnRzLWNvbnRhaW5lci1jcmFzaC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNjU0ZGRmN2YxNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZWRpdGluZy9tdXRhdGlvbi13aXRo
LWRpc3BsYXktY29udGVudHMtY29udGFpbmVyLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
IEBACitUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9lZGl0aW5nL211dGF0aW9uLXdpdGgtZGlzcGxheS1jb250ZW50cy1j
b250YWluZXItY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZWRpdGluZy9tdXRhdGlvbi13
aXRoLWRpc3BsYXktY29udGVudHMtY29udGFpbmVyLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYmQxY2RlYTllYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZWRpdGluZy9tdXRhdGlvbi13aXRoLWRpc3BsYXktY29udGVudHMtY29u
dGFpbmVyLWNyYXNoLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPHN0eWxlPgorICBkaXYgeworICAg
IGRpc3BsYXk6IGNvbnRlbnRzOworICB9CisgIGIsIHNwYW4geworICAgIGJvcmRlci1zdHlsZTog
cmlkZ2U7CisgICAgZmxvYXQ6IHJpZ2h0OworICB9CisgIGIgeworICAgIGZvbnQtd2VpZ2h0OiBp
bmhlcml0OworICB9Cis8L3N0eWxlPgorPGRpdj5UaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMg
bm90IGNyYXNoLjwvZGl2PgorPHNjcmlwdD4KKyAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIG9ubG9hZCA9ICgpID0+IHsKKyAgICBkb2N1
bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
YicpKTsKKyAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnc3BhbicpKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnU2VsZWN0
QWxsJyk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0NvcHknKTsKKyAgICBkb2N1bWVudC5k
ZXNpZ25Nb2RlID0gJ29uJzsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnKTsKKyAg
fTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2Zhc3Qv
ZWRpdGluZy9tdXRhdGlvbi13aXRoLWRpc3BsYXktY29udGVudHMtY29udGFpbmVyLWNyYXNoLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9mYXN0L2VkaXRpbmcvbXV0YXRp
b24td2l0aC1kaXNwbGF5LWNvbnRlbnRzLWNvbnRhaW5lci1jcmFzaC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMDE2M2FiYzllNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9mYXN0L2VkaXRpbmcvbXV0YXRpb24t
d2l0aC1kaXNwbGF5LWNvbnRlbnRzLWNvbnRhaW5lci1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyIEBACitUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLgorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZjdlNzM5NTkyOS4uY2NiODNjNTg3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDIxLTAyLTE5ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAg
ICAgICBOdWxscHRyIGNyYXNoIGluIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpyZW1vdmVSZWR1
bmRhbnRTdHlsZXNBbmRLZWVwU3R5bGVTcGFuSW5saW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE2NTEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSBhcmUgYXNzdW1wdGlvbnMgaW4gdGhlIGVk
aXRpbmcgY29kZSB0aGF0IG5ldyBjb250YWluZXJzIGhhdmUgYW4gYXNzb2NpYXRlZCByZW5kZXJl
ciwKKyAgICAgICAgd2hpY2ggaXMgbm90IHRoZSBjYXNlIGlmIHRoZWlyIHN0eWxlIGlzICJkaXNw
bGF5OiBjb250ZW50cyIuIFRoaXMgcGF0Y2ggcmVwbGFjZXMgdGhlCisgICAgICAgIHN0cmljdCBk
ZWJ1ZyBBU1NFUlQgaW4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGVuZEJsb2NrUGxhY2Vob2xk
ZXIgd2l0aCBhIGZhaWx1cmUKKyAgICAgICAgc3BlY2lmaWVkIGJ5IGEgbnVsbHB0ciByZXR1cm4g
dmFsdWUsIHNpbWlsYXIgdG8gb3RoZXIgQmxvY2tQbGFjZWhvbGRlciBBUElzLiBUaGF0IHdheQor
ICAgICAgICBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kOjpkb0FwcGx5IGNhbiBleGl0
IGVhcmx5IHdoZW4gdGhlIGJsb2NrIHBsYWNlaG9sZGVyIGNhbm5vdAorICAgICAgICBiZSBpbnNl
cnRlZC4gVGhpcyBwYXRjaCBhbHNvIGZpeGVzIG9uZSBudWxscHRyIGRlcmVmZXJlbmNlIGluIHJl
bGVhc2UgYnVpbGQgaGFwcGVuaW5nIHdoZW4KKyAgICAgICAgZXhlY3V0aW5nIEVkaXRvcjo6cmVw
bGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudC4KKworICAgICAgICBUZXN0OiBmYXN0L2VkaXRpbmcv
bXV0YXRpb24td2l0aC1kaXNwbGF5LWNvbnRlbnRzLWNvbnRhaW5lci1jcmFzaC5odG1sCisKKyAg
ICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjphcHBlbmRCbG9ja1BsYWNlaG9sZGVyKTogUmV0dXJu
IG51bGwgaXMgdGhlIGNvbnRhaW5lcgorICAgICAgICBoYXMgbm8gYXNzb2NpYXRlZCByZW5kZXJl
ci4KKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmg6IFJldHVybiBhIFJl
ZlB0ciwgc28gaXQgaXMgbnVsbCBpbiBjYXNlIG9mIGZhaWx1cmUuCisgICAgICAgICogZWRpdGlu
Zy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmRvQXBwbHkpOiBBYm9ydCBjb21tYW5k
IGlmIHRoZSBibG9jayBwbGFjZWhvbGRlcgorICAgICAgICBjYW5ub3QgYmUgaW5zZXJ0ZWQgaW4g
dGhlIGNvbnRhaW5lci4KKwogMjAyMS0wMi0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBTY3JvbGxpbmcgb24gaHR0cHM6Ly93d3cuYXBwbGUuY29t
L2lwYWQtYWlyLyBjYW4gaml0dGVyIG9uIGNlcnRhaW4gc2VjdGlvbnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggY2M5ZmNkMzVhYi4u
MmU0NzYwZmIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0
Q29tbWFuZC5jcHAKQEAgLTEwNjUsMTIgKzEwNjUsMTMgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6ZGVsZXRlSW5zaWduaWZpY2FudFRleHREb3duc3RyZWFtKGNvbnN0IFBvc2l0aW9uJiBw
b3MKICAgICBkZWxldGVJbnNpZ25pZmljYW50VGV4dChwb3NpdGlvbiwgVmlzaWJsZVBvc2l0aW9u
KHBvc2l0aW9uKS5uZXh0KCkuZGVlcEVxdWl2YWxlbnQoKS5kb3duc3RyZWFtKCkpOwogfQogCi1S
ZWY8RWxlbWVudD4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmFwcGVuZEJsb2NrUGxhY2Vob2xkZXIo
UmVmPEVsZW1lbnQ+JiYgY29udGFpbmVyKQorUmVmUHRyPEVsZW1lbnQ+IENvbXBvc2l0ZUVkaXRD
b21tYW5kOjphcHBlbmRCbG9ja1BsYWNlaG9sZGVyKFJlZjxFbGVtZW50PiYmIGNvbnRhaW5lcikK
IHsKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygp
OwogICAgIAotICAgIC8vIFNob3VsZCBhc3NlcnQgaXNCbG9ja0Zsb3cgfHwgaXNJbmxpbmVGbG93
IHdoZW4gZGVsZXRpb24gaW1wcm92ZXMuIFNlZSA0MjQ0OTY0LgotICAgIEFTU0VSVChjb250YWlu
ZXItPnJlbmRlcmVyKCkpOworICAgIC8vIFNob3VsZCBjaGVjayBpc0Jsb2NrRmxvdyB8fCBpc0lu
bGluZUZsb3cgd2hlbiBkZWxldGlvbiBpbXByb3Zlcy4gU2VlIDQyNDQ5NjQuCisgICAgaWYgKCFj
b250YWluZXItPnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgYXV0
byBwbGFjZWhvbGRlciA9IGNyZWF0ZUJsb2NrUGxhY2Vob2xkZXJFbGVtZW50KGRvY3VtZW50KCkp
OwogICAgIGFwcGVuZE5vZGUocGxhY2Vob2xkZXIuY29weVJlZigpLCBXVEZNb3ZlKGNvbnRhaW5l
cikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCmlu
ZGV4IDQyNjgxOTZmODkuLmE0ODNjZjM5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0NvbXBvc2l0ZUVkaXRDb21tYW5kLmgKQEAgLTE4Nyw3ICsxODcsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBkZWxldGVJbnNpZ25pZmljYW50VGV4dChjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNv
bnN0IFBvc2l0aW9uJiBlbmQpOwogICAgIHZvaWQgZGVsZXRlSW5zaWduaWZpY2FudFRleHREb3du
c3RyZWFtKGNvbnN0IFBvc2l0aW9uJik7CiAKLSAgICBSZWY8RWxlbWVudD4gYXBwZW5kQmxvY2tQ
bGFjZWhvbGRlcihSZWY8RWxlbWVudD4mJik7CisgICAgUmVmUHRyPEVsZW1lbnQ+IGFwcGVuZEJs
b2NrUGxhY2Vob2xkZXIoUmVmPEVsZW1lbnQ+JiYpOwogICAgIFJlZlB0cjxOb2RlPiBpbnNlcnRC
bG9ja1BsYWNlaG9sZGVyKGNvbnN0IFBvc2l0aW9uJik7CiAgICAgUmVmUHRyPE5vZGU+IGFkZEJs
b2NrUGxhY2Vob2xkZXJJZk5lZWRlZChFbGVtZW50Kik7CiAgICAgdm9pZCByZW1vdmVQbGFjZWhv
bGRlckF0KGNvbnN0IFBvc2l0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcAppbmRleCA3NWE0MzFh
MGE0Li5kMGVhNjkxODBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAKQEAgLTIyNCw3ICsyMjQsOCBA
QCB2b2lkIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmRvQXBwbHkoKQogICAgICAg
ICAgICAgICAgIC8vIHJlcHJlc2VudCB0aGUgcGFyYWdyYXBoIHRoYXQgd2UncmUgbGVhdmluZy4K
ICAgICAgICAgICAgICAgICBhdXRvIGV4dHJhQmxvY2sgPSBjcmVhdGVEZWZhdWx0UGFyYWdyYXBo
RWxlbWVudChkb2N1bWVudCgpKTsKICAgICAgICAgICAgICAgICBhcHBlbmROb2RlKGV4dHJhQmxv
Y2suY29weVJlZigpLCAqc3RhcnRCbG9jayk7Ci0gICAgICAgICAgICAgICAgYXBwZW5kQmxvY2tQ
bGFjZWhvbGRlcihXVEZNb3ZlKGV4dHJhQmxvY2spKTsKKyAgICAgICAgICAgICAgICBpZiAoIWFw
cGVuZEJsb2NrUGxhY2Vob2xkZXIoV1RGTW92ZShleHRyYUJsb2NrKSkpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFwcGVuZE5vZGUoKmJs
b2NrVG9JbnNlcnQsICpzdGFydEJsb2NrKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTI1MCw3ICsy
NTEsOCBAQCB2b2lkIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmRvQXBwbHkoKQog
ICAgICAgICBhdXRvIHBhcmVudCA9IGNsb25lSGllcmFyY2h5VW5kZXJOZXdCbG9jayhhbmNlc3Rv
cnMsICpibG9ja1RvSW5zZXJ0KTsKICAgICAgICAgYXV0byogcGFyZW50UHRyID0gcGFyZW50LnB0
cigpOwogICAgICAgICAKLSAgICAgICAgYXBwZW5kQmxvY2tQbGFjZWhvbGRlcihXVEZNb3ZlKHBh
cmVudCkpOworICAgICAgICBpZiAoIWFwcGVuZEJsb2NrUGxhY2Vob2xkZXIoV1RGTW92ZShwYXJl
bnQpKSkKKyAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24o
VmlzaWJsZVNlbGVjdGlvbihmaXJzdFBvc2l0aW9uSW5Ob2RlKHBhcmVudFB0ciksIEFmZmluaXR5
OjpEb3duc3RyZWFtLCBlbmRpbmdTZWxlY3Rpb24oKS5pc0RpcmVjdGlvbmFsKCkpKTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtMjg2LDggKzI4OCwxMCBAQCB2b2lkIEluc2VydFBhcmFncmFwaFNlcGFy
YXRvckNvbW1hbmQ6OmRvQXBwbHkoKQogCiAgICAgICAgIFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+
IGFuY2VzdG9yczsKICAgICAgICAgZ2V0QW5jZXN0b3JzSW5zaWRlQmxvY2socG9zaXRpb25Bdm9p
ZGluZ1NwZWNpYWxFbGVtZW50Qm91bmRhcnkocG9zaXRpb25PdXRzaWRlVGFiU3BhbihpbnNlcnRp
b25Qb3NpdGlvbikpLmRlcHJlY2F0ZWROb2RlKCksIHN0YXJ0QmxvY2suZ2V0KCksIGFuY2VzdG9y
cyk7Ci0gICAgICAgIAotICAgICAgICBhcHBlbmRCbG9ja1BsYWNlaG9sZGVyKGNsb25lSGllcmFy
Y2h5VW5kZXJOZXdCbG9jayhhbmNlc3RvcnMsICpibG9ja1RvSW5zZXJ0KSk7CisKKyAgICAgICAg
YXV0byBwYXJlbnQgPSBjbG9uZUhpZXJhcmNoeVVuZGVyTmV3QmxvY2soYW5jZXN0b3JzLCAqYmxv
Y2tUb0luc2VydCk7CisgICAgICAgIGlmICghYXBwZW5kQmxvY2tQbGFjZWhvbGRlcihXVEZNb3Zl
KHBhcmVudCkpKQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICAgICAgLy8gSW4g
dGhpcyBjYXNlLCB3ZSBuZWVkIHRvIHNldCB0aGUgbmV3IGVuZGluZyBzZWxlY3Rpb24uCiAgICAg
ICAgIHNldEVuZGluZ1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKGluc2VydGlvblBvc2l0aW9u
LCBBZmZpbml0eTo6RG93bnN0cmVhbSwgZW5kaW5nU2VsZWN0aW9uKCkuaXNEaXJlY3Rpb25hbCgp
KSk7Ci0tIAoyLjI1LjEKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>