<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>393209</bug_id>
          
          <creation_ts>2018-04-17 00:25:59 +0000</creation_ts>
          <short_desc>Krita crashes on the vector layer when undoing a mistake</short_desc>
          <delta_ts>2018-05-08 11:30:19 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Applications</classification>
          <product>krita</product>
          <component>Usability</component>
          <version>4.0.1</version>
          <rep_platform>unspecified</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>Pinky19295</reporter>
          <assigned_to name="Krita Bugs">krita-bugs-null</assigned_to>
          <cc>antti.savo</cc>
    
    <cc>dimula73</cc>
    
    <cc>scottpetrovic</cc>
          
          <cf_commitlink>https://commits.kde.org/krita/ba377491cdd4bc825de07035f7ed2e0a05545c84</cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1746194</commentid>
    <comment_count>0</comment_count>
    <who name="">Pinky19295</who>
    <bug_when>2018-04-17 00:25:59 +0000</bug_when>
    <thetext>On the Vector Layer, when using the Shape Tool to curve lines, when I try to undo a mistake, Krita will have an error message pop up saying &quot;Krita.exe has stopped working&quot; then close.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746316</commentid>
    <comment_count>1</comment_count>
    <who name="Scott Petrovic">scottpetrovic</who>
    <bug_when>2018-04-17 15:45:16 +0000</bug_when>
    <thetext>Can you give exact steps to make this happen? I tried playing around with editing vector points, then undoing, and I am not getting any crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746436</commentid>
    <comment_count>2</comment_count>
      <attachid>112089</attachid>
    <who name="">Pinky19295</who>
    <bug_when>2018-04-18 00:19:16 +0000</bug_when>
    <thetext>Created attachment 112089
attachment-5758-0.html

First I opened the Vector Layer, then I drew a shape with the Line Tool,
then I tried shaping it with the Shape Tool (obviously), and when I
accidentally clicked on it twice, it made a square node, but when I tried
to do undo it it crashed the entire program.

I know that you can&apos;t undo the node, but I don&apos;t think it should crash the
entire program when trying to undo it.

And if it helps: I tried it on a different computer and it still did it.
Both of them are Windows 8.

I&apos;m also using the newest version of Krita 4.0.1

On Tue, Apr 17, 2018 at 8:45 AM, Scott Petrovic &lt;bugzilla_noreply@kde.org&gt;
wrote:

&gt; https://bugs.kde.org/show_bug.cgi?id=393209
&gt;
&gt; Scott Petrovic &lt;scottpetrovic@gmail.com&gt; changed:
&gt;
&gt;            What    |Removed                     |Added
&gt; ------------------------------------------------------------
&gt; ----------------
&gt;                  CC|                            |scottpetrovic@gmail.com
&gt;          Resolution|---                         |WAITINGFORINFO
&gt;              Status|UNCONFIRMED                 |NEEDSINFO
&gt;
&gt; --- Comment #1 from Scott Petrovic &lt;scottpetrovic@gmail.com&gt; ---
&gt; Can you give exact steps to make this happen? I tried playing around with
&gt; editing vector points, then undoing, and I am not getting any crashes.
&gt;
&gt; --
&gt; You are receiving this mail because:
&gt; You reported the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746444</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Savolainen">antti.savo</who>
    <bug_when>2018-04-18 03:03:52 +0000</bug_when>
    <thetext>There we go, found a way to reproduce on Linux after the more detailed instructions. https://webmshare.com/6jDEB

Open vector layer
Draw a line with the Line Tool
Double click the Edit Shapes Tool so that a new node appears
Undo the node.

Informatio:
    Xubuntu 17.10
    krita 4.1.0-pre-alpha   

(gdb) bt
#0  0x00007ffff153eeee in KoPathShape::d_func() const (this=0x0) at ./libs/flake/KoPathShape.h:505
#1  0x00007ffff1539951 in KoPathShape::pathPointIndex(KoPathPoint const*) const (this=0x0, point=0x55555fbe0660) at ./libs/flake/KoPathShape.cpp:891
#2  0x00007ffff164b05e in KoPathToolSelection::selectedPointsData() const (this=0x5555612eac18) at ./libs/flake/tools/KoPathToolSelection.cpp:151
#3  0x00007ffff1647d33 in KoPathTool::updateActions() (this=0x5555612eac00) at ./libs/flake/tools/KoPathTool.cpp:1048
#4  0x00007ffff1702c39 in KoPathTool::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x5555612eac00, _c=QMetaObject::InvokeMetaMethod, _id=14, _a=0x7fffffffd290) at ./obj-x86_64-linux-gnu/libs/flake/kritaflake_autogen/CB6E7VNMGS/moc_KoPathTool.cpp:155
#5  0x00007ffff50f28e5 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007ffff77a0b87 in KisSelectedShapesProxy::selectionContentChanged() (this=0x55556117b9c8) at ./obj-x86_64-linux-gnu/libs/ui/kritaui_autogen/EWIEGA46WW/moc_KisSelectedShapesProxy.cpp:158
#7  0x00007ffff77a08e8 in KisSelectedShapesProxy::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x55556117b9c8, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7fffffffd410)
    at ./obj-x86_64-linux-gnu/libs/ui/kritaui_autogen/EWIEGA46WW/moc_KisSelectedShapesProxy.cpp:82
#8  0x00007ffff50f28e5 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007ffff157a7fd in KoShapeManager::selectionContentChanged() (this=0x55555fcb7330) at ./obj-x86_64-linux-gnu/libs/flake/kritaflake_autogen/include/moc_KoShapeManager.cpp:180
#10 0x00007ffff1576d75 in KoShapeManager::Private::updateTree() (this=0x55555f195ed0) at ./libs/flake/KoShapeManager.cpp:95
#11 0x00007ffff1577c41 in KoShapeManager::paint(QPainter&amp;, KoViewConverter const&amp;, bool) (this=0x55555fcb7330, painter=..., converter=..., forPrint=false) at ./libs/flake/KoShapeManager.cpp:253
#12 0x00007ffff7353f16 in KisShapeLayerCanvas::repaint() (this=0x555560cf9760) at ./libs/ui/flake/kis_shape_layer_canvas.cpp:296
#13 0x00007ffff77accf6 in KisShapeLayerCanvas::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x555560cf9760, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x555560d7e1f0)
    at ./obj-x86_64-linux-gnu/libs/ui/kritaui_autogen/QUY67KCZCL/moc_kis_shape_layer_canvas.cpp:87
