From 33611ebbd99217ef90f1178eed37e30385c121de Mon Sep 17 00:00:00 2001
From: Robert Roebling <robert@roebling.de>
Date: Mon, 11 Jun 2001 20:03:00 +0000
Subject: [PATCH]   Applied wxImage::Scale() patch,   Added testing code for
 wxSplitterWindow bug.   Added testing code for OnEraseBackground things.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10542 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 samples/configure             |   2 +
 samples/configure.in          |   1 +
 samples/erase/Erase.icc       |  17 +++
 samples/erase/EraseVC.dsp     | 175 +++++++++++++++++++++++++++++++
 samples/erase/EraseVC.dsw     |  29 +++++
 samples/erase/Makefile.in     |  21 ++++
 samples/erase/descrip.mms     |  47 +++++++++
 samples/erase/erase.cpp       | 192 ++++++++++++++++++++++++++++++++++
 samples/erase/erase.rc        |   6 ++
 samples/erase/erase.rc0       |   6 ++
 samples/erase/erase.rc4       |   6 ++
 samples/erase/make_cw.mcp     | Bin 0 -> 133038 bytes
 samples/erase/makefile.b32    |  16 +++
 samples/erase/makefile.bcc    |  19 ++++
 samples/erase/makefile.dos    |  17 +++
 samples/erase/makefile.g95    |  16 +++
 samples/erase/makefile.sc     |  36 +++++++
 samples/erase/makefile.sl     |  18 ++++
 samples/erase/makefile.twn    |  43 ++++++++
 samples/erase/makefile.unx    |  35 +++++++
 samples/erase/makefile.va     |  44 ++++++++
 samples/erase/makefile.vc     |  24 +++++
 samples/erase/makefile.wat    |  15 +++
 samples/erase/makemac.mcp     | Bin 0 -> 162200 bytes
 samples/erase/makemac6.mcp    | Bin 0 -> 177358 bytes
 samples/erase/minimal.def     |   7 ++
 samples/erase/mondrian.ico    | Bin 0 -> 766 bytes
 samples/erase/mondrian.xpm    |  44 ++++++++
 samples/erase/mondros2.ico    | Bin 0 -> 996 bytes
 samples/splitter/splitter.cpp |  15 +--
 src/common/image.cpp          |   8 +-
 src/gtk/win_gtk.c             |   5 +
 src/gtk/window.cpp            |  61 +++++++++--
 src/gtk1/win_gtk.c            |   5 +
 src/gtk1/window.cpp           |  61 +++++++++--
 35 files changed, 960 insertions(+), 31 deletions(-)
 create mode 100644 samples/erase/Erase.icc
 create mode 100644 samples/erase/EraseVC.dsp
 create mode 100644 samples/erase/EraseVC.dsw
 create mode 100644 samples/erase/Makefile.in
 create mode 100644 samples/erase/descrip.mms
 create mode 100644 samples/erase/erase.cpp
 create mode 100644 samples/erase/erase.rc
 create mode 100644 samples/erase/erase.rc0
 create mode 100644 samples/erase/erase.rc4
 create mode 100644 samples/erase/make_cw.mcp
 create mode 100644 samples/erase/makefile.b32
 create mode 100644 samples/erase/makefile.bcc
 create mode 100644 samples/erase/makefile.dos
 create mode 100644 samples/erase/makefile.g95
 create mode 100644 samples/erase/makefile.sc
 create mode 100644 samples/erase/makefile.sl
 create mode 100644 samples/erase/makefile.twn
 create mode 100644 samples/erase/makefile.unx
 create mode 100644 samples/erase/makefile.va
 create mode 100644 samples/erase/makefile.vc
 create mode 100644 samples/erase/makefile.wat
 create mode 100644 samples/erase/makemac.mcp
 create mode 100644 samples/erase/makemac6.mcp
 create mode 100644 samples/erase/minimal.def
 create mode 100644 samples/erase/mondrian.ico
 create mode 100644 samples/erase/mondrian.xpm
 create mode 100644 samples/erase/mondros2.ico

diff --git a/samples/configure b/samples/configure
index c5e4d1bb65..0d029ca065 100755
--- a/samples/configure
+++ b/samples/configure
@@ -663,6 +663,7 @@ trap 'rm -fr `echo "
             dragimag/Makefile
             drawing/Makefile
             dynamic/Makefile
+            erase/Makefile
             event/Makefile
             exec/Makefile
             font/Makefile