#14 0x00007ffff50f3452 in QObject::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007ffff5e3e46c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007ffff5e45d34 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007ffff76aa495 in KisApplication::notify(QObject*, QEvent*) (this=0x7fffffffddb0, receiver=0x555560cf9760, event=0x7fffd8007af0) at ./libs/ui/KisApplication.cpp:652
#18 0x00007ffff50c3de8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007ffff50c655d in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007ffff511ce53 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007fffec790fb7 in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007fffec7911f0 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#23 0x00007fffec79127c in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007ffff511c47f in QEventDispatcherGlib::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff50c1e3a in QEventLoop::exec(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007ffff50cada4 in QCoreApplication::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x0000555555849423 in main(int, char**) (argc=1, argv=0x7fffffffdf38) at ./krita/main.cc:361</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746534</commentid>
    <comment_count>4</comment_count>
      <attachid>112101</attachid>
    <who name="">Pinky19295</who>
    <bug_when>2018-04-18 14:46:49 +0000</bug_when>
    <thetext>Created attachment 112101
attachment-29835-0.html

Undoing the node still crashes the program.

On Tue, Apr 17, 2018 at 8:03 PM, Antti Savolainen &lt;bugzilla_noreply@kde.org&gt;
wrote:

&gt; https://bugs.kde.org/show_bug.cgi?id=393209
&gt;
&gt; Antti Savolainen &lt;antti.savo@gmail.com&gt; changed:
&gt;
&gt;            What    |Removed                     |Added
&gt; ------------------------------------------------------------
&gt; ----------------
&gt;          Resolution|WAITINGFORINFO              |---
&gt;              Status|NEEDSINFO                   |CONFIRMED
&gt;      Ever confirmed|0                           |1
&gt;                  OS|MS Windows                  |All
&gt;                  CC|                            |antti.savo@gmail.com
&gt;            Platform|MS Windows                  |unspecified
&gt;
&gt; --- Comment #3 from Antti Savolainen &lt;antti.savo@gmail.com&gt; ---
&gt; There we go, found a way to reproduce on Linux after the more detailed
&gt; instructions. https://webmshare.com/6jDEB
&gt;
&gt; Open vector layer
&gt; Draw a line with the Line Tool
&gt; Double click the Edit Shapes Tool so that a new node appears
&gt; Undo the node.
&gt;
&gt; Informatio:
&gt;     Xubuntu 17.10
&gt;     krita 4.1.0-pre-alpha
&gt;
&gt; (gdb) bt
&gt; #0  0x00007ffff153eeee in KoPathShape::d_func() const (this=0x0) at
&gt; ./libs/flake/KoPathShape.h:505
&gt; #1  0x00007ffff1539951 in KoPathShape::pathPointIndex(KoPathPoint const*)
&gt; const
&gt; (this=0x0, point=0x55555fbe0660) at ./libs/flake/KoPathShape.cpp:891
&gt; #2  0x00007ffff164b05e in KoPathToolSelection::selectedPointsData() const
&gt; (this=0x5555612eac18) at ./libs/flake/tools/KoPathToolSelection.cpp:151
&gt; #3  0x00007ffff1647d33 in KoPathTool::updateActions()
&gt; (this=0x5555612eac00) at
&gt; ./libs/flake/tools/KoPathTool.cpp:1048
&gt; #4  0x00007ffff1702c39 in KoPathTool::qt_static_metacall(QObject*,
&gt; QMetaObject::Call, int, void**) (_o=0x5555612eac00,
&gt; _c=QMetaObject::InvokeMetaMethod, _id=14, _a=0x7fffffffd290) at
&gt; ./obj-x86_64-linux-gnu/libs/flake/kritaflake_autogen/
&gt; CB6E7VNMGS/moc_KoPathTool.cpp:155
&gt; #5  0x00007ffff50f28e5 in QMetaObject::activate(QObject*, int, int,
&gt; void**) ()
&gt; at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
&gt; #6  0x00007ffff77a0b87 in KisSelectedShapesProxy::
&gt; selectionContentChanged()
&gt; (this=0x55556117b9c8) at
&gt; ./obj-x86_64-linux-gnu/libs/ui/kritaui_autogen/EWIEGA46WW/
&gt; moc_KisSelectedShapesProxy.cpp:158
&gt; #7  0x00007ffff77a08e8 in KisSelectedShapesProxy::qt_
&gt; static_metacall(QObject*,
&gt; QMetaObject::Call, int, void**) (_o=0x55556117b9c8,
&gt; _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7fffffffd410)
&gt;     at
&gt; ./obj-x86_64-linux-gnu/libs/ui/kritaui_autogen/EWIEGA46WW/
&gt; moc_KisSelectedShapesProxy.cpp:82
&gt; #8  0x00007ffff50f28e5 in QMetaObject::activate(QObject*, int, int,
&gt; void**) ()
&gt; at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
&gt; #9  0x00007ffff157a7fd in KoShapeManager::selectionContentChanged()
&gt; (this=0x55555fcb7330) at
&gt; ./obj-x86_64-linux-gnu/libs/flake/kritaflake_autogen/
&gt; include/moc_KoShapeManager.cpp:180
&gt; #10 0x00007ffff1576d75 in KoShapeManager::Private::updateTree()
&gt; (this=0x55555f195ed0) at ./libs/flake/KoShapeManager.cpp:95
&gt; #11 0x00007ffff1577c41 in KoShapeManager::paint(QPainter&amp;, KoViewConverter
&gt; const&amp;, bool) (this=0x55555fcb7330, painter=..., converter=...,
&gt; forPrint=false)
&gt; at ./libs/flake/KoShapeManager.cpp:253
&gt; #12 0x00007ffff7353f16 in KisShapeLayerCanvas::repaint()
&gt; (this=0x555560cf9760)
&gt; at ./libs/ui/flake/kis_shape_layer_canvas.cpp:296
&gt; #13 0x00007ffff77accf6 in KisShapeLayerCanvas::qt_
&gt; static_metacall(QObject*,
&gt; QMetaObject::Call, int, void**) (_o=0x555560cf9760,
&gt; _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x555560d7e1f0)
&gt;     at
&gt; ./obj-x86_64-linux-gnu/libs/ui/kritaui_autogen/QUY67KCZCL/
&gt; moc_kis_shape_layer_canvas.cpp:87
&gt; #14 0x00007ffff50f3452 in QObject::event(QEvent*) () at
&gt; /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
&gt; #15 0x00007ffff5e3e46c in QApplicationPrivate::notify_helper(QObject*,
&gt; QEvent*)
&gt; () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
&gt; #16 0x00007ffff5e45d34 in QApplication::notify(QObject*, QEvent*) () at
&gt; /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
&gt; #17 0x00007ffff76aa495 in KisApplication::notify(QObject*, QEvent*)
&gt; (this=0x7fffffffddb0, receiver=0x555560cf9760, event=0x7fffd8007af0) at
&gt; ./libs/ui/KisApplication.cpp:652
&gt; #18 0x00007ffff50c3de8 in QCoreApplication::notifyInternal2(QObject*,
&gt; QEvent*)
&gt; () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
&gt; #19 0x00007ffff50c655d in QCoreApplicationPrivate::
&gt; sendPostedEvents(QObject*,
&gt; int, QThreadData*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
&gt; #20 0x00007ffff511ce53 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
&gt; #21 0x00007fffec790fb7 in g_main_context_dispatch () at
&gt; /lib/x86_64-linux-gnu/libglib-2.0.so.0
&gt; #22 0x00007fffec7911f0 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
&gt; #23 0x00007fffec79127c in g_main_context_iteration () at
&gt; /lib/x86_64-linux-gnu/libglib-2.0.so.0
&gt; #24 0x00007ffff511c47f in
&gt; QEventDispatcherGlib::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;)
&gt; ()
&gt; at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
&gt; #25 0x00007ffff50c1e3a in
&gt; QEventLoop::exec(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) () at
&gt; /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
&gt; #26 0x00007ffff50cada4 in QCoreApplication::exec() () at
&gt; /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
&gt; #27 0x0000555555849423 in main(int, char**) (argc=1, argv=0x7fffffffdf38)
&gt; at
&gt; ./krita/main.cc:361
&gt;
&gt; --
&gt; You are receiving this mail because:
&gt; You reported the bug.
&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746603</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Savolainen">antti.savo</who>
    <bug_when>2018-04-18 20:21:03 +0000</bug_when>
    <thetext>That was only the confirmation of the crash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746608</commentid>
    <comment_count>6</comment_count>
    <who name="Dmitry Kazakov">dimula73</who>
    <bug_when>2018-04-18 20:53:17 +0000</bug_when>
    <thetext>Hi, Pinky19295 and Antti!

Thank you for your information in the report. I will try to fix that. The problem seem to be not very easy though... :(

It seems like bug 393087 is also related (though a bit different)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746821</commentid>
    <comment_count>7</comment_count>
      <attachid>112125</attachid>
    <who name="">Pinky19295</who>
    <bug_when>2018-04-19 19:05:31 +0000</bug_when>
    <thetext>Created attachment 112125
attachment-23323-0.html

No problem. I&apos;ll do my best to report future bugs if I come across them.

On Wed, Apr 18, 2018 at 1:53 PM, Dmitry Kazakov &lt;bugzilla_noreply@kde.org&gt;
wrote:

&gt; https://bugs.kde.org/show_bug.cgi?id=393209
&gt;
&gt; Dmitry Kazakov &lt;dimula73@gmail.com&gt; changed:
&gt;
&gt;            What    |Removed                     |Added
&gt; ------------------------------------------------------------
&gt; ----------------
&gt;                  CC|                            |dimula73@gmail.com
&gt;
&gt; --- Comment #6 from Dmitry Kazakov &lt;dimula73@gmail.com&gt; ---
&gt; Hi, Pinky19295 and Antti!
&gt;
&gt; Thank you for your information in the report. I will try to fix that. The
&gt; problem seem to be not very easy though... :(
&gt;
&gt; It seems like bug 393087 is also related (though a bit different)
&gt;
&gt; --
&gt; You are receiving this mail because:
&gt; You reported the bug.
&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747722</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry Kazakov">dimula73</who>
    <bug_when>2018-04-24 13:12:41 +0000</bug_when>
    <thetext>Git commit 25a628eb1ae047b37045cda4bc705dfc2b0b5731 by Dmitry Kazakov.
Committed on 24/04/2018 at 13:12.
Pushed by dkazakov into branch &apos;master&apos;.

Fix crashes on undo/redo of vector path points operations

1) KoPathToolSelection keeps pointers to the shapes and its path points,
   therefore it should subscribe to the updates on the shapes and their
   points (using ShapeChangeListener framework).

2) The patch also fixes a lot of bugs in &quot;Join by segment&quot; and
   &quot;Merge points&quot;, which should behave correctly now.

3) The patch also partially implements &quot;keep path point selection&quot;
   idea, which selects newly created point after each operation. The
   stuff is achieved using KoPathShape::PointSelectionChangeListener
   listener.
Related: bug 393087

M  +1    -0    libs/flake/CMakeLists.txt
M  +70   -2    libs/flake/KoPathShape.cpp
M  +12   -0    libs/flake/KoPathShape.h
M  +2    -0    libs/flake/KoPathShape_p.h
M  +5    -11   libs/flake/commands/KoMultiPathPointMergeCommand.cpp
M  +9    -0    libs/flake/commands/KoPathBreakAtPointCommand.cpp
A  +70   -0    libs/flake/commands/KoPathMergeUtils.cpp     [License: GPL (v2+)]
A  +37   -0    libs/flake/commands/KoPathMergeUtils.h     [License: GPL (v2+)]
M  +13   -1    libs/flake/commands/KoPathPointInsertCommand.cpp
M  +98   -120  libs/flake/commands/KoPathPointMergeCommand.cpp
M  +11   -0    libs/flake/commands/KoPathPointRemoveCommand.cpp
M  +63   -39   libs/flake/commands/KoSubpathJoinCommand.cpp
M  +10   -3    libs/flake/commands/KoSubpathJoinCommand.h
M  +15   -2    libs/flake/tools/KoPathTool.cpp
M  +3    -0    libs/flake/tools/KoPathTool.h
M  +62   -0    libs/flake/tools/KoPathToolSelection.cpp
M  +6    -1    libs/flake/tools/KoPathToolSelection.h
M  +4    -0    plugins/flake/pathshapes/ellipse/EllipseShape.cpp
M  +2    -0    plugins/flake/pathshapes/enhancedpath/EnhancedPathShape.cpp
M  +4    -0    plugins/flake/pathshapes/rectangle/RectangleShape.cpp
M  +2    -0    plugins/flake/pathshapes/spiral/SpiralShape.cpp
M  +2    -0    plugins/flake/pathshapes/star/StarShape.cpp

https://commits.kde.org/krita/25a628eb1ae047b37045cda4bc705dfc2b0b5731</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749569</commentid>
    <comment_count>9</comment_count>
    <who name="Halla Rempt">halla</who>
    <bug_when>2018-05-02 12:00:17 +0000</bug_when>
    <thetext>Git commit ba377491cdd4bc825de07035f7ed2e0a05545c84 by Boudewijn Rempt, on behalf of Dmitry Kazakov.
Committed on 02/05/2018 at 11:54.
Pushed by rempt into branch &apos;krita/4.0&apos;.

Fix crashes on undo/redo of vector path points operations