@@ -808,6 +809,7 @@ CONFIG_FILES=\${CONFIG_FILES-"Makefile
             dragimag/Makefile
             drawing/Makefile
             dynamic/Makefile
+            erase/Makefile
             event/Makefile
             exec/Makefile
             font/Makefile
diff --git a/samples/configure.in b/samples/configure.in
index 191f945f1e..5d888d3a3d 100644
--- a/samples/configure.in
+++ b/samples/configure.in
@@ -31,6 +31,7 @@ AC_OUTPUT([
             dragimag/Makefile
             drawing/Makefile
             dynamic/Makefile
+            erase/Makefile
             event/Makefile
             exec/Makefile
             font/Makefile
diff --git a/samples/erase/Erase.icc b/samples/erase/Erase.icc
new file mode 100644
index 0000000000..8d2e7c0500
--- /dev/null
+++ b/samples/erase/Erase.icc
@@ -0,0 +1,17 @@
+option ProjectOptions = gen(arch, "pentium2"), gen(manglelinkagekeywordonlyfuncs, "no"), lang(longlong, "yes"), lang(allowtypedefasclassname, "yes"), 
+                        lang(compatmath, "yes"), lang(nokeyword, "const_cast"), lang(nokeyword, "explicit"), lang(nokeyword, "export"), lang(nokeyword, "false"), 
+                        lang(nokeyword, "mutable"), lang(nokeyword, "true"), lang(nokeyword, "typename"), lang(templatedefimpls, "dontparse"), 
+                        lang(trailingenumcommas, "no"), lang(universalcharacternames, "no"), link(debug, "yes"), link(linkwithmultithreadlib, "yes"), 
+                        link(linkwithsharedlib, "yes"), link(defaultlibs, "yes"), link(defaultlibsname, "..\\..\\LIB\\wx40.lib"), 
+                        link(defaultlibsname, "..\\..\\LIB\\os2png.lib"), link(defaultlibsname, "..\\..\\LIB\\os2zlib.lib"), 
+                        link(defaultlibsname, "NETAPI32.LIB"), link(defaultlibsname, "UPM32.LIB"), link(defaultlibsname, "..\\..\\LIB\\dummy.obj"), 
+                        link(extdictionary, "no"), opt(inline, "yes"), opt(tune, "pentium2"), define("__WXPM__", ), define("__VISAGECPP__", ), 
+                        incl(searchpath, "..\\..\\src\\png"), incl(searchpath, "..\\..\\src\\jpeg"), incl(searchpath, "..\\..\\src\\xpm"), 
+                        incl(searchpath, "..\\..\\src\\zlib"), incl(searchpath, "..\\..\\Include"), macros(redefine, "yes")
+{
+   target "Erase.exe"
+   {
+      source type(cpp) "ERASE.CPP"
+      source type(rc) "ERASE.RCO"
+   }
+}
diff --git a/samples/erase/EraseVC.dsp b/samples/erase/EraseVC.dsp
new file mode 100644
index 0000000000..9a438f061b
--- /dev/null
+++ b/samples/erase/EraseVC.dsp
@@ -0,0 +1,175 @@
+# Microsoft Developer Studio Project File - Name="EraseVC" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Application" 0x0101
+
+CFG=EraseVC - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "EraseVC.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "EraseVC.mak" CFG="EraseVC - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "EraseVC - Win32 Release" (based on "Win32 (x86) Application")
+!MESSAGE "EraseVC - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE "EraseVC - Win32 Debug DLL" (based on "Win32 (x86) Application")
+!MESSAGE "EraseVC - Win32 Release DLL" (based on "Win32 (x86) Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "EraseVC - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O1 /Ob2 /I "../../include" /I "../../contrib/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "NDEBUG"
+# ADD RSC /l 0x809 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wx.lib png.lib zlib.lib jpeg.lib tiff.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /nodefaultlib:"msvcrtd.lib" /out:"Release/erase.exe" /libpath:"../../lib" /libpath:"../../contrib/lib"
+
+!ELSEIF  "$(CFG)" == "EraseVC - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../include" /I "../../contrib/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D DEBUG=1 /D "__WXDEBUG__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /Yu"wx/wxprec.h" /FD /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "_DEBUG"
+# ADD RSC /l 0x809 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxd.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /out:"Debug/erase.exe" /pdbtype:sept /libpath:"../../lib" /libpath:"../../contrib/lib"
+
+!ELSEIF  "$(CFG)" == "EraseVC - Win32 Debug DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "DebugDLL"
+# PROP BASE Intermediate_Dir "DebugDLL"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "DebugDLL"
+# PROP Intermediate_Dir "DebugDLL"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../include" /I "../../contrib/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D DEBUG=1 /D "__WXDEBUG__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D WXUSINGDLL=1 /Yu"wx/wxprec.h" /FD /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "_DEBUG"
+# ADD RSC /l 0x809 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wx23_1d.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/erase.exe" /pdbtype:sept /libpath:"../../lib" /libpath:"../../contrib/lib"
+
+!ELSEIF  "$(CFG)" == "EraseVC - Win32 Release DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "ReleaseDLL"
+# PROP BASE Intermediate_Dir "ReleaseDLL"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "ReleaseDLL"
+# PROP Intermediate_Dir "ReleaseDLL"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O1 /Ob2 /I "../../include" /I "../../contrib/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D WXUSINGDLL=1 /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "NDEBUG"
+# ADD RSC /l 0x809 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wx23_1.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/erase.exe" /libpath:"../../lib" /libpath:"../../contrib/lib"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "EraseVC - Win32 Release"
+# Name "EraseVC - Win32 Debug"
+# Name "EraseVC - Win32 Debug DLL"
+# Name "EraseVC - Win32 Release DLL"
+# Begin Source File
+
+SOURCE=.\minimal.cpp
+
+!IF  "$(CFG)" == "EraseVC - Win32 Release"
+
+!ELSEIF  "$(CFG)" == "EraseVC - Win32 Debug"
+
+# SUBTRACT CPP /YX /Yc /Yu
+
+!ELSEIF  "$(CFG)" == "EraseVC - Win32 Debug DLL"
+
+# SUBTRACT BASE CPP /YX /Yc /Yu
+# SUBTRACT CPP /YX /Yc /Yu
+
+!ELSEIF  "$(CFG)" == "EraseVC - Win32 Release DLL"
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\erase.rc
+# ADD BASE RSC /l 0x809
+# ADD RSC /l 0x809 /i "../../include" /i "../../contrib/include"
+# End Source File
+# End Target
+# End Project
diff --git a/samples/erase/EraseVC.dsw b/samples/erase/EraseVC.dsw
new file mode 100644
index 0000000000..2c6467806e
--- /dev/null
+++ b/samples/erase/EraseVC.dsw
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 5.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "EraseVC"=.\EraseVC.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/samples/erase/Makefile.in b/samples/erase/Makefile.in
new file mode 100644
index 0000000000..0d9ee554b0
--- /dev/null
+++ b/samples/erase/Makefile.in
@@ -0,0 +1,21 @@
+#
+# File:		makefile.unx
+# Author:	Julian Smart
+# Created:	1998
+# Updated:	
+# Copyright:	(c) 1998 Julian Smart
+#
+# "%W% %G%"
+#
+# Makefile for minimal example (UNIX).
+
+top_srcdir = @top_srcdir@/..
+top_builddir = ../..
+program_dir = samples/erase
+
+PROGRAM=erase
+
+OBJECTS=$(PROGRAM).o
+
+include ../../src/makeprog.env
+
diff --git a/samples/erase/descrip.mms b/samples/erase/descrip.mms
new file mode 100644
index 0000000000..5175f4952c
--- /dev/null
+++ b/samples/erase/descrip.mms
@@ -0,0 +1,47 @@
+#*****************************************************************************
+#                                                                            *
+# Make file for VMS                                                          *
+# Author : J.Jansen (joukj@hrem.stm.tudelft.nl)                              *
+# Date : 10 November 1999                                                     *
+#                                                                            *
+#*****************************************************************************
+.first
+	define wx [--.include.wx]
+
+.ifdef __WXMOTIF__
+CXX_DEFINE = /define=(__WXMOTIF__=1)/name=(as_is,short)\
+	   /assume=(nostdnew,noglobal_array_new)
+.else
+.ifdef __WXGTK__
+CXX_DEFINE = /define=(__WXGTK__=1)/float=ieee/name=(as_is,short)/ieee=denorm\
+	   /assume=(nostdnew,noglobal_array_new)
+.else
+CXX_DEFINE =
+.endif
+.endif
+
+.suffixes : .cpp
+
+.cpp.obj :
+	cxx $(CXXFLAGS)$(CXX_DEFINE) $(MMS$TARGET_NAME).cpp
+
+all :
+.ifdef __WXMOTIF__
+	$(MMS)$(MMSQUALIFIERS) minimal.exe
+.else
+.ifdef __WXGTK__
+	$(MMS)$(MMSQUALIFIERS) minimal_gtk.exe
+.endif
+.endif
+
+.ifdef __WXMOTIF__
+minimal.exe : minimal.obj
+	cxxlink minimal,[--.lib]vms/opt
+.else
+.ifdef __WXGTK__
+minimal_gtk.exe : minimal.obj
+	cxxlink/exec=minimal_gtk.exe minimal,[--.lib]vms_gtk/opt
+.endif
+.endif
+
+minimal.obj : minimal.cpp
diff --git a/samples/erase/erase.cpp b/samples/erase/erase.cpp
new file mode 100644
index 0000000000..8162f96f6f
--- /dev/null
+++ b/samples/erase/erase.cpp
@@ -0,0 +1,192 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        erase.cpp
+// Purpose:     Erase wxWindows sample
+// Author:      Robert Roebling
+// Modified by:
+// Created:     04/01/98
+// RCS-ID:      $Id$
+// Copyright:   (c) Robert Roebling
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#ifdef __GNUG__
+    #pragma implementation "minimal.cpp"
+    #pragma interface "minimal.cpp"
+#endif
+
+// For compilers that support precompilation, includes "wx/wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+// for all others, include the necessary headers (this file is usually all you
+// need because it includes almost all "standard" wxWindows headers)
+#ifndef WX_PRECOMP
+    #include "wx/wx.h"
+#endif
+
+// ----------------------------------------------------------------------------
+// resources
+// ----------------------------------------------------------------------------
+// the application icon
+#if defined(__WXGTK__) || defined(__WXMOTIF__)
+    #include "mondrian.xpm"
+#endif
+
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+class MyApp : public wxApp
+{
+public:
+    virtual bool OnInit();
+};
+
+
+class MyFrame : public wxFrame
+{
+public:
+    MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
+
+    void OnQuit(wxCommandEvent& event);
+    void OnAbout(wxCommandEvent& event);
+
+private:
+    DECLARE_EVENT_TABLE()
+};
+
+
+class MyCanvas : public wxScrolledWindow
+{
+public:
+    MyCanvas( MyFrame *parent );
+    
+    void OnPaint( wxPaintEvent &event );
+    void OnEraseBackground( wxEraseEvent &event );
+
+private:
+    DECLARE_EVENT_TABLE()
+};
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+enum
+{
+    // menu items
+    Minimal_Quit = 1,
+    Minimal_About
+};
+
+
+// ----------------------------------------------------------------------------
+// the application class
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_APP(MyApp)
+
+bool MyApp::OnInit()
+{
+    MyFrame *frame = new MyFrame("Minimal wxWindows App",
+                                 wxPoint(50, 50), wxSize(450, 340));
+
+    frame->Show(TRUE);
+    
+    return TRUE;
+}
+
+// ----------------------------------------------------------------------------
+// main frame
+// ----------------------------------------------------------------------------
+
+BEGIN_EVENT_TABLE(MyFrame, wxFrame)
+    EVT_MENU(Minimal_Quit,  MyFrame::OnQuit)
+    EVT_MENU(Minimal_About, MyFrame::OnAbout)
+END_EVENT_TABLE()
+
+// frame constructor
+MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
+       : wxFrame((wxFrame *)NULL, -1, title, pos, size)
+{
+#ifdef __WXMAC__
+    wxApp::s_macAboutMenuItemId = Minimal_About;
+#endif
+
+    SetIcon(wxICON(mondrian));
+
+    wxMenu *menuFile = new wxMenu("", wxMENU_TEAROFF);
+
+    wxMenu *helpMenu = new wxMenu;
+    helpMenu->Append(Minimal_About, "&About...\tCtrl-A", "Show about dialog");
+
+    menuFile->Append(Minimal_Quit, "E&xit\tAlt-X", "Quit this program");
+
+    wxMenuBar *menuBar = new wxMenuBar();
+    menuBar->Append(menuFile, "&File");
+    menuBar->Append(helpMenu, "&Help");
+
+    SetMenuBar(menuBar);
+
+#if wxUSE_STATUSBAR
+    // create a status bar just for fun (by default with 1 pane only)
+    CreateStatusBar(2);
+    SetStatusText("Welcome to wxWindows!");
+#endif // wxUSE_STATUSBAR
+
+    (void)new MyCanvas( this );
+}
+
+
+void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
+{
+    Close(TRUE);
+}
+
+void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
+{
+    wxString msg;
+    msg.Printf( _T("This is the about dialog of minimal sample.\n")
+                _T("Welcome to %s"), wxVERSION_STRING);
+
+    wxMessageBox(msg, "About Minimal", wxOK | wxICON_INFORMATION, this);
+}
+
+
+BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow)
+    EVT_PAINT(  MyCanvas::OnPaint)
+    EVT_ERASE_BACKGROUND(  MyCanvas::OnEraseBackground)
+END_EVENT_TABLE()
+
+MyCanvas::MyCanvas( MyFrame *parent )
+ : wxScrolledWindow( parent, -1, wxDefaultPosition, wxDefaultSize, 
+                    wxScrolledWindowStyle|wxNO_FULL_REPAINT_ON_RESIZE )
+{
+    SetScrollbars( 10, 10, 40, 100, 0, 0 );
+}
+
+void MyCanvas::OnPaint( wxPaintEvent &event )
+{
+    wxPaintDC dc(this);
+    PrepareDC( dc );
+    
+    dc.SetBrush( *wxRED_BRUSH );
+    dc.DrawRectangle( 100, 100, 300, 500 );
+}
+
+void MyCanvas::OnEraseBackground( wxEraseEvent &event )
+{
+    event.Skip( TRUE );
+}
+
diff --git a/samples/erase/erase.rc b/samples/erase/erase.rc
new file mode 100644
index 0000000000..3bf71d6da0
--- /dev/null
+++ b/samples/erase/erase.rc
@@ -0,0 +1,6 @@
+mondrian ICON "mondrian.ico"
+#include "wx/msw/wx.rc"
+
+#define MINIMAL_QUIT 	1
+#define MINIMAL_ABOUT 	102
+
diff --git a/samples/erase/erase.rc0 b/samples/erase/erase.rc0
new file mode 100644
index 0000000000..42078bed50
--- /dev/null
+++ b/samples/erase/erase.rc0
@@ -0,0 +1,6 @@
+ICON     1   PRELOAD   "mondros2.ico"
+#include "..\\..\\include\wx\os2\wx.rc"
+
+#define MINIMAL_QUIT 	1
+#define MINIMAL_ABOUT 	102
+
diff --git a/samples/erase/erase.rc4 b/samples/erase/erase.rc4
new file mode 100644
index 0000000000..695f7b0f76
--- /dev/null
+++ b/samples/erase/erase.rc4
@@ -0,0 +1,6 @@
+ICON     1   PRELOAD   "..\\samples\\erase\\mondros2.ico"
+#include "H:\DEV\WX22\WXWINDOWS\include\wx\os2\wx.rc"
+
+#define MINIMAL_QUIT 	1
+#define MINIMAL_ABOUT 	102
+
diff --git a/samples/erase/make_cw.mcp b/samples/erase/make_cw.mcp
new file mode 100644
index 0000000000000000000000000000000000000000..9d75e55c231203bf6b40765747ef26c7a5d0bb6d
GIT binary patch
literal 133038
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

literal 0
HcmV?d00001

diff --git a/samples/erase/makefile.b32 b/samples/erase/makefile.b32
new file mode 100644
index 0000000000..54575af255
--- /dev/null
+++ b/samples/erase/makefile.b32
@@ -0,0 +1,16 @@
+#
+# File:		makefile.b32
+# Author:	Julian Smart
+# Created:	1999
+# Updated:	
+# Copyright:
+#
+# Makefile : Builds sample for 32-bit BC++
+
+WXDIR = $(WXWIN)
+
+TARGET=erase
+OBJECTS = $(TARGET).obj
+
+!include $(WXDIR)\src\makeprog.b32
+
diff --git a/samples/erase/makefile.bcc b/samples/erase/makefile.bcc
new file mode 100644
index 0000000000..bf0a3bb171
--- /dev/null
+++ b/samples/erase/makefile.bcc
@@ -0,0 +1,19 @@
+#
+# File:		makefile.bcc
+# Author:	Julian Smart
+# Created:	1998
+# Updated:	
+#
+# Builds a BC++ 16-bit sample
+
+!if "$(WXWIN)" == ""
+!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx
+!endif
+
+WXDIR = $(WXWIN)
+
+TARGET=erase
+OBJECTS=$(TARGET).obj
+
+!include $(WXDIR)\src\makeprog.bcc
+
diff --git a/samples/erase/makefile.dos b/samples/erase/makefile.dos
new file mode 100644
index 0000000000..795741a98e
--- /dev/null
+++ b/samples/erase/makefile.dos
@@ -0,0 +1,17 @@
+#
+# File:		makefile.dos
+# Author:	Julian Smart
+# Created:	1998
+# Updated:	
+#
+# Makefile : Builds 16-bit sample, VC++ 1.5
+# Use FINAL=1 argument to nmake to build final version with no debugging
+# info
+
+WXDIR = $(WXWIN)
+
+TARGET=erase
+OBJECTS=$(TARGET).obj
+
+!include $(WXDIR)\src\makeprog.msc
+
diff --git a/samples/erase/makefile.g95 b/samples/erase/makefile.g95
new file mode 100644
index 0000000000..e2857f2d4d
--- /dev/null
+++ b/samples/erase/makefile.g95
@@ -0,0 +1,16 @@
+#
+# File:         makefile.g95
+# Author:       Julian Smart
+# Created:      1999
+# Updated:
+# Copyright:    (c) Julian Smart, 1999
+#
+# Makefile for wxWindows sample (Cygwin/Mingw32).
+
+WXDIR = ../..
+
+TARGET=erase
+OBJECTS = $(TARGET).o
+
+include $(WXDIR)/src/makeprog.g95
+
diff --git a/samples/erase/makefile.sc b/samples/erase/makefile.sc
new file mode 100644
index 0000000000..031c3eeac6
--- /dev/null
+++ b/samples/erase/makefile.sc
@@ -0,0 +1,36 @@
+# Symantec C++ makefile
+
+WXDIR = $(WXWIN)
+WXLIB = $(WXDIR)\lib\wx.lib
+INCDIR = $(WXDIR)\include
+INCLUDE=$(INCDIR)
+TARGET=erase
+
+include $(WXDIR)\src\makesc.env
+
+minimal.exe: minimal.obj $(DEFFILE) minimal.res
+	*$(CC) $(LDFLAGS) -o$@ $** $(LIBS)
+    *$(RC) -k minimal.res
+
+sc32.def:
+     echo EXETYPE NT > sc32.def
+     echo SUBSYSTEM WINDOWS >> sc32.def
+
+sc16.def:
+     echo NAME $(TARGET) > sc16.def
+     echo EXETYPE WINDOWS >> sc16.def
+     echo STUB         'WINSTUB.EXE' >> sc16.def
+     echo CODE         PRELOAD MOVEABLE DISCARDABLE >> sc16.def
+     echo DATA         PRELOAD MOVEABLE MULTIPLE >> sc16.def
+     echo HEAPSIZE     1024 >> sc16.def
+     echo STACKSIZE    8192 >> sc16.def
+
+clean:
+    -del *.obj
+	-del *.exe
+	-del *.res
+	-del *.map
+	-del *.rws
+    -del sc32.def
+    -del sc16.def
+
diff --git a/samples/erase/makefile.sl b/samples/erase/makefile.sl
new file mode 100644
index 0000000000..207941a5aa
--- /dev/null
+++ b/samples/erase/makefile.sl
@@ -0,0 +1,18 @@
+#
+# File:		makefile.sl
+# Author:	Julian Smart
+# Created:	1998
+#
+# Makefile : Builds a wxWindows sample for Salford C++, WIN32
+
+PROGRAM = erase
+OBJECTS = $(PROGRAM).obj
+
+include ..\..\src\makeprog.sl
+
+all:        wx $(TARGET)
+
+wx:
+    cd $(WXDIR)\src\msw ^ mk32 -f makefile.sl all
+    cd $(WXDIR)\samples\minimal
+
diff --git a/samples/erase/makefile.twn b/samples/erase/makefile.twn
new file mode 100644
index 0000000000..70cf377fe5
--- /dev/null
+++ b/samples/erase/makefile.twn
@@ -0,0 +1,43 @@
+#
+# File:		makefile.unx
+# Author:	Julian Smart
+# Created:	1993
+# Updated:	
+# Copyright:	(c) 1993, AIAI, University of Edinburgh
+#
+# "%W% %G%"
+#
+# Makefile for minimal example (UNIX).
+
+WXDIR = ../..
+
+# All common UNIX compiler flags and options are now in
+# this central makefile.
+include $(WXDIR)/src/maketwin.env
+
+OBJECTS = $(OBJDIR)/minimal.$(OBJSUFF) $(OBJDIR)/minimal_resources.$(OBJSUFF)
+
+all:    $(OBJDIR) minimal$(GUISUFFIX)$(EXESUFF)
+
+wx:
+
+$(OBJDIR):
+	mkdir $(OBJDIR)
+
+minimal$(GUISUFFIX)$(EXESUFF):	$(OBJECTS) $(WXLIB)
+	$(CC) $(LDFLAGS) -o minimal$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS)
+
+$(OBJDIR)/minimal.$(OBJSUFF):	minimal.$(SRCSUFF)
+	$(CC) -c $(CPPFLAGS) -o $@ minimal.$(SRCSUFF)
+
+minimal_resources.c:  minimal.rc
+	$(RESCOMP) $(RCINPUTSWITCH) minimal.rc $(RCOUTPUTSWITCH) minimal_resources.c $(RESFLAGS)
+
+$(OBJDIR)/minimal_resources.$(OBJSUFF):	minimal_resources.c
+	$(CC) -c $(CPPFLAGS) -o $@ minimal_resources.c
+
+#$(OBJDIR)/minimal_resources.o:  minimal.rc
+#	$(RESCOMP) $(RCINPUTSWITCH) minimal.rc $(RCOUTPUTSWITCH) $(OBJDIR)/minimal_resources.o $(RESFLAGS)
+
+clean:
+	rm -f $(OBJECTS) minimal$(GUISUFFIX).exe core *.rsc *.res
diff --git a/samples/erase/makefile.unx b/samples/erase/makefile.unx
new file mode 100644
index 0000000000..1e82bd01d4
--- /dev/null
+++ b/samples/erase/makefile.unx
@@ -0,0 +1,35 @@
+#
+# File:		Makefile for samples
+# Author:	Robert Roebling
+# Created:	1999
+# Updated:	
+# Copyright:	(c) 1998 Robert Roebling
+#
+# This makefile requires a Unix version of wxWindows
+# to be installed on your system. This is most often
+# done typing "make install" when using the complete
+# sources of wxWindows or by installing the two
+# RPM packages wxGTK.XXX.rpm and wxGTK-devel.XXX.rpm
+# under Linux.
+#
+
+CC = gcc
+
+PROGRAM = erase
+
+OBJECTS = $(PROGRAM).o
+
+# implementation
+
+.SUFFIXES:	.o .cpp
+
+.cpp.o :
+	$(CC) -c `wx-config --cflags` -o $@ $<
+
+all:    $(PROGRAM)
+
+$(PROGRAM):	$(OBJECTS)
+	$(CC) -o $(PROGRAM) $(OBJECTS) `wx-config --libs`
+
+clean: 
+	rm -f *.o $(PROGRAM)
diff --git a/samples/erase/makefile.va b/samples/erase/makefile.va
new file mode 100644
index 0000000000..dd88cb018d
--- /dev/null
+++ b/samples/erase/makefile.va
@@ -0,0 +1,44 @@
+#
+# File:     makefile.va
+# Author:   David Webster
+# Created:  1999
+# Updated:
+# Copyright:    (c) David Webster
+#
+# Makefile : Builds sample (VisualAgeC++ V3.0, OS/2 PM)
+# Use FINAL=1 argument to nmake to build final version with no debug info.
+
+# Set WXDIR for your system
+WXDIR=$(WXWIN)
+
+!include $(WXDIR)\src\makeva.env
+
+#
+# Define which program this is and what it's path is and where to output to
+#
+PROGRAM=erase
+THISDIR=$(WXWIN)\samples\$(PROGRAM)
+OPATH=$(THISDIR)\$D
+
+#
+# Make sure output directory is available
+#
+!if [md $(OPATH)]
+!endif
+
+#
+# Standard definitions
+#
+PROGRC=$(THISDIR)\$(PROGRAM).rcO
+OBJECTS=$(OPATH)\$(PROGRAM).obj
+PROGRES=$(OPATH)\$(PROGRAM).res
+PROGTARGET=$(OPATH)\$(PROGRAM).exe
+
+.cpp{$OPATH}.obj:
+    @echo $<
+    icc @<<
+$(CPPFLAGS) /Fo$@ /Tp $<
+<<
+
+!include $(WXDIR)\src\makeprog.va
+
diff --git a/samples/erase/makefile.vc b/samples/erase/makefile.vc
new file mode 100644
index 0000000000..d1a994d9db
--- /dev/null
+++ b/samples/erase/makefile.vc
@@ -0,0 +1,24 @@
+#
+# File:		makefile.vc
+# Author:	Julian Smart
+# Created:	1999
+# Updated:	
+# Copyright:	(c) Julian Smart
+#
+# Makefile : Builds sample (VC++, WIN32)
+# Use FINAL=1 argument to nmake to build final version with no debug info.
+
+# Set WXDIR for your system
+WXDIR = $(WXWIN)
+
+PROGRAM=erase
+OBJECTS = $(PROGRAM).obj
+
+!include $(WXDIR)\src\makeprog.vc
+
+# For broken VC++ 4
+noopt:
+	cl @<<
+$(CPPFLAGS2) /Od /c /Tp $(PROGRAM).cpp
+<<
+
diff --git a/samples/erase/makefile.wat b/samples/erase/makefile.wat
new file mode 100644
index 0000000000..4a36a715be
--- /dev/null
+++ b/samples/erase/makefile.wat
@@ -0,0 +1,15 @@
+#
+# Makefile for WATCOM
+#
+# Created by Julian Smart, January 1999
+# 
+#
+
+WXDIR = $(%WXWIN)
+
+PROGRAM = erase
+OBJECTS = $(PROGRAM).obj
+
+!include $(WXDIR)\src\makeprog.wat
+
+
diff --git a/samples/erase/makemac.mcp b/samples/erase/makemac.mcp
new file mode 100644
index 0000000000000000000000000000000000000000..8e171fb099dfb500ead349d461d16cacf4648697
GIT binary patch
literal 162200
zcmeI5349$@y~k&g+@#y58wI*^X@Qn5DP=8bg``Q^rcIiVw6v6^xlL}{wAs8#X#tUd
zpn!lV?mLQ#8;T2}q9E#fKKJE`%Tu2|eQr<jsn1>EegEg2xp(fpv!zXu_Rjg_H|Ib9
z`OkmO`Jey!&&iy*XSxOkdM(Q;w=8?HRo0!d%F?%4){Lp}p0LYoGM(xNy3^ZInM}_>
zCfSx5*q81ab`F(FUPeW)2RDGTz&Idw>I4hGrQlSs6|4s*fD^$<;3n__&;S;L(?BEG
z4Q>WgfTZVv=Yw`|31|f!pbe}5Eua~k0;<7fU<TL&?f}z)G}`&#bZ{}~0^Q&YKs#G2
z!6a}Vs0Te@9+(d*z(t@A+z4vHI*<TogYjSjSO~U(+s*zG@;ku+a5WI;*ar@RLGWC#
z9~=VWZ`Xi6a4i@D*MWYJ0RvzM*Z`WqEuadV3$}w4xB#pI7lInF8ms{uK_z$&I1^k2
zrhylOG`J1i3KoH-U>R5rCWF1;WH1pV!4|L?yb!zyjDSsGE!YXJ1XqB|!Avj<%m#D7
zTyPH91;#4fg`zj(cCXjXXUTpx*+Pvk7eA3UmiAToM>d>I8*LYx<|Q#woMH=L0dXDa
z_u?;QK>E74hxEB|K>CmLd&jpYK#Q+SKM_BZed#|_fb<`UM-qo5?n(TUI4E&a`iS%k
zC)P-Qid+y#UsL;12q67m^v;vQfUOksQScaD8~?9`EBlm9N+8!0X}K1{H#{w5(U!WX
zULprATa%Ij*($c)jDw^8vTU)B3d$-PtJ{FO56D^PD~stf-P<Z<QQ>5DQ&Stv04IZ)
zU>2AS=7M=(K3D)w2aCXBa3)v+mVz~)9yEYPunw#T8$c7-1X{pm&<Z3XNK2g}O$r*E
z+*r)AC$2bnh`*g(2dnq)-P<?N&(4N)sym$-YHO=sx)fVT1sp(1QcP_+<r%``a!O1Z
zQ7q<ol6ZvUO^#QHM~O#ByE&fZL{9M-@g_MYo+KV99wuHS9wy!=vU9l53@{VS0<*zf
zFb~WJ3&9y+5jYbp0ZTzGr~_+3184;6!A7tNYzD2M4O{}+!KL6butWK`__dU5r>e7*
zOzP_8k75()6Z-fLBY&dmVbVvm-=1uauQK_C#%F3wzFOH&?s3v1<^HDiZ8G{UQn@tI
zr1sWU=}p;`Sl84n6})tP`&MxVN#$h+50OojLlp32BeGC(6xT|QpR6|fo6PYu4F4jt
zzuDxiCT}zOC9X@AO>gOFPS$PiXi7Hs?8>AvJ!!e&JEfXyPMK%&nI@klIYp^+sj|m!
z>*+t|>|{rS+=eaJk%~l1s;jjF<`fq<F?m}$wV%uO?@xCp)nVtdOUz}Kn*1`8?=X40
z$!ADTF*ch0*(RTF@<k>;)8xu>7`x8wuQhpt$s0|+-sFyD9sN%3Tz{L9i&PHEX@i+y
zE|A!H2B-yfU?bQBHiK5s1}*_xCD^Hehn)1=DH~H)r|NrCLqqAI>U}90ljWryO>N1R
zZ9B9xiO)%rTzs9%tG@5_Y4L9^l6OauzAt>~(}i~s>EqJhrFRuV;)2AI6Y)(O%mj16
zJg^GXfYo3PxCmSfYF&9lUeqe1%yK{SPP*TkV+j-JyhTffOB;`GNoV$?ldT7a53kl2
zlj_>qnw8I0G&HZ@-nGA{TmGZm*3njPblP}^@+)=Yu_kP7YpNd1q<8m7(DF#y2jw=N
z-)bT%Tzy>jPC0DN_-rCoJ#e`7mWyZWZrLN-9}~`zCDE7Fu+_fX9$$7{c3%<pNdEp2
z@8vA1dwW^F#RK#c1Bymun&UMt6GeG#>8aUW8uU--I=Hj1r@yB!)yu%8_>7$WWpE*|
zYWd&jF(Hm>vU4p(x!k4BziciJyJhl6qk6nRWwWEUo!!-Y_o$KD=tgZG<5Sn2K<pn7
zA9JRzsXs6@JkXcil)mQRK&E@haviGc>Pim{CEHTNd-M2PQUsCVWJh{<xTk+l-l26p
zz3F62YH+adz}f>nz1_*iL&KR=-U$uqT?h8;NoSH;sr&NhuiBK92UqLU{e|p?o*}uv
z_3i3SX9|z4?;Y5c>P@x|4)^r+Tw8ox4JeAva-NF0s$ai?;WH)Z8>CWsC+H(QQ0p(O
zX8pPritR4ax-D&3us_}FX38yEH20<YyJduvE;`tp>fdu9wWs)i8Y+3(UMVHC4-(~E
z)lh7Y>IuJLpey@4&~=KwhQ3!6mAx%B)P;S$>|zdi83qscYD{7KHKrU3YD_s^+?c{`
zYh35HfMS`ao~~NLt{dtrZk+b?wVt(O_}VU&DE5a#tIqeToUj`Yb*1sdfqv;n1zsS>
zgDNP;iz_Hxr#VfYRNbz*XUN^~JE>nl?^cI>dbm2~-^<luzn-oR`t){n%)iI0!`{6<
zd&tLGvd07LnUyKBY4(U?*PNHAL%xx~b=1S@_0htJptxR9K^+K+3^@Uh=#V?;8zFKc
zMNuMm$j1c!(L$XX6fu;5f7Eav_A{dN;Nn|>K9fU1P9dj;Ifcl0JB1v{k0#lR`WT8c
zyrPOa%_p*`W4_Tv9hFY+V*oi65M{EbhZ(^$+GNl6u5GeC-J4Dgr9<LORxBXiWMzWm
zPF5@^{$zy$;!sv5I38ui{NqxdNPsKm$%V8=o~);9=1GLLj^9W|nm4P+cT|%v<rUAe
zI{e~VRv;|C<qP`6xqP9(c$Y8g8Tax<LQEMP2eYce;$c=WI4%~7`NYSZ7|rP&Ch|n0
zIH`C>R3{bLU?&xc;y9XDs1U=W!7r|6)da-XtW02>%}V*l+dPqwxSJ;%)tJ6<I8U38
zwNx+*i^f_gC>CppkVveB0^_h235vp6LTx?&3skX33k5{roIsFk=cK~gA}8tX*16-s
z?GPAuwUXedYh*lQu0G})arNQQc<U1Li?%M2;8^Pt^p3PHfk4BBL|LsSG{$PNkO-S6
z<QHF!kbiW|34}Xfl*pRX7vz9GQ8jmRppk<js#XycPqjpFG}STzu{0+T7D;oG(fY1`
z6wPTWwoW$0`ac!RiulCO>~a6-nHBMioml~&$eBH^>f#wUvm)M6Gw-mE%jU@hSUpd!
z$X)Y}23g!MR%R9WM#`K-VVuk!@rsh!gF!JeU&tdu<_q}7$9%D(=$L;vz)b#;F{>gd
zE@p-Nqhg_mM@-C#ct*s$!(q-95)Jco`8!u}B+NT8z@R=+FnhXB49p()jeuDR@A#K@
zI3W7v$wldfo{=w4i-$F~F)<(hzkJdy<`@6mG66BrE#?~s-9mn`&@B@X58YxuF|km@
z&vgssf?B0ew%COWCBj<AH%_`0`NzsUsiJu4KI$1W-2#Devq;b@b`}Zw$Il|s;uu;a
z5@O1LSn5_47*E}T0WsA>%qy<uiFwD?LXjv=8Wv*<bp|`BN31PW5Mp@0nCn*K7kAw<
z{;}6B<r9AkMS@~*p={J1?;VQ^wRu=eY#bpTyT$zCv0Ek}9=pYS<FQ-FFCM#P0^+e-
z%qJcfiuk#Dp<Gbw6v`I6dZ9#E>-ffFw<7;|oF`QjkKIQ-<FQ*HFdi2Pdd1@+A^&(>
zBw8Ggi$p?984!=%ssiJ&TQDFVdx&|(<2*6%cw8tF#YyFys7@-f!A>d?`Oj99g@p<+
zJmOx@R`b;O#bfuS{Nu4($|oKdiUh^uLfNRs^p3}c+I*~~9~=Zc84x{MC@2<diI7OF
zg#zQS772>NT0(8TpAqB=91wxE77++??VMCtTjV6Y-8y$XxE%uHu2vEpb&ZT?%+<$y
zBd$Ii8gE@<e$mz?5*%w?g5HtVB@k%1kSMFwgvMAc77}6eg#6;G5u)!D&s?bploJSd
zK=J5k4k(gA4k*VxqH3-%fkx(R--xPJ1jSP=5gbjmOh7En34}$`oMbf9`A5;5CJ*b#
zuvZHN#L%3OUkuGj1jNvskZ%mliTK6PoP;X2cMQ!5`NYtC0Y4YcmkMf!e92-L&OaX9
z4!$uor^G*ox@3xCXzrM249y)5jG+Z$UNN*l#6N}>2o}fC0)aro1;o&tn!p&E6AOr;
zMM7RN)FtE{L-Pf~9WX40=IaY`K#v%je{!Ia{bFcNg<lNKN%+UmoQzKl%@+uYq4|>0
z`mT2j&DZ2(9p||~HYl|p=;vK$_p8Er4{F;|y?tV-!uL<}hWA0rq#2!y1}f9hJxrCB
z@>P_xL6D-HRG=cK*c}50GF|E9mQ0%8ujStE%(GKdyXQ;ed1ms{<2F%{9$oh!En31)
zN3Pm_I&u<zI_m4%*S2mpw_-mvc|rmA>pVHXTXvpMz+F2}&iBThC*^nV&Jzl9ByT}o
zNVlit$@$#si)8$QZINJ5&?piv4!K1l9-$*oM&H#v-epgEh<V+0^2Lho|9OW!hX8pJ
zfun$8Nw0xGv6TN<pjfteI8ZDTX48N{L7uX}aY3G>L=}&Jii%_+xtS=7>}Dby;$|XJ
z@DEZ^!NN?24$ps+@)Y^q<@1F6Z}fR$KKJ?}nV{Q!k#J<Idf)Vm^!ZyY>~>~UIbz{)
z+mQ^3+>Tgy>~<u>qPHU#62Bd>2obzU)HjAZlEG2jEfvzi+@cYj!7c9F$=pKW4iOs9
z9d-Wy&K3HOUrcv21x0m7CQ4k-lMRUMd2*q#Jx|&<y5~uSTRA+!I|`%3ct=(OsehDr
zOGR`;Q8)@W6!B0u6d~_u?=E1t3DFZ2@f~F$G2amjjrxvYaNKuGMTq=v@ln`0F#5Z7
zdRS4+?}!MEf9+k~>g6^*lEn?|BUl_YMNt1&5`N_(Iq&Nhi4|Wp@2(hpVL#F0Yx_z1
zUOt-53qq%>w7x~~P;3g3|D*DFFSfu@uz*?-%dOYFWPzI>)6p%kbLY@-Dsz}it3<y{
zkfd!@=~Y*bxIO>*m0{T)sf8@%29c1JH}aQ*5l%MAdLz--Gts9x=gVqG&Uz)XI+?73
zBq<4;p0Wa3Rzi{_YizPGkxH_dm8^~?sTJrIzVzCavQm<y{lHoIL#^DUxO$CFy#k(P
zy~HK+Mrc`GNz!|PTI_`UlR#EjlJsRDD=kU-4<M^8N%|ikD=kU-3y>9;NV4FPTF*~t
zS;b92vQK9ttFn>obJ@tMZX{b)U=dr8Y^j&5A4syh*~sc`B>NgRW(_9$W@uRhkYwM@
zX1*dVoAv(GdZ)sF2b&}y*$=TfRgsqc3GxMo{yh0YLw|?-G(-P{T*^waf6L|!MOyaX
z$QNn4Ol-f{&|-r#4V@%kV(4Y$OAUQKx$Kk5WGx<9OO#aB#HL!2R+%hIw!+X?lAmSh
zUh<WOmUVm1HuUY}=NS4`<YH4&+5K$JQ>0b)5puaUsqAxXE>NUZ_I2`AhW-Khg@*nO
zd5xyaE67(HTKr;-p`{I<V`#D8MTVC0nstWCrA=!Mzm2@k&{vVKHFQ6@$dSsWeH#>M
zmETC-Xy`l0*BM&ccfFzCN4~+((xzfZQu&wIY*eIG{(W-kGo<ogvT0VNRsKiv7EM=7
zAm40g@rzbNOPff!NflD|OB88UY$tCw^Z>cE8L8rCHd_>FRlJ6rbtolO+{@-tMOqb7
z=52<4lw5R?D!#zxGDTVyKO~nmElCyPdzUNHs(70G3QZ>_k&Azj64Dl8Q&QqIHait*
zCB$Dk4J~bzGPKxcm!YLxU51vt+t3Hd(}uo@e7B+RB;R9bspDQl-$&kKXsP2qLqANu
z-_YM67e6K?e!-?skyhd<a`6LFrNj@hDXCKW&7dN!%3AX08d};RV`wSwkfEi_!-jq_
zx$KiF-@xW-MOu{)k{>kmzmXp@^bg6!|45b6$FEhSRVB8S{zj^je)c>?T2<l~*Be@F
z@O(p$kl$eF*OJRVsp>;)#HUGBpJ5|5B~^Ws%?lK1RsD?oW<&p${1#1*OOU_N(DTV(
zWawq&w;Edd=xv5>BEQ|xTgk;1q;b-|cPP>tC-#=MB#jf<yA*l6ZpIz26+6Ou#Y+_`
z1KLM@sY1H2&w_T0HEk6!0#{IzaUP{KiE||77<6J8x5}Sl=Z|GYHduQ(%e%HTZEk9*
zYp!nG-Y6#&rCQ-sn2nRm?x>P`C17{?kDvb|v^j#;%X8PfQd&$gB+kbvwm{Yb(w+NK
zJ!Wi_WtSE)p3!2wmMXE~SXi+%``lr2cE!;yS#p$T)JvB}SaCGZwJY-OaCwI!@096V
zR%H2LL2i4aT<^LpSRwy>WtX9~*7anDWS!GJed+#Tt42FL>!2r_`UVFw!$~HPt(LZJ
zdAr+^dWuz!F^gp}Y34p&<G!o6IKoT~S?s9kEK9cOA#;-Dx|~S0?%L<5lU-zatJ*cQ
zR5<0IH?gm07;=k;=1<b+O~q#?+|8^+!31-`G;+Z_oRr6z(G<F9PED9aGiR<^2<gm%
znKgl{y9Ng>ht70KGaWp1u&2Lzuxl@0IXHNzy0>SSB`ej}Z(ntOb#v2Nz0=m_?Die(
z$_)1^vHI2)7Oy_%Y$dk7p~+C28rwHFHk+NT9gXdVM7(~B!|&M8*zC})&5e%q)}{uf
zZ7YP<E7UoP*S+hSox`bJ)vDB{4zjS3Rg-fz*>$zG>}K6VcDC2IuFHCoFkFtMgk=eR
z^{%3sbIQ%nb2!@^Lg!5*3!|thglW_WDHFdcH;bs|&CaS11Pl(Emr$#zgVoeOoX+e{
zb){uTj@MUnx;muxmM+ci^W_RTByHEiI>T~8S8ryhi;gGeV%^k%-gNcQ@PS=J?918a
zLXN_^!NGJYlj_$OD}0&S>}TI#<E-5DGuQ4*bya7Ev^%*P#+hq%1%uo|RQOtVw$Ql-
z^f<@;dZ|m5`;F2<w(56oX7+tfxon<~YkyN7ubf=(YcJQ5ZOt9S8I~wscc8yZz6PRB
z&-QHRwc-31XfX=Ck6VN^iQaKYG#Gx~Tcf54l^N?AF0E^Gy3=6)o~)g&MO}7B`A2_x
zxPG92ch4Sa^L>Nqoa~mp89rb#Bzz=>GXuSfZs<w%4(w4R@uqv=pdwq+{Rb4$I+*U?
zGB{k{+e5IHHycyKD_2UT2P|`_rDv#X>u^u6GDViFICxQ>sA95Ob-#;?lMPAO_hHK^
zQe<<nChF%pd2raNbXLaESHvhROx>1L@BTbpNc5(Kn>}}MI4jjHOKRt8?G&Vd?XI@h
zA*Ysk$DAUY5_%phJkixd+|%#w*jJy*>>B9TFB!OfKYw1`;|w#4E`F+IjeqKxqgg8K
z=qu=(;Xq~x>u8SHul_)0Xdu&&zPg9y&e!)INOM%jjkZi$i*0RdGY7I)ayo^%i1Pm7
zp55Z(rVwUN32shZ-Loep>p;sDx1<jZr~8N4vl<2@>~!%$$F<iE^!Fs4JDl9@#FN%H
za{}L8xu$~<7&df?kH;2>EpWsZu$k|$ndh*X->{k2u$j-WdjNAKHuD)a^B6Ys7dG<@
zHghI6&jW1cRBYxkZ00XyUesp3!e*YrW`4qEUczQR!e$=A9sxH3<{Rvff{%fZ1LhoL
z4%NN|Ft=bcr(-i`V>7p4GpArPmtZq5U^91MGiPAG0=yEu3cMOH_hY{VybLhUVZRPA
zH)k`CVBZ5?4qghFd$HdL-UQwZ?geiFZw2>(w}H2VcYyoBBj6L@li;1;UEtl|J%ITN
znd`OR3myQ>GuiJ4%<0%40Mo#9Z~~YCP6U&{6mSw?F2|k;CW6bsR4^IL0^MLXm;>g5
zd4RbV`xKA_SAbK&0<aLA22KZOfQP_Gz{6k>SPaetOF$Qx0G5JfU^%D;E5KQno<IK;
z`LDr~;5Xo>;1}S3!EeFuz<(ou8Tl{4&%y86mjL~L;1A%B;7{Ps;4k2>9N$6yH}H4x
z5AYOt8a|o*LGU5)VE{uuG-sEC3XnqJXXFV`397(2Fdk4Bi?+1h4DJQArA1p>_<%)Q
zTePY5Hb9$N_=rW@TdxPSuSNS>w5jzjK$}{$se0dlwzOzVi?+0AON+L&D4#|7EXrqL
zUkm$M*w@0(tdD|^fscbn0RAHHD%cl*Rp3HU16G5x!FgZ}cn-J-tOQqr^TD~`Vz3+3
zf;zAk)Pn}l2-bnCz<RI&G=Ys^6KDo4U^8e1Z6FQK0hfSw&;ho9t>9A1`dRQV;9tS#
zz`udVz^B3I!56?6!K27;BmWF|9DIrWPVz5<uYj+DuYs?FZ-9U2_;&Jdf+xVYz_-D7
zz<0rafbW6tgC8Kfll)WQKfw>dkHCL{AA_HON>Bx8`|P(|ZRiRx5ljN&50Vm~983mN
zz*H~|Oa~``8Q?^45;z&m1hc?wFbB*9^T2#?3Md0fa4J{;7J}2j>EIf0Ew~Om4_pt1
z!9nnRa03_tL*Nj&8r%qO0xtkJgImB0!HdAH;5KkOcrmyG+zIXiF9COhmx7mp1K=L;
za_|c9O7JT1YS00;fUV$CunpiB>b-&O<d=aR0Dn>M58x|mZvP5${87!}OPh3p6xap2
zKsQK(-Cz&c3wpplupjgSd{51%_mdBRLGWCV0n0%(SOLxgE5Ty06r2st0q256U>R5f
z&I9Lz3&1LHA*ccLDfJG>bI30O7lT?*2iAgm&;T02I&daf4>o`%un}wm&EO26JV?L3
z&QR8Q3ZM?eo7e)SVFB0wtkMabe=|#?@={ACKqa`uDYk&Jz_{2Bo))m5ffrS{hP;nJ
z=A<%+=<hnaPGs7^wdbhI<`q!wD9_308NZc$hyI4ApZ>Xw$Kq6)7U(GV^^4!jST|0k
zX@Tn##eVU89WQ<_|KG-`G%avLWwBq3Xuo)Hd}*2_uC*Ck%rDa;3<fp1p@!Q!$jxBC
zHYdm3CzrA(A$KzD`Ur9}ky{%<PM(3)MUb0~Ttfsod5*R&CzmZc>|CNA@~mxrPR_T!
z@;q*Xj~t;`C-g0V>deW>(5^TkcRJkeoLt^@vnL=Y&!Tomkdx<Fdwk@wg+QM?huRxK
zPM&@BM39qbXZs?^twHV<A2|-`MEUBWE{h;1&(?+_$jS4!t0TzCGrCL!IeCV6AcCAc
z=Npb7C(i<(8$nK<72X~}PM)czBgo0~*j*9iWQ^GrK~A3GzBq!MJQu!etmM!oNjf*K
zqn^7@AQyj^KFO_6J-3(pp8O|05ljLiGZ{<)Q^DarpXXF{A!%zrpU4It3N)s2)VPhB
z7yOH=id1r&8H?&$8yXiS7d6yvsUvG^s^21kvt&~I`z6)X^f8}b7t#H*J<%Ec6#P^u
z&sijV6!xv00=H;Ap+p_gW2y;T+nTBeGwIzuhul&*T5FMRD<R8C-2WquypW4DqCzgx
zhzhw#BP!&AMpRkTAQx#wg<PZ&6><x)(N#Wo4EJ?q7R_(u<(8Ac;5YJe%gIQ|Z{+2c
zlaZ3&$V<5q$K}=}BPG9)ms_qDIlqyO`?__=`HgJca%++E8`-$!WJKjRLUYSCA{TnM
zqrNgy@*4rU^=(AXZv^C)lM#^L$j~h(BOAXFi(5`cHhv=@x15Y@Zj0c5mmudi@^b5I
zN6v4g<n{xZIrsaI&8<&n)BQ&3Zn+)E`Hj?%njF`Z<mi_-9GtKxv+cNvO44S|e<^#Q
z9XrSy3^Iz7^jc7*DE)SfjOZkN3CIXf(yxJx?nv?$j~ej_Eiq0;ek6I*B`YJ>m60IH
z?qnk)LXx~`=B)T3Z+1B=e#jeG&Wa!Q=b=vkB>P8fBz}|Zzpyz`kye@TPBOH-Z6N<O
zlgeb)U*b5aOzJDKnp7rlZAe*3Wl~?U7pd%HY$X1Y%D&1*Vl1ib$802ylFI(d<`hL*
z<<rTNhL-qrs-dNiFEI4w<O>ab9r<a7ejWMghJKJ-;wq{9b8HqV(klNh`C>y$eI-_s
zDx}_WJyM0(Sz;ckLi)xsMOqbo<jW0x2YI!j-$A~@(Emz)mZATLTx>^5h+oK?8l*&$
zjrb5LaS<E29w~7J8+mJkl*q7=w>L<M7qgMKI7o^2uvw)@EAemS7aICk<TaYEtRi1+
zXt9(02TQ7ycq(swkSe>_$hAq8H?fhoKuDGMvZ)mc`VlsDinJ=fM=s}+M7^`(N7Za-
zX&X|N)U{EOR#h|kIz#UzUvKD}$u}7KE#ysx{sj3(L;r|;lcv?m38ITMPJE<Ak=8h=
ztMmcVxD*?SiKKD2u#vb&8Yi}r_9Kn^8k=@STI2pe-l6I7bIG?DT5Pb@(0j-wj*-US
z!)BWzt??fw-)`t{lV4`&r^t6`dV=_)_$X<D*z5{L^6NkHD-C@I`BjE~kbI}1#m=3E
zewtkBMw%$?xJ!}NM6r|TB264()2&Er;%mv%hW-@!ZbScsT<SxbG>MJ02WgV{QI8_6
zNmBNGhQ5Y;zoB1G-fQT`$fXaECW+2|MXHcAU`Xj6gN7E<JlD|DEaK9n3GZMd#U@So
zJey%fS`&Ulen8Wcr;%T6Xz2zA4J|qk8Ctr&6qPjj&1|j}3R<cz$4HZZ#^!m7w5Ev8
z>kYk<{P~6!x46O3a?KG#i#cyJ^h4w~8Ty;#FEI4q$#2&5)Kkc%o}{Vb;xAOBHC0Uf
zB1218zSYq0C%?_m-y*-=(4tf1NYhSbBd$W4Ca!d+BCToCgm)SGW#lh0^asfAHuP7>
zUux+8B^No;^yzHGrAgBz^t@b=)^u^}R~TCC`btB;mHbtP{u24C4gG8K*J%2L$>d@$
z(g|YQ*D2CE;SzFjA<_xb&Tmkpb%I>yjfVa(`I`*=ZSpr8`cLHdYI?>T^0yeeo?OaA
znvr62pCYXpBjj&0w8*~Q(4Qd}pCirq0h{|3Y0dZ>`8zdzVv_t_hOQ%jx1q((?=iHr
z;d>1&`W`T}`0)D-Ej}#mN;*mG{GcMOlg=ZTwjrIgh0O;QX`Lj#{2@cXnOtl^I_Z;a
z#OFvSeTU6Q6ltCGXYz+Neez85j~aRv`Ns^sgZ$%$mUeu^&|*sov!s*%jg4G`bn?&G
zJgP`*W+nM!hF(toDML#;K5pnk<exUQw5QmYG*e_ht4M3+&&mHq)3YX$|Er<TA^)7A
zcalpvNV9HaBX%UslJ@+9BCT1%`=X)6hsFO$v&G-OtVnD23Ucvv((LVQzN$!Tw)FL{
z8Cu%>>xLHH-!Qba*S~9e&Pn9oH1x&fPZ)YPx%5xcoIBZkTanfrX=iC0(j4J^SCQ7-
z3iAIj^cm#eGjt>Q_YEz6CB8_SEB*UF6=}^Coj)|RT>nRg{tNkkX?ou2<UcmFw98Kn
zJw*QBhJGdaPYo??E^SPjC;FsqNb|?B`Gq2_`O?<EG_>gaA45x9|H{y>BmcFbrTw2Y
zwAfHUI%OIgX(!St=d$^&BCS)zCx2(?5%S*~`i<oOXK3-kKNwod_(x4ACy+}lASG9^
z`LiOe<mKdI7gF*DHh)#5m3%w--wZ8&A@P)y6n+0tq;={%@}~@4Oa8Q>X%}0Q)~PRt
zHan+21YKri@DVjcXZKXfA}`!aS}+$nVdz@uN<;64t}^s(&|-Je0{XhVkgsUkMZK8M
z&cbqN=`%u~0X@mkn_Mz|(9#D;3tt93#n7U2s-f{&`9X!Gh1fuTSRv^&>MlR9P;@=?
z3`2{~6AgVQ^ht((0QzJ@(}&~-7?MuIp7O&BNvES*{i`DMO6WO?ZJoXy8oNk3{W@r|
zyU_G;`EiD#KMQ?|q485Ysp&JQw|%Oi&w*ZGXwkXQ(APtsW@voLmcBtc<1^6MPSN<O
zy-3rGu$lb0L(-z9&}SOD8G4DK`=L1|Y0=%#%MAS?=;ekMAE-7oz9T;dk+c|n_F0B*
zg2on-7Vm>T+t4q8raqDuKL~xUp`U<0&(Qd_{J25Vnb=Z(7@_D|=v9VJL0@R-7eUt;
zT6C^9^w*%*82We6&(ZV}+E#u@A!!Nc$qy(LeJOOUp$|aU8T$3mYYqJ<G=3v#3H?-l
zWFcuOzAQhsP_)=~ouS*H*BkmE^aewVPHZG;>8GGK8k#sKKg^J{jJ_g2&`>n?lOJj*
zx*dA6p$DK_4K3}(^&~C(0Q4n>{&#53k+kg3&>fmyj{nLJJ0vZazOdEM(igCWq~+2V
zwi)^XX#7vo@+Y7#GxXn}CB~7e@lE-0lA@`r{P0N8;#XH1`lZlU8Tup8I}QC^=uSgF
z1x*`ET7mDY9}5YMUFAnfl2(XcbsPE)=(M4woVyMERp>p2{vGsQO`ml#bdRBFfBEs4
zq_fZ`KTcD$=<GGL*b}=b{<om1kEE4AegG$F<znbTL(^{ZgE&bm#g{UMehc)Fp{4H+
z8~PW}$VobTD)iNcz5x25p~XKB8Jb*vI49|B(Rr<*KL>rCq5lv1d73_FCN%Lv(mC`4
z`GK9Hv6=kPPSMggM-2Tz=o=0FJ?NV>eXjWV3k<ys`es8*eQz-|Hjp3XNjmox(DYA5
ze+>FoL;nc+Hcg+GfWF<(XG6c((D;S?cu&%KTwi`br|7ps-(~18K~rwU{}c4xnm&I%
zG=3)O{0-1AGqjZL9z(wh`sIdx9GbF9I{#PDuhjGf)1i@*bb;9I)rRhcevP5UpI>X}
zk3hf9&_9HxpG#ULc6)=Nmq5SK(3_#(WN6yZezT#aP46}ISE1RLwCa!0Z`JgL^PulD
zG%-egj40_s{7Zh6sA$S4KTcHiXQ1yl^zWhHsp%T=jdvNk2KwEG?u34ip=m?;;i9A(
z>0dz6--3Rhq5lE>eoe1l2K}I+i3jonM@g$kpz$q9tEC-3WN4}5hYkG~=!Z1DW&t!d
zm9%Cf^uvaxZ^;irC9R=N<cFb({xtN*4gG8AM>PGMlc7Ih=mzLd8e06}QBCKz;*jix
zKE_23+l9X<gWO!?{9bI4YpH}BZ5sY!3vy>57dmZ%TrF}phCK#Ht`51IBFNDO*3A**
z<Q{fwPOgI8Y;xBZ{||pmPx)Gr3w=zFTpMzs(*wv|f?Viy19DrD^Lz2ZU5}`8_+F&z
zmYN(fI(&MH_9!ViY!atq-vT}__padnSj{~uP9<r9NjzUEx5}t{MXgL*@@@%(uQ<gP
zP=n8>Nti+wKDKLWYI^#+dJlA`V-G2H_b`4@Zv3LRXIJbKrS22*kBIn1t-MmhPhDBi
z&B_cMOlS5FB|C;w{oScdH)~U<mC<U{YHzX6l!DK={9=mSNow>;B^?I_Wo5?L2TH*Q
zyz1!ki^=j5Uc5kg_SM2kxrM*0_wMZ*=x0CD!rwAmDt2Ys)R{On46hc5d9ejz3%D$B
zqUkiM3%U3)8CxK>Kx~0hvq0X2S*cY%zrO00kb7EMSsOns%{Neq?}>kyr(*Hb(h~QD
z!s^FQOA9R$?>q6LHhx+fJA=ytF29JMmb&ax>ZHprCd+fec)9OV_lVN2f5CF!4e|l4
zlCntrrcOyUcW7lRWuiy!64?bXLQjbWO2Yy&t5Ncwz%F{0srpK3IKWY><<6Z$!>Nq<
z`PfmrN}ys{3oTyE(3q&?7c;EVGq^|GxBvN$O%=wsq%(Wc$<_mh*}*O*)wQ)Xs~^!<
z@b&ENUHf~w<s;qOI{2(aQ8MF)B7V$>Ef8BE-vaTgBKh`+_hJjg7ARc{6#aWux~5Qr
zPwX*eW9sTueQ#=LC_PlYFO?~@$d0DAWXrZ4@?&v%b|XK+i~fZ$kq%Df@(yrrNY~WZ
z(h+<@eDrv?z~15E!I~8-_TiV+LkIe+y9WAJ3}yzp4|EL=t=QMSf5pn`l`Fajx`tMy
z276W<ht>%1HOFD4<0{1#h%Ml0fjAy`nk8n&7AQ#z5D$*{(Q!!{F0OQJf!G4aodx1}
zc-%E<T%p(ku>}s(0&zS%OvA;e#TJMyaNJoSetve`HECR-*aC-bfpLd@=J9<Z4;AIb
zRP}68&B{|<FCJ`HNFBd%?ZAQl?z%y~58##L{Z7T7$`;eh@62Vr)@@Cj8~P9Q@^y$f
z#TJMy5I@t8eLz`YVr+*}w?M<X<}FiN(!<Wm#PW__e}B5@<-8y}HT4gtGyUn|WaFX1
z-hs^MP7YEWA3K&Tphk1YQi0>L#ugZ33-I-j_%-7(w&^jiuH;`cj@M#1=6(2RRUlrA
z0n73Uy_0ea_|&H|y9WA``Ahg@f4gi=;RJzIYgyYL6XK{QJNs0Pa=Ly$b5t+->{jmc
zq_Vis{v+awF?a@3W{u^K%*rimVoTHJrk1+q>c;Jj#g&0mD_nI^Hcl?QQKkG<gQsDM
z_#11ZGT`wmEFDHav*)?L_(lAUwd1$3M_DuD7x6dNMrpU>S=@;iwehOK$8$4}x^6DN
zh*u3Bwe^nQ6I^}~uNr*(HgjCFh!)5_bV%0MwXbd6T=3K(qMBn@EdJl~*loL`QSzcE
zDssn&(~()=pTBq{&l2KQQL~L$@~fi8^HEt}h>3g)#Pd<uL*4Y)c;5Vu{tDMN6JqM>
zxz*a7LYc;L7mOFg-MjhC8Sljwh%FFXpoA=tn_jJ`wXAr0wS<~Jtg3RKjHg$_tW=uE
z<LTAXZ1<pAJMp46o?Z<yQ^_53`9(avT5_%LUtyPD#M7((W{QuLhy{wLSKHIQ>C{lV
zMC#9jx%k!IQfccb^>i)f5k)+fi7gOY;5fFxcz#oqsvbDp4?2ovazBi+N5<mkP_Cal
zS=LtjZhL&$b@?q|kL2$k@m~DW$q}2dSi!U6rIX|5^Q-YnX2mWh9DcevGdIjPKi$k9
z<>w;QKk=uV@~^p`R2QNk9sMbN_XSl^+>DrxEf8D4!vgU~bv=v{vtkRx7AQ#z6#b)A
zl2%ZaR)Z+l<Ft5f+|u=hxaMPMf%w0ZF*N2etcrWhC_h*pucmtpH}}{SJzh<BZ0s0o
ziGR})`#{NCAYM(k<XxcH042YgZv0F3tW%WyFWLETbu3<>XsK&!#;CPf!;U3!jFj;x
zPLIYG7)yVOrpxtg)aQgMi#2am%02VRQH3X!@`}AKTgK0s3mqfgk1cQ*7VwWWhoLM!
z<(RcV{M7iEZMv~4c>L6OtSnjbdg8lE$-6+w8$i~2tlB)#AN(szyQQUVRA0IDvTH3&
z`C?|Wxu<`>-*+#k*R`pqD_#mB^E#2_!`Dar4QtV}zG>a=>ODQXA$`-vy7pvK-{3%o
zPkVX^)xzA^*0{cU-{2mv;|?#9o_(3!)xbIDaB}(Ncgwc=hQm46eNHDk?H%p)Zr<V0
zqGwCv_AS+Whx?AC(WG8V&pzBNpdc;VlH!N~5=Kwo5t&)(SLN~airnSf)7R#9e5me$
zt^+=YBC|V@%nW6^BA?(RD0(DSr-F+V#h;a)uHMwpkW%TniPBz5&lvPmrDxw@I;f*Y
zuGh6agPs*K%&>Z?ewylP?MR-#YLj2sobzmpm@O^MYlCVn$C`U~nTRP>^OkODYhLGl
zB*%@UXN)3U>)MUU+?BnlmbPu7^=fM#*yVk8bZ#f2V;XrwVgjC8zoLHWQvcR65wmOQ
z(x6&I*ArZz=z0P>Aa}v2^%@LR6j@LDP@tY5+d0SdozmI!&cn(hkwxhl?Aq(CL36|O
zjJWg!wR~hfV{oTb^%@Ec;6YW+9(%UkafkNyhQ^Jy#&x0bXK47qnCKBhRb!;A!489H
zGv`zf1fLuwu8M~0!NDU6uAQbB)kio?5<M;I&fV5l?|0{(b&TJ+shTlYK{m=ex4)h-
zx^w?i?v%c@8s(ibR8MdR%tqc&J;67oQRoR&6j{$ReW&!X&#3Q|K6*yzBhDQ+(w#C)
z&lub(x7W9Zj<7{0dr$Ex(=mRh^r@9)jq*<Et4G4)Gj*qo(q5`O&!Ri!wx0fT&Q2a$
zb-v%7a<b|<!GSI}mPe7)&?{*@LH$pjjG6xlLiGd}D7v1&fH{itMEoBmtX|#eBYy0q
z>>T)?MYx?u9eI7~HG(6ID)NTu33-4<yW`NoPeoOEGU<S4UX~?F(nDrA@8!&fH)fHg
zw<qxb0@t$^9}DRMRS)di7f@WQb=N-Ue-vLmdhFbi&g}7-n5cTTjh)AIjJYeg>#R-n
z_6`j6CpV;feM5)#u%LF}2~vdT&PVu<kSahY+bI9N2A5VJ#WVIUZ%uNq^|@J`@NDyp
zQ9cjV74$I0DF3VS*K;iYS0%Ob8D}YvkNW&ER8Pcvd#E1Y4ysx>J4OiC6R0S%o@e^M
zDxZ3d`rhuNX9O#b>fRovC;Y#vq^MZl>d`?B>)H0-kQ8f7#t6JG^KAe9M5X?|+59s7
zZVyW;Yof5Vkedl_ZBDM-Es{M6xw#xzmy^pLa?4xD&4aN%C+Dkg6>>NE$Yph+uZEqQ
zBgm~r?nM#g)*yFlPR@II7_NH}a<}K?^6J4Moshd2>b3}SwaBF-$jRFXca5Q3)cVG9
z7``ykzW*${MD_cUlFPM^9_0iM269gfd`3#5&FBeKlpR%s>3OC{6+Yz|^{B!}&xm6m
zW=Dgb6@}R+t0#O^!4-p3{H#{quap1#yzLY}tM#^va68SRv6$72pVb;;dS=;(;QM52
zl#w?~PyDRb^I880t)uR6@w3_h590sA_*t!IKMrShIvy53tMxZlng5~qNNj=F0wrbv
z9xL!jPAbi(AmS8TAZG!2P}`U4>CbUWkn(;gTY`qrkMWP0561A2d}2$}=BAdq=IX}n
zjh+owD_qsUY@FOvGK6X8<}`R1GFit{&6}{bt*Lr2liuBP$Xkh?y^t83H#GB})bLgj
zb7KpXt_9++%#?21$2E^F5L+PM0_BWG7<)Jah^EGtj(mZ5uhcA1@@o#qpZ`3%E^k|2
ztC2d_bp3n8+h0y#;vY&kZCT^h%jL<|!~L9c_CuwjwxXeV{r0Z?J>6}YfqmOLWR7|)
zmOyo?6z8!8Vhh9;h%InTSs=v{WJ^fd(Q(03H?PWUX||Gk`}z;C?e5*f_8^bMlY28=
z!)$kVXV?y0&2~)gFJ<~Uq*pl(n<qD1dA7(SQELK_C!I3c!_*JAZSK2321v4$>m(pD
zlYxBhTi)NB2Bw1(zzlFAI0>8#<dyANU^bWo<^p-`dOjDM0cL_(U^bWw<^egj5S#%P
zfiuApuoNr<%Rw!u18YG8XawuQMz9HN2CbkCTmss`7H}!oK6)uPbn&}JJjU>|Ow5lh
z5L+O&z;SPZqdLZL%@M|*vN-NtDX!o%VS(^b-7`^&_!|Fg3&bC$%eFxLVLD7PslByz
zOV%V1iFHlQ@{g#!zI|((IZ$49P+shrD2KQ?pKL@HO3pvowUYCX_G+`g$s9jJa^#);
z&4%A<@-~xS;<{AX^p=k1WZmYDCf3>5l}TlK)M_<Ospgtf=9zq^$!AGUQR-Z(?D6_X
zLmdrjrC-;PiUdEVZ<QItDK2he^0stpzh2&>JE;ykmtA5mv()6vOupRY?IxcgImOs$
z_Gg=XzR4Gv{7jQ8%VF#~v%l8l4JL0i`FfK(mfR=}!+FkiqF%ql=uzbm9g^hjSTF;e
z3}%8^U^bWw=7ISj2^N5b;52YLI0GyKi@}*-30Ml2f#skYtN>?$mEde}4mcN_2hIl<
zfK}i^P@|s9P$qlQii3yv+u3!nt9tL=zJY#rHl$PC>C6zn#pBnJdR|3tYpz?HJn>;a
zH!;kv|D;X)97D_%r`Q6q1!4=7qy>)ZbBy@@Qj$IuS30&pY=PJUVu7Q2e{nr0kF6bB
zAhtk>TOf`HCGG%m^<xXTEFkZ?#i^t%5P!D3q?>;%EAN_S8B4XXuGj*{j0NJ)mIpLd
zC&%K?mirq>>@%jHYl%Nw?rZF4<;M`>&z5^GNL_1Mu{!>2xsN})K7kc~w%o@?LF`Tr
zj%noW3c8x>6LY?;<t)b>w9NZx^aK|uyF7Ggc>>qv&n@sDt|w4Y<nlbz3;g@kOMW2e
zeC{Wx<-_VV;?fh;@{#p;#?xF0qkL#h)hqsNxlhZF`eUrVdZbmx<a0=(C;n`C&dEnb
zbs}BI@1sX`l83P98RZA|d_N&E$`9=M>p7M`u;*K=QQj#-^+dc=hUy8t!R79h;d%lU
zW$y%GdY<V!rB8WAeW&!%GeZAz?zoZelwo?t;7%ET3Mc*)4sLl^sneVle+tLXeA!4B
z@Zk^@5xN2cW-juE>j_j8xjgZwaN<wlcsRA|nN5Hv#-GCRFkM7eCvqwx#Gk_PwV3{B
zaQxYFZv(mdsPEU6TaM-bs-#vvBV&Cp4H{d!o<D}_iTGbtsGh)Ea_-(9t|w4Y_TC<*
z=b8Sm%BMV2ok+)rLA^a$bHnO2;?fh;@{#p~|5sJIpDi!5sx}Ywr-RzdvRhi(LTng#
zzB*XTc4O-5l>X(qkGkn~ZEelrx`HJ-IXqTR&*C=){B13E9@F`%_)P&{W5;g_q<n4T
z9H`#Yv)iG)@{M)v$)-MeI+XSdKegth>V1RhJzfe7FS4HaO#vS(x<<6VGf|_QZ}8VM
zMkC|awHuQ@)ycA3+O`=FOZt|lt$AQq_JqSEIyrAlBX97)I5(p8t<@;!KSK2c7brXO
z3)K@iz#c`t1_KpEF3&SPQundXs7LBPdPeZWQO$pZ>G6!qT*RdKO##Oe-g#T&y3qJD
zG<+a5{zTCuC5Yb?@NS1r*!+{++7a+b%bN9U`(G!1Q^315h1&`Avnbi~PuV+x&+{xf
zb5zf?LiI$vQ-<mZyusz}l;L^;6-BnsGkvG@sn@9Qls<Y!oOb8gSfpoKVS2{kP8q)`
z5WguP@#t_;r#UHpQ^3!9*+>^Kud43^fdMlYdBgPtDvDg5_)UTMO#u(5c0IER@Wl8{
z0T0tfWOX8^B0~J8fUm`5>T!8%z`s=|9OM60=?Z$(f0WNd{q>B|^U#0F^GB(b&&YUG
z|5b(RiTGbtsGh)Ea_-(9t|w4Y_TC<*=b8Sm%BMV2ok$nIDd5r5_0xvTP$t+3J<rT%
zcADKWc}^F<DUfem*PhrpepA3@kOETdGp6^8_)UQV3+Hy@HwEH11^V}Uyx}nC7#|t?
z%pEe*($>5#=l|Z6>%UijJ!3R7j^7kmy43&uhf&Ud__mg#CwP#Q9T|t}2^?VOM(W{u
z0u@Cr&oezz_o>&YN9sO$M(CF6KeVXxA7OgNVE#juCtg#)$I|hd0^WBL&FwS?$7242
zf0E-j1$>R|x^w$H`H^3M)HnDlh<KnAxiS48CHTgayQBEl%DKY@%@@0V{SvAtxIo!E
zQ>dQ68{8=B74e<Au<|_9cS@h~jQURLqh|y^9MzpNOwSnHDdRT<;x`3w%fm{Y=B%-}
zQ|d2eGX3cHBcjQA79hBw*+>^KkE!)UjJ%<GB1Ya&JrN^sxSl{ok?j+|DG<LY;L+7w
zBenofjNcUSFkM7eCvqx6#cvAuT1=)M<2MET%;V~#+E5;X$Mk<yJ~Pi!%~9RkL-j<w
zw}<Kpyd~%Us|wc>s3?1H57YBZ|5xQxo~cfI#cv9D^w4MNn*!GKRhCt2^$iUd{O|di
zC6;xf@C#P99NHouK!@L-U&%f2CmB8EKhGW8ivFq*t;fx`7h6`D@X_Pum*3C1i{bYa
z@V|=uvcAEg0{%^`K`^enZ+H*obnB^f>B*IbvaDfmTwkiUpkCuCr}gr_RN+dV<G;xF
z-ydsh9vZgnE9#J0q_s_-NuKN*9uhsS@1))Se#@%(cHgkl<Kid&j@<L$59P~O9%6qg
zeCp-aQziBt?i=ovm04YSCjFUx=ep(4CcV7fbzK*K+*$;j>$>=rx59U>>*A05Bz)((
zF8<{Ig}-VrliqFD{NpO<Cje=J*kOX^KlOU(Zwc43Drqlkw&s82G3cKH(nEJ4eyiqx
z<}w&RQ*7&6{HJn;(Z3Vk&lTUk6@GGw=D$JsztHj%PN!X}H2+5r!TY7=r;smCYW{~G
zg!ez1Un$3p{`Wiy{VT(Nirkd{jw#T;*8Hk*<dc-1)$8k_<s4Gg3^tRs{`XZt|3<i$
zHDxj7snqiIb6|+QNL7DjbCD^}jnKapE_`_ks`adH7d!k;xIEWfg`V$f`B#e%{9duG
zpS*#3ovrz={4Bix)BK-(#j+CPH2?YEhxZ4~{}t_EPgVTY<B_rcsQC8eB=T2i{)9*1
z{YmkyUrRd}{l9oMwD=h+PIw+=-J<2^KwE#&{Moc`xv}T_q+duqNt2hc*=6)!2mLqU
z(zPbA(f+f#<|6373m1MP8*Ts9<w@v&0Mg|DV59Y~t~(i8+KDs{`#ADFV#B9}iz`>N
zG3_;jHnbI&5yW(e&+GEc{XBeg;EIQ#XKMat{KPhWZ0hHbzhCidZn^`$=>t=1;8$z@
z_o<UDZBM%UX1b@oZq0ihfS=I(C)blN(E6vYfnTZl)5K23ZvXo)@T(NxUhq9~-CtHO
zq71h9A1SqgjnV(ekKvD3Y<q#U=gV|?K0%#qu`k)eTiNc@*G-=X!+f)C>R$M!Ki+#S
z{7E8iSzmZ0+aFh7wJ@v4dIH;;{<wPkf5M-v#LE)sbNb`EI^a)HeCta5!Su(~wf_n|
zRr9~MJ=-5wPohuQ(=>nTP2|Q7?-E~?b|Ou~=1%+0I0XL$#kQuslHAzgsjtJAen^`3
z7B;3oescu=iNdw4?qO)%A8VeVjqH;&f7<)WO@F-i9q`4sNL$4Ira#VF41cC#TmLC#
zF#YlIFF?;yeEV|xtJ5DpDCM86`8!X`_Q%x{3+*|Y-%Y=8`s0Q4YkRKdr`KfrW6gbE
zhCfg9_r03j^v9o_34gxf<HJsW?A!wX6wS|Y-1NuQwbH&x#ka1a3{HRC@Mrj^YW`%g
zr-|ne?}op?@F|01|Bmm%$0sCh`6V0EAD526r=F6gJ;}!O-?_E$iOZ6<NPji$^_N${
zKSQyt&K=~YKVJSD_=_}u1phSsvF5*t@iIP;l%_7GKd#==4j)@c+A98T`s1(O4u6Sa
zTR%d^>5re-3V*5M+t+R<H~n$pM)<S`$-Y+fn|fLJvc25!?;<z-<xhWyU#<CT=u=L;
zeoid3R~Y&G$#s8Rz2m*`&(i$sYRFB0Ty{D9m74#!__c|LLobKF!SFYcYkSr_@+kZ!
z&Hu`~>5rY#udNB0OW?~rgY?_$x$mnuZ%ugXC*X^H$-Yfp9Qg{$Xmf2zf4DOzzf$ac
zg<{*kxgaP1_SeI|QuBX~|2TRs&A{KO`HxGSQ|)VQ{=pC6rxf4%%Ny`#U7pP!kp8|)
z%YQ}u#mMjZH2f|t{}i@z<ZrnOez%bq`)T>sNiT(;HhlVvqvyYgVfG%yx2i<{%)S8`
zH@ef#huL$+OC~nU@dxmiid)S%&BdRzmV=Cc)Huz>uay4ijF(*eiC=_&t{JE0_;xvM
zVd|Bb$35J}za{Owkd5*yE7AWLd|h69A@M|yi>$<R8sP5}Y1|I~)N$BK+|UnWzv7pj
zjvwkcjGhm{?^S&3Wp_iXagmj{a3*x0;@jiClx_FK2Y&(|T_k%Rv>q>6iCrIqF`)R?
zPOhu_g;gnIF?&$+r%xtV{%IxNi_h54HS%|n>-I`)`YwEYMbggKvQcr>O8jv?{2|4*
zK1Dp%@!3k;CjLphmb6>qkc!V%;&ab|e?YOVo%fR)J-e=k4@ma8Tvx|uD>3v|=!1%H
zJ<j!Ye6|uR@e%uw=707++C`0*ti(<DvVD!_fBrqt+HVsb-Oy5hvg<@%jhC#-%I6D1
z%TJn0uHv(mcp+_QKTq-P8_9Hhwh|8zW9{p;{FBJ&_-rK>JPjXRl5QMfqsB{C;?Y0A
zzd^Y0|BH=^OIG3yKZQRcT>gs`|1|c0(=Xx61xdR**%<qOPi%XWa4qY{^eG*0twi5b
z@L!<V_N4DatMQMOI5ZpjX3amff?SP%ti+~T__rv&b>kn&RlKzlcdmo~LdCbw$FFs~
zwJPU)6#k2}{8VXo6>qIX<D1~$s`*tr$W6We_D%S=Y5p|v7t=59Y=eKh=1+Zu+|=tK
zX`>fw{%-MK6>qJ|nNPsKL-Tijn_R_PEAcaIXcO-w?Ud^}aiCJMWMjW`0sX@He=Wzi
zULxgn{%>;etI(N^11|oghu|+WaUjRH*VN_Wz}M-6w)7LyJ+ES8>f6)~|0RlT*Ad&D
zIB<OxeEKuV-t?VZ99ShjPfR40HR8ig9C-H^;lE7r?Nh~8CJx*o?R$^rU-Ii*9QXn(
zn|qIBtLT4D9B91=#w!%xy5~W1(_U*5@L#F<lf+N7A6A~)0blAvy6H4FroG-)3t!?U
z>7LKBG5z<W)YX2CV%uB)0j<VqR^`-QXz?4;<8#^QI8a#$&wia^Tlai}+~`?BpR-@D
z`1ZDP=<llgW1{`9&~MQE$G7L=K>9cE->CVY#lM_5@b}Na$45!_qd#P0;=o<l%6_x3
zE&B%p**K6`+XUlY#kUA8**NevVwL?C#kc?Qkz5?O`7HRvCX)Sm+Q-C!%DF#<ai8K_
zKUqv};=t*<;lEAu@A(nAwtr<MwEcF?pY$ZTi31zyL-sq2JTb(v|9N8D`xW2bPJege
zz-51i|4z-njPsm0Z~))4-=+CG9wj$%;D;07GyahD<SaHO4x~N>A3r162hPsMfy7Po
zVZ2xItv&FaII#14_z!4)Y6-dVtG8VY|9zT&lgOKXakKdC`!&CFGr94rw|oV@_$ApB
z6WQuGkhn(r*9SEJQ{s0f4(#rR|3SsK9^XN(uWLO%6F&D&lD%5`!BxtC?Adq1_^{?5
zq%T<aDZVu*c94EfHbLxc^fVDeY}#A+my1IfJ(EQL!<v6k;)c=lFxRw+l_Y!ec(z)P
zJ^o4<AJhCpFC^D`tS70v{c*$p3Axd8rL?caN3sP{KU1Dv_@Mm>&A&$Cn9);D8SPJM
R{{7D<H+nYWBet}+_5c1c*GvEa

literal 0
HcmV?d00001

diff --git a/samples/erase/makemac6.mcp b/samples/erase/makemac6.mcp
new file mode 100644
index 0000000000000000000000000000000000000000..c4469090afaff0c4361ed99c56f78c096df16d08
GIT binary patch
literal 177358
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

literal 0
HcmV?d00001

diff --git a/samples/erase/minimal.def b/samples/erase/minimal.def
new file mode 100644
index 0000000000..df6a795efc
--- /dev/null
+++ b/samples/erase/minimal.def
@@ -0,0 +1,7 @@
+NAME         Erase
+DESCRIPTION  'Erase wxWindows application'
+EXETYPE      WINDOWS
+CODE         PRELOAD MOVEABLE DISCARDABLE
+DATA         PRELOAD MOVEABLE MULTIPLE
+HEAPSIZE     4048
+STACKSIZE    16000
diff --git a/samples/erase/mondrian.ico b/samples/erase/mondrian.ico
new file mode 100644
index 0000000000000000000000000000000000000000..2310c5d275a87af295d5ea8dc79ea417a5e74c53
GIT binary patch
literal 766
zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0Z<M**w4TKL=5})Lnt5#WHKB$
zaDbtqp#doIAB-6O{|B*v7zjZ^AOa2W|NsACHyAJ}De?dRKnp(HN~rljcR;{k;{zQE
i@;}UZ|9Q?Fpp*~yJCwmWbLIrN`9Qm9%}2L?p!oo$cZ4ed

literal 0
HcmV?d00001

diff --git a/samples/erase/mondrian.xpm b/samples/erase/mondrian.xpm
new file mode 100644
index 0000000000..409f27a843
--- /dev/null
+++ b/samples/erase/mondrian.xpm
@@ -0,0 +1,44 @@
+/* XPM */
+static char *mondrian_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"32 32 6 1",
+"  c Black",
+". c Blue",
+"X c #00bf00",
+"o c Red",
+"O c Yellow",
+"+ c Gray100",
+/* pixels */
+"                                ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+" oooooo +++++++++++++++++++++++ ",
+"                                ",
+" ++++++ ++++++++++++++++++ .... ",
+" ++++++ ++++++++++++++++++ .... ",
+" ++++++ ++++++++++++++++++ .... ",
+" ++++++ ++++++++++++++++++ .... ",
+" ++++++ ++++++++++++++++++ .... ",
+" ++++++ ++++++++++++++++++      ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++ ++++++++++++++++++ ++++ ",
+" ++++++                    ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
+"                                "
+};
diff --git a/samples/erase/mondros2.ico b/samples/erase/mondros2.ico
new file mode 100644
index 0000000000000000000000000000000000000000..8b0e58c0d7ba2fc9e51c6fa8bd97f4e77a23c9ad
GIT binary patch
literal 996
zcmZ?v^kZOP5CFm_K-vL_6`(XD10#@y379a2P(=R!|IgrzFcoNs15jQ8iWwPLfGpBM
z14s*yXn-;rpqvJvz?m~=82*FgfdtTUFylXz19HtMKn(%@|NlR{0|TyAtN8zapf(@H
sHmLc)cz}SR#s_)^6h1KL|L2@JfmA+9cmO#(XU-gen+G(T+I)2T0H9%&e*gdg

literal 0
HcmV?d00001

diff --git a/samples/splitter/splitter.cpp b/samples/splitter/splitter.cpp
index c28422a5a8..a4f8497aad 100644
--- a/samples/splitter/splitter.cpp
+++ b/samples/splitter/splitter.cpp
@@ -90,8 +90,8 @@ DECLARE_EVENT_TABLE()
 class MyCanvas: public wxScrolledWindow
 {
 public:
-	MyCanvas(wxWindow* parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, const wxString& name = "");
-	virtual ~MyCanvas();
+    MyCanvas(wxWindow* parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, const wxString& name = "");
+    virtual ~MyCanvas();
 
   virtual void OnDraw(wxDC& dc);
 
@@ -146,7 +146,7 @@ END_EVENT_TABLE()
 
 // My frame constructor
 MyFrame::MyFrame(wxFrame* frame, const wxString& title, const wxPoint& pos, const wxSize& size):
-	wxFrame(frame, SPLITTER_FRAME, title, pos, size)
+    wxFrame(frame, SPLITTER_FRAME, title, pos, size)
 {
   CreateStatusBar(2);
 
@@ -168,7 +168,7 @@ MyFrame::MyFrame(wxFrame* frame, const wxString& title, const wxPoint& pos, cons
   m_splitter = new MySplitterWindow(this, SPLITTER_WINDOW);
   
   wxSize sz( m_splitter->GetSize() );
-  wxLogMessage( "Initial splitter size: %d %d\n", (int)sz.x, (int)sz.y );
+//  wxLogMessage( "Initial splitter size: %d %d\n", (int)sz.x, (int)sz.y );
 
   m_leftCanvas = new MyCanvas(m_splitter, CANVAS1, wxPoint(0, 0), wxSize(400, 400), "Test1" );
   m_leftCanvas->SetBackgroundColour(*wxRED);
@@ -178,9 +178,10 @@ MyFrame::MyFrame(wxFrame* frame, const wxString& title, const wxPoint& pos, cons
   m_rightCanvas = new MyCanvas(m_splitter, CANVAS2, wxPoint(0, 0), wxSize(400, 400), "Test2" );
   m_rightCanvas->SetBackgroundColour(*wxCYAN);
   m_rightCanvas->SetScrollbars(20, 20, 50, 50);
-  m_rightCanvas->Show(FALSE);
+//  m_rightCanvas->Show(FALSE);
 
-  m_splitter->Initialize(m_leftCanvas);
+  m_splitter->SplitVertically(m_leftCanvas,m_rightCanvas, 40 );
+//  m_splitter->Initialize(m_leftCanvas);
   SetStatusText("Min pane size = 0", 1);
 }
 
@@ -257,7 +258,7 @@ void MyFrame::UpdatePosition()
 }
 
 MyCanvas::MyCanvas(wxWindow* parent, wxWindowID id, const wxPoint& point, const wxSize& size, const wxString &name ) :
-	wxScrolledWindow(parent, id, point, size, 0, name )
+    wxScrolledWindow(parent, id, point, size, 0, name )
 {
 }
 
diff --git a/src/common/image.cpp b/src/common/image.cpp
index fbf84266bb..d1767d1d04 100644
--- a/src/common/image.cpp
+++ b/src/common/image.cpp
@@ -229,12 +229,12 @@ wxImage wxImage::Scale( int width, int height ) const
 
     for (long j = 0; j < height; j++)
     {
-        long y_offset = (j * old_height / height) * old_width;
+        long y_offset = (j * (old_height-1) / (height-1)) * old_width;
 
         for (long i = 0; i < width; i++)
         {
             memcpy( target_data,
-                source_data + 3*(y_offset + ((i * old_width )/ width)),
+                source_data + 3*(y_offset + ((i * (old_width-1) )/ (width-1))),
                 3 );
             target_data += 3;
         }
@@ -1144,7 +1144,7 @@ unsigned long wxImage::CountColours( unsigned long stopafter )
     wxHashTable h;
     wxObject dummy;
     unsigned char r, g, b;
-	unsigned char *p;
+    unsigned char *p;
     unsigned long size, nentries, key;
 
     p = GetData();
@@ -1179,7 +1179,7 @@ unsigned long wxImage::CountColours( unsigned long stopafter )
 unsigned long wxImage::ComputeHistogram( wxHashTable &h )
 {
     unsigned char r, g, b;
-	unsigned char *p;
+    unsigned char *p;
     unsigned long size, nentries, key;
     wxHNode *hnode;
 
diff --git a/src/gtk/win_gtk.c b/src/gtk/win_gtk.c
index 2e69c20eef..96358744c4 100644
--- a/src/gtk/win_gtk.c
+++ b/src/gtk/win_gtk.c
@@ -582,6 +582,11 @@ gtk_pizza_realize (GtkWidget *widget)
     widget->style = gtk_style_attach (widget->style, widget->window);
     gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL);
     gtk_style_set_background (widget->style, pizza->bin_window, GTK_STATE_NORMAL );
+    
+/*
+    gdk_window_set_back_pixmap( widget->window, NULL, FALSE );
+    gdk_window_set_back_pixmap( pizza->bin_window, NULL, FALSE );
+*/
 
     /* add filters for intercepting visibility and expose events */
     gdk_window_add_filter (widget->window, gtk_pizza_main_filter, pizza);
diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp
index 0e2f089cf7..1e58a816c7 100644
--- a/src/gtk/window.cpp
+++ b/src/gtk/window.cpp
@@ -19,6 +19,7 @@
 #include "wx/defs.h"
 #include "wx/window.h"
 #include "wx/dc.h"
+#include "wx/dcclient.h"
 #include "wx/frame.h"
 #include "wx/app.h"
 #include "wx/layout.h"
@@ -550,11 +551,11 @@ static long map_to_unmodified_wx_keysym( GdkEventKey *event )
         case GDK_F12:           key_code = WXK_F12;         break;
         default:
         {
-	    if (event->length == 1)
-	    {
-	        key_code = toupper( (unsigned char)*event->string );
-	    }
-	    else if ((keysym & 0xFF) == keysym)
+        if (event->length == 1)
+        {
+            key_code = toupper( (unsigned char)*event->string );
+        }
+        else if ((keysym & 0xFF) == keysym)
             {
                 guint upper = gdk_keyval_to_upper( (guint)keysym );
                 keysym = (upper != 0 ? upper : keysym ); /* to be MSW compatible */
@@ -654,11 +655,11 @@ static long map_to_wx_keysym( GdkEventKey *event )
         case GDK_F12:           key_code = WXK_F12;         break;
         default:
         {
-	    if (event->length == 1)
-	    {
-	        key_code = (unsigned char)*event->string;
-	    }
-	    else if ((keysym & 0xFF) == keysym)
+        if (event->length == 1)
+        {
+            key_code = (unsigned char)*event->string;
+        }
+        else if ((keysym & 0xFF) == keysym)
             {
                 key_code = (guint)keysym;
             }
@@ -732,7 +733,23 @@ static int gtk_window_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_ev
     
         wxEraseEvent eevent( win->GetId() );
         eevent.SetEventObject( win );
+#if 1
         win->GetEventHandler()->ProcessEvent(eevent);
+#else
+        if (!win->GetEventHandler()->ProcessEvent(eevent))
+        {
+            wxClientDC dc( win );
+            dc.SetBrush( wxBrush( win->GetBackgroundColour(), wxSOLID ) );
+            dc.SetPen( *wxTRANSPARENT_PEN );
+            
+            wxRegionIterator upd( win->GetUpdateRegion() );
+            while (upd)
+            {
+                dc.DrawRectangle( upd.GetX(), upd.GetY(), upd.GetWidth(), upd.GetHeight() );
+                upd ++;
+            }
+        }
+#endif
 
         wxPaintEvent event( win->GetId() );
         event.SetEventObject( win );
@@ -853,7 +870,27 @@ static void gtk_window_draw_callback( GtkWidget *widget, GdkRectangle *rect, wxW
     
     wxEraseEvent eevent( win->GetId() );
     eevent.SetEventObject( win );
+    
+#if 1
     win->GetEventHandler()->ProcessEvent(eevent);
+#else
+    if (!win->GetEventHandler()->ProcessEvent(eevent))
+    {
+        if (!win->GetEventHandler()->ProcessEvent(eevent))
+        {
+            wxClientDC dc( win );
+            dc.SetBrush( wxBrush( win->GetBackgroundColour(), wxSOLID ) );
+            dc.SetPen( *wxTRANSPARENT_PEN );
+            
+            wxRegionIterator upd( win->GetUpdateRegion() );
+            while (upd)
+            {
+                dc.DrawRectangle( upd.GetX(), upd.GetY(), upd.GetWidth(), upd.GetHeight() );
+                upd ++;
+            }
+        }
+    }
+#endif
 
     wxPaintEvent event( win->GetId() );
     event.SetEventObject( win );
@@ -2578,6 +2615,10 @@ void wxWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags )
     wxASSERT_MSG( (m_widget != NULL), wxT("invalid window") );
     wxASSERT_MSG( (m_parent != NULL), wxT("wxWindow::SetSize requires parent.\n") );
 
+/*
+    printf( "name %s, x,y,w,h: %d,%d,%d,%d \n", GetName().c_str(), x,y,width,height );
+*/
+
     if (m_resizing) return; /* I don't like recursions */
     m_resizing = TRUE;
     
diff --git a/src/gtk1/win_gtk.c b/src/gtk1/win_gtk.c
index 2e69c20eef..96358744c4 100644
--- a/src/gtk1/win_gtk.c
+++ b/src/gtk1/win_gtk.c
@@ -582,6 +582,11 @@ gtk_pizza_realize (GtkWidget *widget)
     widget->style = gtk_style_attach (widget->style, widget->window);
     gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL);
     gtk_style_set_background (widget->style, pizza->bin_window, GTK_STATE_NORMAL );
+    
+/*
+    gdk_window_set_back_pixmap( widget->window, NULL, FALSE );
+    gdk_window_set_back_pixmap( pizza->bin_window, NULL, FALSE );
+*/
 
     /* add filters for intercepting visibility and expose events */
     gdk_window_add_filter (widget->window, gtk_pizza_main_filter, pizza);
diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp
index 0e2f089cf7..1e58a816c7 100644
--- a/src/gtk1/window.cpp
+++ b/src/gtk1/window.cpp
@@ -19,6 +19,7 @@
 #include "wx/defs.h"
 #include "wx/window.h"
 #include "wx/dc.h"
+#include "wx/dcclient.h"
 #include "wx/frame.h"
 #include "wx/app.h"
 #include "wx/layout.h"
@@ -550,11 +551,11 @@ static long map_to_unmodified_wx_keysym( GdkEventKey *event )
         case GDK_F12:           key_code = WXK_F12;         break;
         default:
         {
-	    if (event->length == 1)
-	    {
-	        key_code = toupper( (unsigned char)*event->string );
-	    }
-	    else if ((keysym & 0xFF) == keysym)
+        if (event->length == 1)
+        {
+            key_code = toupper( (unsigned char)*event->string );
+        }
+        else if ((keysym & 0xFF) == keysym)
             {
                 guint upper = gdk_keyval_to_upper( (guint)keysym );
                 keysym = (upper != 0 ? upper : keysym ); /* to be MSW compatible */
@@ -654,11 +655,11 @@ static long map_to_wx_keysym( GdkEventKey *event )
         case GDK_F12:           key_code = WXK_F12;         break;
         default:
         {
-	    if (event->length == 1)
-	    {
-	        key_code = (unsigned char)*event->string;
-	    }
-	    else if ((keysym & 0xFF) == keysym)
+        if (event->length == 1)
+        {
+            key_code = (unsigned char)*event->string;
+        }
+        else if ((keysym & 0xFF) == keysym)
             {
                 key_code = (guint)keysym;
             }
@@ -732,7 +733,23 @@ static int gtk_window_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_ev
     
         wxEraseEvent eevent( win->GetId() );
         eevent.SetEventObject( win );
+#if 1
         win->GetEventHandler()->ProcessEvent(eevent);
+#else
+        if (!win->GetEventHandler()->ProcessEvent(eevent))
+        {
+            wxClientDC dc( win );
+            dc.SetBrush( wxBrush( win->GetBackgroundColour(), wxSOLID ) );
+            dc.SetPen( *wxTRANSPARENT_PEN );
+            
+            wxRegionIterator upd( win->GetUpdateRegion() );
+            while (upd)
+            {
+                dc.DrawRectangle( upd.GetX(), upd.GetY(), upd.GetWidth(), upd.GetHeight() );
+                upd ++;
+            }
+        }
+#endif
 
         wxPaintEvent event( win->GetId() );
         event.SetEventObject( win );
@@ -853,7 +870,27 @@ static void gtk_window_draw_callback( GtkWidget *widget, GdkRectangle *rect, wxW
     
     wxEraseEvent eevent( win->GetId() );
     eevent.SetEventObject( win );
+    
+#if 1
     win->GetEventHandler()->ProcessEvent(eevent);
+#else
+    if (!win->GetEventHandler()->ProcessEvent(eevent))
+    {
+        if (!win->GetEventHandler()->ProcessEvent(eevent))
+        {
+            wxClientDC dc( win );
+            dc.SetBrush( wxBrush( win->GetBackgroundColour(), wxSOLID ) );
+            dc.SetPen( *wxTRANSPARENT_PEN );
+            
+            wxRegionIterator upd( win->GetUpdateRegion() );
+            while (upd)
+            {
+                dc.DrawRectangle( upd.GetX(), upd.GetY(), upd.GetWidth(), upd.GetHeight() );
+                upd ++;
+            }
+        }
+    }
+#endif
 
     wxPaintEvent event( win->GetId() );
     event.SetEventObject( win );
@@ -2578,6 +2615,10 @@ void wxWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags )
     wxASSERT_MSG( (m_widget != NULL), wxT("invalid window") );
     wxASSERT_MSG( (m_parent != NULL), wxT("wxWindow::SetSize requires parent.\n") );
 
+/*
+    printf( "name %s, x,y,w,h: %d,%d,%d,%d \n", GetName().c_str(), x,y,width,height );
+*/
+
     if (m_resizing) return; /* I don't like recursions */
     m_resizing = TRUE;
     
-- 
2.50.0