1) KoPathToolSelection keeps pointers to the shapes and its path points,
   therefore it should subscribe to the updates on the shapes and their
   points (using ShapeChangeListener framework).

2) The patch also fixes a lot of bugs in &quot;Join by segment&quot; and
   &quot;Merge points&quot;, which should behave correctly now.

3) The patch also partially implements &quot;keep path point selection&quot;
   idea, which selects newly created point after each operation. The
   stuff is achieved using KoPathShape::PointSelectionChangeListener
   listener.
Related: bug 393087
(cherry picked from commit f919e7f2dbed028e8fdae89b58ed6f5af26760db)

M  +1    -0    libs/flake/CMakeLists.txt
M  +70   -2    libs/flake/KoPathShape.cpp
M  +12   -0    libs/flake/KoPathShape.h
M  +2    -0    libs/flake/KoPathShape_p.h
M  +5    -11   libs/flake/commands/KoMultiPathPointMergeCommand.cpp
M  +9    -0    libs/flake/commands/KoPathBreakAtPointCommand.cpp
A  +70   -0    libs/flake/commands/KoPathMergeUtils.cpp     [License: GPL (v2+)]
A  +37   -0    libs/flake/commands/KoPathMergeUtils.h     [License: GPL (v2+)]
M  +13   -1    libs/flake/commands/KoPathPointInsertCommand.cpp
M  +98   -120  libs/flake/commands/KoPathPointMergeCommand.cpp
M  +11   -0    libs/flake/commands/KoPathPointRemoveCommand.cpp
M  +63   -39   libs/flake/commands/KoSubpathJoinCommand.cpp
M  +10   -3    libs/flake/commands/KoSubpathJoinCommand.h
M  +15   -2    libs/flake/tools/KoPathTool.cpp
M  +3    -0    libs/flake/tools/KoPathTool.h
M  +62   -0    libs/flake/tools/KoPathToolSelection.cpp
M  +6    -1    libs/flake/tools/KoPathToolSelection.h
M  +4    -0    plugins/flake/pathshapes/ellipse/EllipseShape.cpp
M  +2    -0    plugins/flake/pathshapes/enhancedpath/EnhancedPathShape.cpp
M  +4    -0    plugins/flake/pathshapes/rectangle/RectangleShape.cpp
M  +2    -0    plugins/flake/pathshapes/spiral/SpiralShape.cpp
M  +2    -0    plugins/flake/pathshapes/star/StarShape.cpp

https://commits.kde.org/krita/ba377491cdd4bc825de07035f7ed2e0a05545c84</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>112089</attachid>
            <date>2018-04-18 00:19:20 +0000</date>
            <delta_ts>2018-04-18 00:19:20 +0000</delta_ts>
            <desc>attachment-5758-0.html</desc>
            <filename>attachment-5758-0.html</filename>
            <type>text/html</type>
            <size>2158</size>
            <attacher>Pinky19295</attacher>
            
              <data encoding="base64">PGRpdiBkaXI9Imx0ciI+Rmlyc3QgSSBvcGVuZWQgdGhlIFZlY3RvciBMYXllciwgdGhlbiBJIGRy
ZXcgYSBzaGFwZSB3aXRoIHRoZSBMaW5lIFRvb2wsIHRoZW4gSSB0cmllZCBzaGFwaW5nIGl0IHdp
dGggdGhlIFNoYXBlIFRvb2wgKG9idmlvdXNseSksIGFuZCB3aGVuIEkgYWNjaWRlbnRhbGx5IGNs
aWNrZWQgb24gaXQgdHdpY2UsIGl0IG1hZGUgYSBzcXVhcmUgbm9kZSwgYnV0IHdoZW4gSSB0cmll
ZCB0byBkbyB1bmRvIGl0IGl0IGNyYXNoZWQgdGhlIGVudGlyZSBwcm9ncmFtLjxkaXY+PGJyPjwv
ZGl2PjxkaXY+SSBrbm93IHRoYXQgeW91IGNhbiYjMzk7dCB1bmRvIHRoZSBub2RlLCBidXQgSSBk
b24mIzM5O3QgdGhpbmsgaXQgc2hvdWxkIGNyYXNoIHRoZSBlbnRpcmUgcHJvZ3JhbSB3aGVuIHRy
eWluZyB0byB1bmRvIGl0LsKgPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5BbmQgaWYgaXQgaGVs
cHM6IEkgdHJpZWQgaXQgb24gYSBkaWZmZXJlbnQgY29tcHV0ZXIgYW5kIGl0IHN0aWxsIGRpZCBp
dC4gQm90aCBvZiB0aGVtIGFyZSBXaW5kb3dzIDguPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5J
JiMzOTttIGFsc28gdXNpbmcgdGhlIG5ld2VzdCB2ZXJzaW9uIG9mIEtyaXRhIDQuMC4xPC9kaXY+
PC9kaXY+PGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90
ZSI+T24gVHVlLCBBcHIgMTcsIDIwMTggYXQgODo0NSBBTSwgU2NvdHQgUGV0cm92aWMgPHNwYW4g
ZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86YnVnemlsbGFfbm9yZXBseUBrZGUub3JnIiB0
YXJnZXQ9Il9ibGFuayI+YnVnemlsbGFfbm9yZXBseUBrZGUub3JnPC9hPiZndDs8L3NwYW4+IHdy
b3RlOjxicj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MCAw
IDAgLjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij48YSBo
cmVmPSJodHRwczovL2J1Z3Mua2RlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkzMjA5IiByZWw9Im5v
cmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2J1Z3Mua2RlLm9yZy9zaG93X2J1Zy48
d2JyPmNnaT9pZD0zOTMyMDk8L2E+PGJyPg0KPGJyPg0KU2NvdHQgUGV0cm92aWMgJmx0OzxhIGhy
ZWY9Im1haWx0bzpzY290dHBldHJvdmljQGdtYWlsLmNvbSI+c2NvdHRwZXRyb3ZpY0BnbWFpbC5j
b208L2E+Jmd0OyBjaGFuZ2VkOjxicj4NCjxicj4NCsKgIMKgIMKgIMKgIMKgIMKgV2hhdMKgIMKg
IHxSZW1vdmVkwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8QWRkZWQ8YnI+DQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08d2JyPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLTx3YnI+LS0tLS0tLS0tLS0tLS0tLTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
Q0N8wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfDxhIGhyZWY9Im1h
aWx0bzpzY290dHBldHJvdmljQGdtYWlsLmNvbSI+c2NvdHRwZXRyb3ZpY0BnbWFpbC5jb208L2E+
PGJyPg0KwqAgwqAgwqAgwqAgwqBSZXNvbHV0aW9ufC0tLcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgfFdBSVRJTkdGT1JJTkZPPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqBT
dGF0dXN8VU5DT05GSVJNRUTCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHxORUVEU0lORk88YnI+
DQo8YnI+DQotLS0gQ29tbWVudCAjMSBmcm9tIFNjb3R0IFBldHJvdmljICZsdDs8YSBocmVmPSJt
YWlsdG86c2NvdHRwZXRyb3ZpY0BnbWFpbC5jb20iPnNjb3R0cGV0cm92aWNAZ21haWwuY29tPC9h
PiZndDsgLS0tPGJyPg0KQ2FuIHlvdSBnaXZlIGV4YWN0IHN0ZXBzIHRvIG1ha2UgdGhpcyBoYXBw
ZW4/IEkgdHJpZWQgcGxheWluZyBhcm91bmQgd2l0aDxicj4NCmVkaXRpbmcgdmVjdG9yIHBvaW50
cywgdGhlbiB1bmRvaW5nLCBhbmQgSSBhbSBub3QgZ2V0dGluZyBhbnkgY3Jhc2hlcy48YnI+DQo8
c3BhbiBjbGFzcz0iSE9FblpiIj48Zm9udCBjb2xvcj0iIzg4ODg4OCI+PGJyPg0KLS0gPGJyPg0K
WW91IGFyZSByZWNlaXZpbmcgdGhpcyBtYWlsIGJlY2F1c2U6PGJyPg0KWW91IHJlcG9ydGVkIHRo
ZSBidWcuPC9mb250Pjwvc3Bhbj48L2Jsb2NrcXVvdGU+PC9kaXY+PGJyPjwvZGl2Pg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>112101</attachid>
            <date>2018-04-18 14:46:53 +0000</date>
            <delta_ts>2018-04-18 14:46:53 +0000</delta_ts>
            <desc>attachment-29835-0.html</desc>
            <filename>attachment-29835-0.html</filename>
            <type>text/html</type>
            <size>6786</size>
            <attacher>Pinky19295</attacher>
            
              <data encoding="base64">PGRpdiBkaXI9Imx0ciI+VW5kb2luZyB0aGUgbm9kZSBzdGlsbCBjcmFzaGVzIHRoZSBwcm9ncmFt
LjwvZGl2PjxkaXYgY2xhc3M9ImdtYWlsX2V4dHJhIj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVv
dGUiPk9uIFR1ZSwgQXByIDE3LCAyMDE4IGF0IDg6MDMgUE0sIEFudHRpIFNhdm9sYWluZW4gPHNw
YW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86YnVnemlsbGFfbm9yZXBseUBrZGUub3Jn
IiB0YXJnZXQ9Il9ibGFuayI+YnVnemlsbGFfbm9yZXBseUBrZGUub3JnPC9hPiZndDs8L3NwYW4+
IHdyb3RlOjxicj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46
MCAwIDAgLjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij48
YSBocmVmPSJodHRwczovL2J1Z3Mua2RlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkzMjA5IiByZWw9
Im5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2J1Z3Mua2RlLm9yZy9zaG93X2J1
Zy48d2JyPmNnaT9pZD0zOTMyMDk8L2E+PGJyPg0KPGJyPg0KQW50dGkgU2F2b2xhaW5lbiAmbHQ7
PGEgaHJlZj0ibWFpbHRvOmFudHRpLnNhdm9AZ21haWwuY29tIj5hbnR0aS5zYXZvQGdtYWlsLmNv
bTwvYT4mZ3Q7IGNoYW5nZWQ6PGJyPg0KPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqBXaGF0wqAgwqAg
fFJlbW92ZWTCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHxBZGRlZDxicj4NCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTx3YnI+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tPHdicj4tLS0tLS0tLS0tLS0tLS0tPGJyPg0KwqAgwqAgwqAgwqAgwqBSZXNvbHV0aW9ufFdB
SVRJTkdGT1JJTkZPwqAgwqAgwqAgwqAgwqAgwqAgwqAgfC0tLTxicj4NCsKgIMKgIMKgIMKgIMKg
IMKgIMKgU3RhdHVzfE5FRURTSU5GT8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfENPTkZJ
Uk1FRDxicj4NCsKgIMKgIMKgRXZlciBjb25maXJtZWR8MMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgfDE8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoE9TfE1T
IFdpbmRvd3PCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8QWxsPGJyPg0KwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqBDQ3zCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCB8PGEgaHJlZj0ibWFpbHRvOmFudHRpLnNhdm9AZ21haWwuY29tIj5hbnR0aS5zYXZvQGdtYWls
LmNvbTwvYT48YnI+DQrCoCDCoCDCoCDCoCDCoCDCoFBsYXRmb3JtfE1TIFdpbmRvd3PCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCB8dW5zcGVjaWZpZWQ8YnI+DQo8YnI+DQotLS0gQ29tbWVudCAj
MyBmcm9tIEFudHRpIFNhdm9sYWluZW4gJmx0OzxhIGhyZWY9Im1haWx0bzphbnR0aS5zYXZvQGdt
YWlsLmNvbSI+YW50dGkuc2F2b0BnbWFpbC5jb208L2E+Jmd0OyAtLS08YnI+DQpUaGVyZSB3ZSBn
bywgZm91bmQgYSB3YXkgdG8gcmVwcm9kdWNlIG9uIExpbnV4IGFmdGVyIHRoZSBtb3JlIGRldGFp
bGVkPGJyPg0KaW5zdHJ1Y3Rpb25zLiA8YSBocmVmPSJodHRwczovL3dlYm1zaGFyZS5jb20vNmpE
RUIiIHJlbD0ibm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vd2VibXNoYXJlLmNv
bS82akRFQjwvYT48YnI+DQo8YnI+DQpPcGVuIHZlY3RvciBsYXllcjxicj4NCkRyYXcgYSBsaW5l
IHdpdGggdGhlIExpbmUgVG9vbDxicj4NCkRvdWJsZSBjbGljayB0aGUgRWRpdCBTaGFwZXMgVG9v
bCBzbyB0aGF0IGEgbmV3IG5vZGUgYXBwZWFyczxicj4NClVuZG8gdGhlIG5vZGUuPGJyPg0KPGJy
Pg0KSW5mb3JtYXRpbzo8YnI+DQrCoCDCoCBYdWJ1bnR1IDE3LjEwPGJyPg0KwqAgwqAga3JpdGEg
NC4xLjAtcHJlLWFscGhhwqAgwqA8YnI+DQo8YnI+DQooZ2RiKSBidDxicj4NCiMwwqAgMHgwMDAw
N2ZmZmYxNTNlZWVlIGluIEtvUGF0aFNoYXBlOjpkX2Z1bmMoKSBjb25zdCAodGhpcz0weDApIGF0
PGJyPg0KLi9saWJzL2ZsYWtlL0tvUGF0aFNoYXBlLmg6NTA1PGJyPg0KIzHCoCAweDAwMDA3ZmZm
ZjE1Mzk5NTEgaW4gS29QYXRoU2hhcGU6OnBhdGhQb2ludEluZGV4KDx3YnI+S29QYXRoUG9pbnQg
Y29uc3QqKSBjb25zdDxicj4NCih0aGlzPTB4MCwgcG9pbnQ9MHg1NTU1NWZiZTA2NjApIGF0IC4v
bGlicy9mbGFrZS9Lb1BhdGhTaGFwZS5jcHA6PHdicj44OTE8YnI+DQojMsKgIDB4MDAwMDdmZmZm
MTY0YjA1ZSBpbiBLb1BhdGhUb29sU2VsZWN0aW9uOjo8d2JyPnNlbGVjdGVkUG9pbnRzRGF0YSgp
IGNvbnN0PGJyPg0KKHRoaXM9MHg1NTU1NjEyZWFjMTgpIGF0IC4vbGlicy9mbGFrZS90b29scy88
d2JyPktvUGF0aFRvb2xTZWxlY3Rpb24uY3BwOjE1MTxicj4NCiMzwqAgMHgwMDAwN2ZmZmYxNjQ3
ZDMzIGluIEtvUGF0aFRvb2w6OnVwZGF0ZUFjdGlvbnMoKSAodGhpcz0weDU1NTU2MTJlYWMwMCkg
YXQ8YnI+DQouL2xpYnMvZmxha2UvdG9vbHMvS29QYXRoVG9vbC48d2JyPmNwcDoxMDQ4PGJyPg0K
IzTCoCAweDAwMDA3ZmZmZjE3MDJjMzkgaW4gS29QYXRoVG9vbDo6cXRfc3RhdGljXzx3YnI+bWV0
YWNhbGwoUU9iamVjdCosPGJyPg0KUU1ldGFPYmplY3Q6OkNhbGwsIGludCwgdm9pZCoqKSAoX289
MHg1NTU1NjEyZWFjMDAsPGJyPg0KX2M9UU1ldGFPYmplY3Q6Ojx3YnI+SW52b2tlTWV0YU1ldGhv
ZCwgX2lkPTE0LCBfYT0weDdmZmZmZmZmZDI5MCkgYXQ8YnI+DQouL29iai14ODZfNjQtbGludXgt
Z251L2xpYnMvPHdicj5mbGFrZS9rcml0YWZsYWtlX2F1dG9nZW4vPHdicj5DQjZFN1ZOTUdTL21v
Y19Lb1BhdGhUb29sLmNwcDo8d2JyPjE1NTxicj4NCiM1wqAgMHgwMDAwN2ZmZmY1MGYyOGU1IGlu
IFFNZXRhT2JqZWN0OjphY3RpdmF0ZShRT2JqZWN0Kjx3YnI+LCBpbnQsIGludCwgdm9pZCoqKSAo
KTxicj4NCmF0IC91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvPHdicj5saWJRdDVDb3JlLnNvLjU8
YnI+DQojNsKgIDB4MDAwMDdmZmZmNzdhMGI4NyBpbiBLaXNTZWxlY3RlZFNoYXBlc1Byb3h5Ojo8
d2JyPnNlbGVjdGlvbkNvbnRlbnRDaGFuZ2VkKCk8YnI+DQoodGhpcz0weDU1NTU2MTE3YjljOCkg
YXQ8YnI+DQouL29iai14ODZfNjQtbGludXgtZ251L2xpYnMvPHdicj51aS9rcml0YXVpX2F1dG9n
ZW4vRVdJRUdBNDZXVy88d2JyPm1vY19LaXNTZWxlY3RlZFNoYXBlc1Byb3h5Ljx3YnI+Y3BwOjE1
ODxicj4NCiM3wqAgMHgwMDAwN2ZmZmY3N2EwOGU4IGluIEtpc1NlbGVjdGVkU2hhcGVzUHJveHk6
OnF0Xzx3YnI+c3RhdGljX21ldGFjYWxsKFFPYmplY3QqLDxicj4NClFNZXRhT2JqZWN0OjpDYWxs
LCBpbnQsIHZvaWQqKikgKF9vPTB4NTU1NTYxMTdiOWM4LDxicj4NCl9jPVFNZXRhT2JqZWN0Ojo8
d2JyPkludm9rZU1ldGFNZXRob2QsIF9pZD0xLCBfYT0weDdmZmZmZmZmZDQxMCk8YnI+DQrCoCDC
oCBhdDxicj4NCi4vb2JqLXg4Nl82NC1saW51eC1nbnUvbGlicy88d2JyPnVpL2tyaXRhdWlfYXV0
b2dlbi9FV0lFR0E0NldXLzx3YnI+bW9jX0tpc1NlbGVjdGVkU2hhcGVzUHJveHkuPHdicj5jcHA6
ODI8YnI+DQojOMKgIDB4MDAwMDdmZmZmNTBmMjhlNSBpbiBRTWV0YU9iamVjdDo6YWN0aXZhdGUo
UU9iamVjdCo8d2JyPiwgaW50LCBpbnQsIHZvaWQqKikgKCk8YnI+DQphdCAvdXNyL2xpYi94ODZf
NjQtbGludXgtZ251Lzx3YnI+bGliUXQ1Q29yZS5zby41PGJyPg0KIznCoCAweDAwMDA3ZmZmZjE1
N2E3ZmQgaW4gS29TaGFwZU1hbmFnZXI6Ojx3YnI+c2VsZWN0aW9uQ29udGVudENoYW5nZWQoKTxi
cj4NCih0aGlzPTB4NTU1NTVmY2I3MzMwKSBhdDxicj4NCi4vb2JqLXg4Nl82NC1saW51eC1nbnUv
bGlicy88d2JyPmZsYWtlL2tyaXRhZmxha2VfYXV0b2dlbi88d2JyPmluY2x1ZGUvbW9jX0tvU2hh
cGVNYW5hZ2VyLjx3YnI+Y3BwOjE4MDxicj4NCiMxMCAweDAwMDA3ZmZmZjE1NzZkNzUgaW4gS29T
aGFwZU1hbmFnZXI6OlByaXZhdGU6Ojx3YnI+dXBkYXRlVHJlZSgpPGJyPg0KKHRoaXM9MHg1NTU1
NWYxOTVlZDApIGF0IC4vbGlicy9mbGFrZS9Lb1NoYXBlTWFuYWdlci48d2JyPmNwcDo5NTxicj4N
CiMxMSAweDAwMDA3ZmZmZjE1NzdjNDEgaW4gS29TaGFwZU1hbmFnZXI6OnBhaW50KDx3YnI+UVBh
aW50ZXImYW1wOywgS29WaWV3Q29udmVydGVyPGJyPg0KY29uc3QmYW1wOywgYm9vbCkgKHRoaXM9
MHg1NTU1NWZjYjczMzAsIHBhaW50ZXI9Li4uLCBjb252ZXJ0ZXI9Li4uLCBmb3JQcmludD1mYWxz
ZSk8YnI+DQphdCAuL2xpYnMvZmxha2UvS29TaGFwZU1hbmFnZXIuPHdicj5jcHA6MjUzPGJyPg0K
IzEyIDB4MDAwMDdmZmZmNzM1M2YxNiBpbiBLaXNTaGFwZUxheWVyQ2FudmFzOjpyZXBhaW50KCkg
KHRoaXM9MHg1NTU1NjBjZjk3NjApPGJyPg0KYXQgLi9saWJzL3VpL2ZsYWtlL2tpc19zaGFwZV88
d2JyPmxheWVyX2NhbnZhcy5jcHA6Mjk2PGJyPg0KIzEzIDB4MDAwMDdmZmZmNzdhY2NmNiBpbiBL
aXNTaGFwZUxheWVyQ2FudmFzOjpxdF88d2JyPnN0YXRpY19tZXRhY2FsbChRT2JqZWN0Kiw8YnI+
DQpRTWV0YU9iamVjdDo6Q2FsbCwgaW50LCB2b2lkKiopIChfbz0weDU1NTU2MGNmOTc2MCw8YnI+
DQpfYz1RTWV0YU9iamVjdDo6PHdicj5JbnZva2VNZXRhTWV0aG9kLCBfaWQ9MSwgX2E9MHg1NTU1
NjBkN2UxZjApPGJyPg0KwqAgwqAgYXQ8YnI+DQouL29iai14ODZfNjQtbGludXgtZ251L2xpYnMv
PHdicj51aS9rcml0YXVpX2F1dG9nZW4vUVVZNjdLQ1pDTC88d2JyPm1vY19raXNfc2hhcGVfbGF5
ZXJfY2FudmFzLjx3YnI+Y3BwOjg3PGJyPg0KIzE0IDB4MDAwMDdmZmZmNTBmMzQ1MiBpbiBRT2Jq
ZWN0OjpldmVudChRRXZlbnQqKSAoKSBhdDxicj4NCi91c3IvbGliL3g4Nl82NC1saW51eC1nbnUv
PHdicj5saWJRdDVDb3JlLnNvLjU8YnI+DQojMTUgMHgwMDAwN2ZmZmY1ZTNlNDZjIGluIFFBcHBs
aWNhdGlvblByaXZhdGU6Om5vdGlmeV88d2JyPmhlbHBlcihRT2JqZWN0KiwgUUV2ZW50Kik8YnI+
DQooKSBhdCAvdXNyL2xpYi94ODZfNjQtbGludXgtZ251Lzx3YnI+bGliUXQ1V2lkZ2V0cy5zby41
PGJyPg0KIzE2IDB4MDAwMDdmZmZmNWU0NWQzNCBpbiBRQXBwbGljYXRpb246Om5vdGlmeShRT2Jq
ZWN0KiwgUUV2ZW50KikgKCkgYXQ8YnI+DQovdXNyL2xpYi94ODZfNjQtbGludXgtZ251Lzx3YnI+
bGliUXQ1V2lkZ2V0cy5zby41PGJyPg0KIzE3IDB4MDAwMDdmZmZmNzZhYTQ5NSBpbiBLaXNBcHBs
aWNhdGlvbjo6bm90aWZ5KDx3YnI+UU9iamVjdCosIFFFdmVudCopPGJyPg0KKHRoaXM9MHg3ZmZm
ZmZmZmRkYjAsIHJlY2VpdmVyPTB4NTU1NTYwY2Y5NzYwLCBldmVudD0weDdmZmZkODAwN2FmMCkg
YXQ8YnI+DQouL2xpYnMvdWkvS2lzQXBwbGljYXRpb24uY3BwOjx3YnI+NjUyPGJyPg0KIzE4IDB4
MDAwMDdmZmZmNTBjM2RlOCBpbiBRQ29yZUFwcGxpY2F0aW9uOjo8d2JyPm5vdGlmeUludGVybmFs
MihRT2JqZWN0KiwgUUV2ZW50Kik8YnI+DQooKSBhdCAvdXNyL2xpYi94ODZfNjQtbGludXgtZ251
Lzx3YnI+bGliUXQ1Q29yZS5zby41PGJyPg0KIzE5IDB4MDAwMDdmZmZmNTBjNjU1ZCBpbiBRQ29y
ZUFwcGxpY2F0aW9uUHJpdmF0ZTo6PHdicj5zZW5kUG9zdGVkRXZlbnRzKFFPYmplY3QqLDxicj4N
CmludCwgUVRocmVhZERhdGEqKSAoKSBhdCAvdXNyL2xpYi94ODZfNjQtbGludXgtZ251Lzx3YnI+
bGliUXQ1Q29yZS5zby41PGJyPg0KIzIwIDB4MDAwMDdmZmZmNTExY2U1MyBpbsKgICgpIGF0IC91
c3IvbGliL3g4Nl82NC1saW51eC1nbnUvPHdicj5saWJRdDVDb3JlLnNvLjU8YnI+DQojMjEgMHgw
MDAwN2ZmZmVjNzkwZmI3IGluIGdfbWFpbl9jb250ZXh0X2Rpc3BhdGNoICgpIGF0PGJyPg0KL2xp
Yi94ODZfNjQtbGludXgtZ251L2xpYmdsaWItPHdicj4yLjAuc28uMDxicj4NCiMyMiAweDAwMDA3
ZmZmZWM3OTExZjAgaW7CoCAoKSBhdCAvbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi08d2Jy
PjIuMC5zby4wPGJyPg0KIzIzIDB4MDAwMDdmZmZlYzc5MTI3YyBpbiBnX21haW5fY29udGV4dF9p
dGVyYXRpb24gKCkgYXQ8YnI+DQovbGliL3g4Nl82NC1saW51eC1nbnUvbGliZ2xpYi08d2JyPjIu
MC5zby4wPGJyPg0KIzI0IDB4MDAwMDdmZmZmNTExYzQ3ZiBpbjxicj4NClFFdmVudERpc3BhdGNo
ZXJHbGliOjo8d2JyPnByb2Nlc3NFdmVudHMoUUZsYWdzJmx0Ozx3YnI+UUV2ZW50TG9vcDo6UHJv
Y2Vzc0V2ZW50c0ZsYWcmZ3Q7PHdicj4pICgpPGJyPg0KYXQgL3Vzci9saWIveDg2XzY0LWxpbnV4
LWdudS88d2JyPmxpYlF0NUNvcmUuc28uNTxicj4NCiMyNSAweDAwMDA3ZmZmZjUwYzFlM2EgaW48
YnI+DQpRRXZlbnRMb29wOjpleGVjKFFGbGFncyZsdDs8d2JyPlFFdmVudExvb3A6OlByb2Nlc3NF
dmVudHNGbGFnJmd0Ozx3YnI+KSAoKSBhdDxicj4NCi91c3IvbGliL3g4Nl82NC1saW51eC1nbnUv
PHdicj5saWJRdDVDb3JlLnNvLjU8YnI+DQojMjYgMHgwMDAwN2ZmZmY1MGNhZGE0IGluIFFDb3Jl
QXBwbGljYXRpb246OmV4ZWMoKSAoKSBhdDxicj4NCi91c3IvbGliL3g4Nl82NC1saW51eC1nbnUv
PHdicj5saWJRdDVDb3JlLnNvLjU8YnI+DQojMjcgMHgwMDAwNTU1NTU1ODQ5NDIzIGluIG1haW4o
aW50LCBjaGFyKiopIChhcmdjPTEsIGFyZ3Y9MHg3ZmZmZmZmZmRmMzgpIGF0PGJyPg0KLi9rcml0
YS9tYWluLmNjOjM2MTxicj4NCjxkaXYgY2xhc3M9IkhPRW5aYiI+PGRpdiBjbGFzcz0iaDUiPjxi
cj4NCi0tIDxicj4NCllvdSBhcmUgcmVjZWl2aW5nIHRoaXMgbWFpbCBiZWNhdXNlOjxicj4NCllv
dSByZXBvcnRlZCB0aGUgYnVnLjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48YnI+PC9k
aXY+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>112125</attachid>
            <date>2018-04-19 19:05:35 +0000</date>
            <delta_ts>2018-04-19 19:05:35 +0000</delta_ts>
            <desc>attachment-23323-0.html</desc>
            <filename>attachment-23323-0.html</filename>
            <type>text/html</type>
            <size>1505</size>
            <attacher>Pinky19295</attacher>
            
              <data encoding="base64">PGRpdiBkaXI9Imx0ciI+Tm8gcHJvYmxlbS4gSSYjMzk7bGwgZG8gbXkgYmVzdCB0byByZXBvcnQg
ZnV0dXJlIGJ1Z3MgaWYgSSBjb21lIGFjcm9zcyB0aGVtLjwvZGl2PjxkaXYgY2xhc3M9ImdtYWls
X2V4dHJhIj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFdlZCwgQXByIDE4LCAyMDE4
IGF0IDE6NTMgUE0sIERtaXRyeSBLYXpha292IDxzcGFuIGRpcj0ibHRyIj4mbHQ7PGEgaHJlZj0i
bWFpbHRvOmJ1Z3ppbGxhX25vcmVwbHlAa2RlLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPmJ1Z3ppbGxh
X25vcmVwbHlAa2RlLm9yZzwvYT4mZ3Q7PC9zcGFuPiB3cm90ZTo8YnI+PGJsb2NrcXVvdGUgY2xh
c3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7Ym9yZGVyLWxlZnQ6MXB4
ICNjY2Mgc29saWQ7cGFkZGluZy1sZWZ0OjFleCI+PGEgaHJlZj0iaHR0cHM6Ly9idWdzLmtkZS5v
cmcvc2hvd19idWcuY2dpP2lkPTM5MzIwOSIgcmVsPSJub3JlZmVycmVyIiB0YXJnZXQ9Il9ibGFu
ayI+aHR0cHM6Ly9idWdzLmtkZS5vcmcvc2hvd19idWcuPHdicj5jZ2k/aWQ9MzkzMjA5PC9hPjxi
cj4NCjxicj4NCkRtaXRyeSBLYXpha292ICZsdDs8YSBocmVmPSJtYWlsdG86ZGltdWxhNzNAZ21h
aWwuY29tIj5kaW11bGE3M0BnbWFpbC5jb208L2E+Jmd0OyBjaGFuZ2VkOjxicj4NCjxicj4NCsKg
IMKgIMKgIMKgIMKgIMKgV2hhdMKgIMKgIHxSZW1vdmVkwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqB8QWRkZWQ8YnI+DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08d2JyPi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTx3YnI+LS0tLS0tLS0tLS0tLS0tLTxicj4NCsKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgQ0N8wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgfDxhIGhyZWY9Im1haWx0bzpkaW11bGE3M0BnbWFpbC5jb20iPmRpbXVsYTcz
QGdtYWlsLmNvbTwvYT48YnI+DQo8YnI+DQotLS0gQ29tbWVudCAjNiBmcm9tIERtaXRyeSBLYXph
a292ICZsdDs8YSBocmVmPSJtYWlsdG86ZGltdWxhNzNAZ21haWwuY29tIj5kaW11bGE3M0BnbWFp
bC5jb208L2E+Jmd0OyAtLS08YnI+DQpIaSwgUGlua3kxOTI5NSBhbmQgQW50dGkhPGJyPg0KPGJy
Pg0KVGhhbmsgeW91IGZvciB5b3VyIGluZm9ybWF0aW9uIGluIHRoZSByZXBvcnQuIEkgd2lsbCB0
cnkgdG8gZml4IHRoYXQuIFRoZTxicj4NCnByb2JsZW0gc2VlbSB0byBiZSBub3QgdmVyeSBlYXN5
IHRob3VnaC4uLiA6KDxicj4NCjxicj4NCkl0IHNlZW1zIGxpa2UgYnVnIDM5MzA4NyBpcyBhbHNv
IHJlbGF0ZWQgKHRob3VnaCBhIGJpdCBkaWZmZXJlbnQpPGJyPg0KPGRpdiBjbGFzcz0iSE9Fblpi
Ij48ZGl2IGNsYXNzPSJoNSI+PGJyPg0KLS0gPGJyPg0KWW91IGFyZSByZWNlaXZpbmcgdGhpcyBt
YWlsIGJlY2F1c2U6PGJyPg0KWW91IHJlcG9ydGVkIHRoZSBidWcuPC9kaXY+PC9kaXY+PC9ibG9j
a3F1b3RlPjwvZGl2Pjxicj48L2Rpdj4=
</data>

          </attachment>
      

    </bug>

</bugzilla>