*****************************************************************************/
// needed to resolve the conflict between global T and macro parameter T
-#define _WX_ERROR_REMOVE2(x) T("bad index in " #x "::Remove()")
+#define _WX_ERROR_REMOVE2(x) wxT("bad index in " #x "::Remove()")
// macro implements remaining (not inline) methods of template list
// (it's private to this file)
public:
wxCharBuffer(const char *str)
{
- wxASSERT_MSG( str, T("NULL string in wxCharBuffer") );
+ wxASSERT_MSG( str, wxT("NULL string in wxCharBuffer") );
m_str = str ? strdup(str) : (char *)NULL;
}
public:
wxWCharBuffer(const wchar_t *wcs)
{
- wxASSERT_MSG( wcs, T("NULL string in wxWCharBuffer") );
+ wxASSERT_MSG( wcs, wxT("NULL string in wxWCharBuffer") );
if (wcs) {
size_t siz = (wcslen(wcs)+1)*sizeof(wchar_t);
extern const wxChar *wxEmptyString;
-#define WXDIALUP_MANAGER_DEFAULT_BEACONHOST T("www.yahoo.com")
+#define WXDIALUP_MANAGER_DEFAULT_BEACONHOST wxT("www.yahoo.com")
// ----------------------------------------------------------------------------
// A class which groups functions dealing with connecting to the network from a
// Sets the commands to start up the network and to hang up again. Used by
// the Unix implementations only.
virtual void
- SetConnectCommand(const wxString& commandDial = T("/usr/bin/pon"),
- const wxString& commandHangup = T("/usr/bin/poff")) = 0;
+ SetConnectCommand(const wxString& commandDial = wxT("/usr/bin/pon"),
+ const wxString& commandHangup = wxT("/usr/bin/poff")) = 0;
};
// ----------------------------------------------------------------------------
// template classes
// ============================================================================
-// resolves the name conflict between the T() macor and T typedef: we can't
-// use T() inside WX_DEFINE_ARRAY!
-#define _WX_ERROR_SIZEOF T("illegal use of DEFINE_ARRAY")
-#define _WX_ERROR_REMOVE T("removing inexisting element in wxArray::Remove")
+// resolves the name conflict between the wxT() macor and T typedef: we can't
+// use wxT() inside WX_DEFINE_ARRAY!
+#define _WX_ERROR_SIZEOF wxT("illegal use of DEFINE_ARRAY")
+#define _WX_ERROR_REMOVE wxT("removing inexisting element in wxArray::Remove")
// ----------------------------------------------------------------------------
// This macro generates a new array class. It is intended for storage of simple
{
// GetVeto() will return FALSE anyhow...
wxCHECK_RET( m_canVeto,
- T("call to Veto() ignored (can't veto this event)") );
+ wxT("call to Veto() ignored (can't veto this event)") );
m_veto = veto;
}
virtual void OnCommand(wxWindow& WXUNUSED(win),
wxCommandEvent& WXUNUSED(event))
{
- wxFAIL_MSG(T("shouldn't be called any more"));
+ wxFAIL_MSG(wxT("shouldn't be called any more"));
}
// Called if child control has no callback function
bool Close();
// assign an existing file descriptor and get it back from wxFFile object
- void Attach(FILE *fp, const wxString& name = T(""))
+ void Attach(FILE *fp, const wxString& name = wxT(""))
{ Close(); m_fp = fp; m_name = name; }
void Detach() { m_fp = NULL; }
FILE *fp() const { return m_fp; }
// New constructor: one size fits all. Specify wxCONFIG_USE_LOCAL_FILE or
// wxCONFIG_USE_GLOBAL_FILE to say which files should be used.
wxFileConfig(const wxString& appName,
- const wxString& vendorName = T(""),
- const wxString& localFilename = T(""),
- const wxString& globalFilename = T(""),
+ const wxString& vendorName = wxT(""),
+ const wxString& localFilename = wxT(""),
+ const wxString& globalFilename = wxT(""),
long style = wxCONFIG_USE_LOCAL_FILE);
// dtor will save unsaved data
WXDLLEXPORT bool wxRmdir(const wxString& dir, int flags = 0);
// separators in file names
-#define wxFILE_SEP_EXT T('.')
-#define wxFILE_SEP_DSK T(':')
-#define wxFILE_SEP_PATH_DOS T('\\')
-#define wxFILE_SEP_PATH_UNIX T('/')
+#define wxFILE_SEP_EXT wxT('.')
+#define wxFILE_SEP_DSK wxT(':')
+#define wxFILE_SEP_PATH_DOS wxT('\\')
+#define wxFILE_SEP_PATH_UNIX wxT('/')
// separator in the path list (as in PATH environment variable)
// NB: these are strings and not characters on purpose!
-#define wxPATH_SEP_DOS T(";")
-#define wxPATH_SEP_UNIX T(":")
+#define wxPATH_SEP_DOS wxT(";")
+#define wxPATH_SEP_UNIX wxT(":")
// platform independent versions
#ifdef __UNIX__
// enumerate the different encodings either for given font family or for
// all font families - will result in OnFontEncoding() being called for
// each available (family, encoding) couple
- virtual bool EnumerateEncodings(const wxString& family = T(""));
+ virtual bool EnumerateEncodings(const wxString& family = wxT(""));
// callbacks which are called after one of EnumerateXXX() functions from
// above is invoked - all of them may return FALSE to stop enumeration or
const wxSize &size = wxDefaultSize,
long style = wxLC_LIST,
const wxValidator &validator = wxDefaultValidator,
- const wxString &name = T("filelist") );
+ const wxString &name = wxT("filelist") );
void ChangeToListMode();
void ChangeToReportMode();
void ChangeToIconMode();
@param newmsg if used, new message to display
@returns true if ABORT button has not been pressed
*/
- bool Update(int value = -1, const wxString& newmsg = T(""));
+ bool Update(int value = -1, const wxString& newmsg = wxT(""));
/* Can be called to continue after the cancel button has been pressed, but
the program decided to continue the operation (e.g., user didn't
#if wxUSE_STATUSBAR
virtual wxStatusBar* CreateStatusBar(int number=1, long style = wxST_SIZEGRIP, wxWindowID id = 0,
- const wxString& name = T("statusBar"));
+ const wxString& name = wxT("statusBar"));
virtual wxStatusBar *OnCreateStatusBar( int number, long style, wxWindowID id,
const wxString& name );
virtual wxStatusBar *GetStatusBar() const;
#if wxUSE_STATUSBAR
virtual wxStatusBar* CreateStatusBar(int number=1, long style = wxST_SIZEGRIP, wxWindowID id = 0,
- const wxString& name = T("statusBar"));
+ const wxString& name = wxT("statusBar"));
virtual wxStatusBar *OnCreateStatusBar( int number, long style, wxWindowID id,
const wxString& name );
virtual wxStatusBar *GetStatusBar() const;
// gettext() style macro (notice that xgettext should be invoked with "-k_"
// option to extract the strings inside _() from the sources)
#ifndef WXINTL_NO_GETTEXT_MACRO
- #define _(str) wxGetTranslation(T(str))
+ #define _(str) wxGetTranslation(wxT(str))
#endif
// ----------------------------------------------------------------------------
// will take us immediately to the place of the failed API
#ifdef __VISUALC__
#define wxLogApiError(api, rc) \
- wxLogDebug(T("%s(%d): '%s' failed with error 0x%08lx (%s)."), \
+ wxLogDebug(wxT("%s(%d): '%s' failed with error 0x%08lx (%s)."), \
__TFILE__, __LINE__, api, \
rc, wxSysErrorMsg(rc))
#else // !VC++
#define wxLogApiError(api, rc) \
- wxLogDebug(T("In file %s at line %d: '%s' failed with " \
+ wxLogDebug(wxT("In file %s at line %d: '%s' failed with " \
"error 0x%08lx (%s)."), \
__TFILE__, __LINE__, api, \
rc, wxSysErrorMsg(rc))
long nothing ;
} ;
-#endif /* !_GUSI_ */
\ No newline at end of file
};
#endif
- // _WX_STATBAR_H_
\ No newline at end of file
* for this combination of CTl3D/FAFA settings
*/
-#define STATIC_CLASS T("STATIC")
+#define STATIC_CLASS wxT("STATIC")
#define STATIC_FLAGS (SS_LEFT|WS_CHILD|WS_VISIBLE)
-#define CHECK_CLASS T("BUTTON")
+#define CHECK_CLASS wxT("BUTTON")
#define CHECK_FLAGS (BS_AUTOCHECKBOX|WS_TABSTOP|WS_CHILD)
#define CHECK_IS_FAFA FALSE
-#define RADIO_CLASS T("BUTTON")
+#define RADIO_CLASS wxT("BUTTON")
#define RADIO_FLAGS (BS_AUTORADIOBUTTON|WS_CHILD|WS_VISIBLE)
#define RADIO_SIZE 20
#define RADIO_IS_FAFA FALSE
#define PURE_WINDOWS
-#define GROUP_CLASS T("BUTTON")
+#define GROUP_CLASS wxT("BUTTON")
#define GROUP_FLAGS (BS_GROUPBOX|WS_CHILD|WS_VISIBLE)
/*
#endif // wxUSE_NATIVE_STATUSBAR
-#endif //_STATBR95_H
\ No newline at end of file
#define IMPLEMENT_DYNAMIC_CLASS(name, basename) \
wxObject* WXDLLEXPORT_CTORFN wxConstructorFor##name(void) \
{ return new name; }\
- wxClassInfo name::sm_class##name((wxChar *) T(#name), (wxChar *) T(#basename), (wxChar *) NULL, (int) sizeof(name), (wxObjectConstructorFn) wxConstructorFor##name);
+ wxClassInfo name::sm_class##name((wxChar *) wxT(#name), (wxChar *) wxT(#basename), (wxChar *) NULL, (int) sizeof(name), (wxObjectConstructorFn) wxConstructorFor##name);
// Multiple inheritance with two base classes
#define IMPLEMENT_DYNAMIC_CLASS2(name, basename1, basename2) \
wxObject* WXDLLEXPORT_CTORFN wxConstructorFor##name(void) \
{ return new name; }\
- wxClassInfo name::sm_class##name((wxChar *) T(#name), (wxChar *) T(#basename1), (wxChar *) T(#basename2), (int) sizeof(name), (wxObjectConstructorFn) wxConstructorFor##name);
+ wxClassInfo name::sm_class##name((wxChar *) wxT(#name), (wxChar *) wxT(#basename1), (wxChar *) wxT(#basename2), (int) sizeof(name), (wxObjectConstructorFn) wxConstructorFor##name);
//////
////// for abstract classes
// Single inheritance with one base class
#define IMPLEMENT_ABSTRACT_CLASS(name, basename) \
- wxClassInfo name::sm_class##name((wxChar *) T(#name), (wxChar *) T(#basename), \
+ wxClassInfo name::sm_class##name((wxChar *) wxT(#name), (wxChar *) wxT(#basename), \
(wxChar *) NULL, (int) sizeof(name), (wxObjectConstructorFn) NULL);
// Multiple inheritance with two base classes
#define IMPLEMENT_ABSTRACT_CLASS2(name, basename1, basename2) \
- wxClassInfo name::sm_class##name((wxChar *) T(#name), (wxChar *) T(#basename1), \
- (wxChar *) T(#basename2), (int) sizeof(name), (wxObjectConstructorFn) NULL);
+ wxClassInfo name::sm_class##name((wxChar *) wxT(#name), (wxChar *) wxT(#basename1), \
+ (wxChar *) wxT(#basename2), (int) sizeof(name), (wxObjectConstructorFn) NULL);
#define IMPLEMENT_CLASS IMPLEMENT_ABSTRACT_CLASS
#define IMPLEMENT_CLASS2 IMPLEMENT_ABSTRACT_CLASS2
};
#endif
- // _WX_STATBAR_H_
\ No newline at end of file
// Called when the property is double clicked.
bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
- bool EditStringList(wxWindow *parent, wxStringList *stringList, const wxChar *title = T("String List Editor"));
+ bool EditStringList(wxWindow *parent, wxStringList *stringList, const wxChar *title = wxT("String List Editor"));
// Called when the edit (...) button is pressed.
void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
// remove spaces from left or from right (default) side
wxString& Trim(bool bFromRight = TRUE);
// add nCount copies chPad in the beginning or at the end (default)
- wxString& Pad(size_t nCount, wxChar chPad = T(' '), bool bFromRight = TRUE);
+ wxString& Pad(size_t nCount, wxChar chPad = wxT(' '), bool bFromRight = TRUE);
// truncate string to given length
wxString& Truncate(size_t uiLen);
// return the maximum size of the string
size_t max_size() const { return wxSTRING_MAXLEN; }
// resize the string, filling the space with c if c != 0
- void resize(size_t nSize, wxChar ch = T('\0'));
+ void resize(size_t nSize, wxChar ch = wxT('\0'));
// delete the contents of the string
void clear() { Empty(); }
// returns true if the string is empty
};
#endif
- // _WX_STATBAR_H_
\ No newline at end of file
static void Chain(wxWizardPageSimple *first, wxWizardPageSimple *second)
{
wxCHECK_RET( first && second,
- T("NULL passed to wxWizardPageSimple::Chain") );
+ wxT("NULL passed to wxWizardPageSimple::Chain") );
first->SetNext(second);
second->SetPrev(first);
// although global macros with such names are really bad, we want to have
// another name for _T() which should be used to avoid confusion between _T()
// and _() in wxWindows sources
-#define T(x) _T(x)
+#define wxT(x) _T(x)
// a Unicode-friendly __FILE__ analog
#ifndef __TFILE__
- #define __XFILE__(x) T(x)
+ #define __XFILE__(x) wxT(x)
#define __TFILE__ __XFILE__(__FILE__)
#endif
return value.word;
else if (type == wxExprString)
return wxString(value.string);
- else return wxString(T(""));
+ else return wxString(wxT(""));
}
inline wxString StringValue(void) const {
return wxString(value.string);
else if (type == wxExprWord)
return wxString(value.word);
- else return wxString(T(""));
+ else return wxString(wxT(""));
}
// Get nth arg of clause (starting from 1)
#pragma once on
#define WX_PRECOMP
#include "wx/wx_cw_cm.h"
-#include "wx/wxprec.h"
\ No newline at end of file
#define WX_PRECOMP
#define __WXDEBUG__
#include "wx/wx_cw_cm.h"
-#include "wx/wxprec.h"
\ No newline at end of file
y_tab.c
-lex_yy.c
\ No newline at end of file
{
int sel = GetSelection();
wxString str;
- wxCHECK_MSG( sel != wxNOT_FOUND, str, T("no selection, hence no string") );
+ wxCHECK_MSG( sel != wxNOT_FOUND, str, wxT("no selection, hence no string") );
str = GetString(sel);
return str;
{
int selIndex = FindString(sel);
wxCHECK_MSG( selIndex != wxNOT_FOUND, FALSE,
- T("can't set selection to string not in the control") );
+ wxT("can't set selection to string not in the control") );
SetSelection(selIndex);
void wxChoiceBase::SetClientObject(int n, wxClientData *data)
{
wxASSERT_MSG( m_clientDataItemsType != ClientData_Void,
- T("can't have both object and void client data") );
+ wxT("can't have both object and void client data") );
wxClientData *clientDataOld = DoGetClientObject(n);
if ( clientDataOld )
wxClientData *wxChoiceBase::GetClientObject(int n) const
{
wxASSERT_MSG( m_clientDataItemsType == ClientData_Object,
- T("this window doesn't have object client data") );
+ wxT("this window doesn't have object client data") );
return DoGetClientObject(n);
}
void wxChoiceBase::SetClientData(int n, void *data)
{
wxASSERT_MSG( m_clientDataItemsType != ClientData_Object,
- T("can't have both object and void client data") );
+ wxT("can't have both object and void client data") );
DoSetClientData(n, data);
m_clientDataItemsType = ClientData_Void;
void *wxChoiceBase::GetClientData(int n) const
{
wxASSERT_MSG( m_clientDataItemsType == ClientData_Void,
- T("this window doesn't have void client data") );
+ wxT("this window doesn't have void client data") );
return DoGetClientData(n);
}
static wxString wxGetPrintDlgError()
{
DWORD err = CommDlgExtendedError();
- wxString msg = T("Unknown");
+ wxString msg = wxT("Unknown");
switch (err)
{
- case CDERR_FINDRESFAILURE: msg = T("CDERR_FINDRESFAILURE"); break;
- case CDERR_INITIALIZATION: msg = T("CDERR_INITIALIZATION"); break;
- case CDERR_LOADRESFAILURE: msg = T("CDERR_LOADRESFAILURE"); break;
- case CDERR_LOADSTRFAILURE: msg = T("CDERR_LOADSTRFAILURE"); break;
- case CDERR_LOCKRESFAILURE: msg = T("CDERR_LOCKRESFAILURE"); break;
- case CDERR_MEMALLOCFAILURE: msg = T("CDERR_MEMALLOCFAILURE"); break;
- case CDERR_MEMLOCKFAILURE: msg = T("CDERR_MEMLOCKFAILURE"); break;
- case CDERR_NOHINSTANCE: msg = T("CDERR_NOHINSTANCE"); break;
- case CDERR_NOHOOK: msg = T("CDERR_NOHOOK"); break;
- case CDERR_NOTEMPLATE: msg = T("CDERR_NOTEMPLATE"); break;
- case CDERR_STRUCTSIZE: msg = T("CDERR_STRUCTSIZE"); break;
- case PDERR_RETDEFFAILURE: msg = T("PDERR_RETDEFFAILURE"); break;
- case PDERR_PRINTERNOTFOUND: msg = T("PDERR_PRINTERNOTFOUND"); break;
- case PDERR_PARSEFAILURE: msg = T("PDERR_PARSEFAILURE"); break;
- case PDERR_NODEVICES: msg = T("PDERR_NODEVICES"); break;
- case PDERR_NODEFAULTPRN: msg = T("PDERR_NODEFAULTPRN"); break;
- case PDERR_LOADDRVFAILURE: msg = T("PDERR_LOADDRVFAILURE"); break;
- case PDERR_INITFAILURE: msg = T("PDERR_INITFAILURE"); break;
- case PDERR_GETDEVMODEFAIL: msg = T("PDERR_GETDEVMODEFAIL"); break;
- case PDERR_DNDMMISMATCH: msg = T("PDERR_DNDMMISMATCH"); break;
- case PDERR_DEFAULTDIFFERENT: msg = T("PDERR_DEFAULTDIFFERENT"); break;
- case PDERR_CREATEICFAILURE: msg = T("PDERR_CREATEICFAILURE"); break;
+ case CDERR_FINDRESFAILURE: msg = wxT("CDERR_FINDRESFAILURE"); break;
+ case CDERR_INITIALIZATION: msg = wxT("CDERR_INITIALIZATION"); break;
+ case CDERR_LOADRESFAILURE: msg = wxT("CDERR_LOADRESFAILURE"); break;
+ case CDERR_LOADSTRFAILURE: msg = wxT("CDERR_LOADSTRFAILURE"); break;
+ case CDERR_LOCKRESFAILURE: msg = wxT("CDERR_LOCKRESFAILURE"); break;
+ case CDERR_MEMALLOCFAILURE: msg = wxT("CDERR_MEMALLOCFAILURE"); break;
+ case CDERR_MEMLOCKFAILURE: msg = wxT("CDERR_MEMLOCKFAILURE"); break;
+ case CDERR_NOHINSTANCE: msg = wxT("CDERR_NOHINSTANCE"); break;
+ case CDERR_NOHOOK: msg = wxT("CDERR_NOHOOK"); break;
+ case CDERR_NOTEMPLATE: msg = wxT("CDERR_NOTEMPLATE"); break;
+ case CDERR_STRUCTSIZE: msg = wxT("CDERR_STRUCTSIZE"); break;
+ case PDERR_RETDEFFAILURE: msg = wxT("PDERR_RETDEFFAILURE"); break;
+ case PDERR_PRINTERNOTFOUND: msg = wxT("PDERR_PRINTERNOTFOUND"); break;
+ case PDERR_PARSEFAILURE: msg = wxT("PDERR_PARSEFAILURE"); break;
+ case PDERR_NODEVICES: msg = wxT("PDERR_NODEVICES"); break;
+ case PDERR_NODEFAULTPRN: msg = wxT("PDERR_NODEFAULTPRN"); break;
+ case PDERR_LOADDRVFAILURE: msg = wxT("PDERR_LOADDRVFAILURE"); break;
+ case PDERR_INITFAILURE: msg = wxT("PDERR_INITFAILURE"); break;
+ case PDERR_GETDEVMODEFAIL: msg = wxT("PDERR_GETDEVMODEFAIL"); break;
+ case PDERR_DNDMMISMATCH: msg = wxT("PDERR_DNDMMISMATCH"); break;
+ case PDERR_DEFAULTDIFFERENT: msg = wxT("PDERR_DEFAULTDIFFERENT"); break;
+ case PDERR_CREATEICFAILURE: msg = wxT("PDERR_CREATEICFAILURE"); break;
default: break;
}
return msg;
pd->hDevNames = NULL;
#if defined(__WXDEBUG__) && defined(__WIN32__)
- wxString str(T("Printing error: "));
+ wxString str(wxT("Printing error: "));
str += wxGetPrintDlgError();
wxLogDebug(str);
#endif
//// Printer name
- if (m_printerName != T(""))
+ if (m_printerName != wxT(""))
{
// TODO: make this Unicode compatible
int len = wxMin(31, m_printerName.Len());
else
{
// Shouldn't really get here
- wxFAIL_MSG(T("Couldn't find paper size in paper database."));
+ wxFAIL_MSG(wxT("Couldn't find paper size in paper database."));
m_paperId = wxPAPER_NONE;
m_paperSize.x = 0;
else
{
// Shouldn't really get here
- wxFAIL_MSG(T("Paper database wasn't initialized in wxPrintData::ConvertFromNative."));
+ wxFAIL_MSG(wxT("Paper database wasn't initialized in wxPrintData::ConvertFromNative."));
m_paperId = wxPAPER_NONE;
m_paperSize.x = 0;
else
{
// Shouldn't really get here
- wxFAIL_MSG(T("Couldn't find paper size from DEVMODE."));
+ wxFAIL_MSG(wxT("Couldn't find paper size from DEVMODE."));
m_paperSize.x = 0;
m_paperSize.y = 0;
m_printData.SetNativeData((void*) NULL);
- wxASSERT_MSG( (pd->hDevMode), T("hDevMode must be non-NULL in ConvertToNative!"));
+ wxASSERT_MSG( (pd->hDevMode), wxT("hDevMode must be non-NULL in ConvertToNative!"));
pd->hDC = (HDC) NULL;
pd->nFromPage = (UINT)m_printFromPage;
m_printData.SetNativeData((void*) NULL);
- wxASSERT_MSG( (pd->hDevMode), T("hDevMode must be non-NULL in ConvertToNative!"));
+ wxASSERT_MSG( (pd->hDevMode), wxT("hDevMode must be non-NULL in ConvertToNative!"));
// pd->hDevMode = GlobalAlloc(GMEM_MOVEABLE, sizeof(DEVMODE));
void wxPageSetupDialogData::CalculateIdFromPaperSize()
{
wxASSERT_MSG( (wxThePrintPaperDatabase != (wxPrintPaperDatabase*) NULL),
- T("wxThePrintPaperDatabase should not be NULL. "
+ wxT("wxThePrintPaperDatabase should not be NULL. "
"Do not create global print dialog data objects.") );
wxSize sz = GetPaperSize();
void wxPageSetupDialogData::CalculatePaperSizeFromId()
{
wxASSERT_MSG( (wxThePrintPaperDatabase != (wxPrintPaperDatabase*) NULL),
- T("wxThePrintPaperDatabase should not be NULL. "
+ wxT("wxThePrintPaperDatabase should not be NULL. "
"Do not create global print dialog data objects.") );
wxSize sz = wxThePrintPaperDatabase->GetSize(m_printData.GetPaperId());
bool wxConfigBase::Write(const wxString& key, double val)
{
wxString str;
- str.Printf(T("%f"), val);
+ str.Printf(wxT("%f"), val);
return Write(key, str);
}
wxString strCurrent;
const wxChar *pc = sz;
for ( ;; ) {
- if ( *pc == T('\0') || *pc == wxCONFIG_PATH_SEPARATOR ) {
- if ( strCurrent == T(".") ) {
+ if ( *pc == wxT('\0') || *pc == wxCONFIG_PATH_SEPARATOR ) {
+ if ( strCurrent == wxT(".") ) {
// ignore
}
- else if ( strCurrent == T("..") ) {
+ else if ( strCurrent == wxT("..") ) {
// go up one level
if ( aParts.IsEmpty() )
wxLogWarning(_("'%s' has extra '..', ignored."), sz);
//else:
// could log an error here, but we prefer to ignore extra '/'
- if ( *pc == T('\0') )
+ if ( *pc == wxT('\0') )
return;
}
else
// even if it's possible to create controls without parents in some port,
// it should surely be discouraged because it doesn't work at all under
// Windows
- wxCHECK_MSG( parent, FALSE, T("all controls must have parents") );
+ wxCHECK_MSG( parent, FALSE, wxT("all controls must have parents") );
if ( !CreateBase(parent, id, pos, size, style, validator, name) )
return FALSE;
#define ABBR_LENGTH 3
static const wxChar *dayname[] = {
- T("Sunday"), T("Monday"), T("Tuesday"), T("Wednesday"),
- T("Thursday"), T("Friday"), T("Saturday")
+ wxT("Sunday"), wxT("Monday"), wxT("Tuesday"), wxT("Wednesday"),
+ wxT("Thursday"), wxT("Friday"), wxT("Saturday")
};
static const wxChar *mname[] = {
- T("January"), T("February"), T("March"), T("April"), T("May"), T("June"),
- T("July"), T("August"), T("September"), T("October"), T("November"), T("December")
+ wxT("January"), wxT("February"), wxT("March"), wxT("April"), wxT("May"), wxT("June"),
+ wxT("July"), wxT("August"), wxT("September"), wxT("October"), wxT("November"), wxT("December")
};
static int GauDays[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
{
DisplayFormat=wxMDY;
DisplayOptions='\0';
- if (wxStrcmp(dat, T("TODAY")) == 0 || wxStrcmp(dat, T("today")) == 0)
+ if (wxStrcmp(dat, wxT("TODAY")) == 0 || wxStrcmp(dat, wxT("today")) == 0)
{
// Sets the current date
Set();
wxChar buf[100];
wxStrcpy(buf, dat);
- wxChar *save_ptr, *token = wxStrtok(buf,T("/-"),&save_ptr);
+ wxChar *save_ptr, *token = wxStrtok(buf,wxT("/-"),&save_ptr);
month = wxAtoi(token);
- day = wxAtoi(wxStrtok((wxChar *) NULL,T("/-"),&save_ptr));
- year = wxAtoi(wxStrtok((wxChar *) NULL,T(" "),&save_ptr));
+ day = wxAtoi(wxStrtok((wxChar *) NULL,wxT("/-"),&save_ptr));
+ year = wxAtoi(wxStrtok((wxChar *) NULL,wxT(" "),&save_ptr));
}
mdy_to_julian ();
{
DisplayFormat=wxMDY;
DisplayOptions='\0';
- if (wxStrcmp(dat, T("TODAY")) == 0 || wxStrcmp(dat, T("today")) == 0)
+ if (wxStrcmp(dat, wxT("TODAY")) == 0 || wxStrcmp(dat, wxT("today")) == 0)
{
// Sets the current date
Set();
wxChar buf[100];
wxStrcpy(buf, dat);
- wxChar *save_ptr, *token = wxStrtok(buf,T("/-"),&save_ptr);
+ wxChar *save_ptr, *token = wxStrtok(buf,wxT("/-"),&save_ptr);
month = wxAtoi(token);
- day = wxAtoi(wxStrtok((wxChar *) NULL,T("/-"),&save_ptr));
- year = wxAtoi(wxStrtok((wxChar *) NULL,T(" "),&save_ptr));
+ day = wxAtoi(wxStrtok((wxChar *) NULL,wxT("/-"),&save_ptr));
+ year = wxAtoi(wxStrtok((wxChar *) NULL,wxT(" "),&save_ptr));
}
mdy_to_julian ();
}
wxStrncpy( buf, wxGetTranslation(dayname[day_of_week-1]),
(DisplayOptions & wxDATE_ABBR) ? ABBR_LENGTH : 9);
- wxStrcat( buf, T(", "));
+ wxStrcat( buf, wxT(", "));
wxStrncat( buf, wxGetTranslation(mname[month-1]),
(DisplayOptions & wxDATE_ABBR) ? ABBR_LENGTH : 9);
- wxStrcat( buf, T(" "));
- wxSprintf( buf+wxStrlen(buf), T("%d, %d"), day, abs(year) );
+ wxStrcat( buf, wxT(" "));
+ wxSprintf( buf+wxStrlen(buf), wxT("%d, %d"), day, abs(year) );
if (year < 0)
wxStrcat(buf,_(" B.C."));
return wxString(buf);
wxStrcpy(buf, _("invalid date"));
return wxString(buf);
}
- wxSprintf(buf,T("%d "), day);
+ wxSprintf(buf,wxT("%d "), day);
wxStrncat(buf, wxGetTranslation(mname[month-1]),
(DisplayOptions & wxDATE_ABBR) ? ABBR_LENGTH : 9);
- wxSprintf( buf+wxStrlen(buf), T(" %d"), abs(year) );
+ wxSprintf( buf+wxStrlen(buf), wxT(" %d"), abs(year) );
if (year < 0)
wxStrcat(buf, _(" B.C."));
return wxString(buf);
if (day==0 || month==0 || year==0)
wxStrcpy(buf, _("invalid date"));
else
- wxSprintf( buf+wxStrlen(buf), T("%1d/%1d/%02d"), month, day,
+ wxSprintf( buf+wxStrlen(buf), wxT("%1d/%1d/%02d"), month, day,
(DisplayOptions & wxNO_CENTURY) && (abs(year) > 1899)
? (abs(year) - (abs(year) / 100 * 100))
: (abs(year)) );
return wxString(buf);
}
- return wxString(T(""));
+ return wxString(wxT(""));
}
void wxDate::SetFormat( int format )
wxString line;
for (size_t pos = 0; pos < message.Len(); pos++)
{
- if (message[pos] == T('\n'))
+ if (message[pos] == wxT('\n'))
{
if (!line.IsEmpty())
{
wxStaticText *s1 = new wxStaticText( this, -1, line );
box->Add( s1 );
- line = T("");
+ line = wxT("");
}
else
{
void wxDocMDIParentFrame::OnMRUFile(wxCommandEvent& event)
{
wxString f(m_docManager->GetHistoryFile(event.GetSelection() - wxID_FILE1));
- if (f != T(""))
+ if (f != wxT(""))
(void)m_docManager->CreateDocument(f, wxDOC_SILENT);
}
// local constants
// ----------------------------------------------------------------------------
-static const char *s_MRUEntryFormat = T("&%d %s");
+static const char *s_MRUEntryFormat = wxT("&%d %s");
// ============================================================================
// implementation
bool ret = FALSE;
if (!IsModified()) return TRUE;
- if (m_documentFile == T("") || !m_savedYet)
+ if (m_documentFile == wxT("") || !m_savedYet)
ret = SaveAs();
else
ret = OnSaveDocument(m_documentFile);
wxString path, name, ext;
wxSplitPath(fileName, & path, & name, & ext);
- if (ext.IsEmpty() || ext == T(""))
+ if (ext.IsEmpty() || ext == wxT(""))
{
fileName += ".";
fileName += docTemplate->GetDefaultExtension();
return FALSE;
wxString msgTitle;
- if (wxTheApp->GetAppName() != T(""))
+ if (wxTheApp->GetAppName() != wxT(""))
msgTitle = wxTheApp->GetAppName();
else
msgTitle = wxString(_("File error"));
return FALSE;
wxString msgTitle;
- if (wxTheApp->GetAppName() != T(""))
+ if (wxTheApp->GetAppName() != wxT(""))
msgTitle = wxTheApp->GetAppName();
else
msgTitle = wxString(_("File error"));
// Get title, or filename if no title, else unnamed
bool wxDocument::GetPrintableName(wxString& buf) const
{
- if (m_documentTitle != T(""))
+ if (m_documentTitle != wxT(""))
{
buf = m_documentTitle;
return TRUE;
}
- else if (m_documentFile != T(""))
+ else if (m_documentFile != wxT(""))
{
buf = wxFileNameFromPath(m_documentFile);
return TRUE;
GetPrintableName(title);
wxString msgTitle;
- if (wxTheApp->GetAppName() != T(""))
+ if (wxTheApp->GetAppName() != wxT(""))
msgTitle = wxTheApp->GetAppName();
else
msgTitle = wxString(_("Warning"));
// Existing document
wxDocTemplate *temp = (wxDocTemplate *) NULL;
- wxString path2(T(""));
- if (path != T(""))
+ wxString path2(wxT(""));
+ if (path != wxT(""))
path2 = path;
if (flags & wxDOC_SILENT)
{
// add a '|' to separate this filter from the previous one
if ( !descrBuf.IsEmpty() )
- descrBuf << T('|');
+ descrBuf << wxT('|');
descrBuf << templates[i]->GetDescription()
- << T(" (") << templates[i]->GetFileFilter() << T(") |")
+ << wxT(" (") << templates[i]->GetFileFilter() << wxT(") |")
<< templates[i]->GetFileFilter();
}
}
#else
- wxString descrBuf = T("*.*");
+ wxString descrBuf = wxT("*.*");
#endif
int FilterIndex = 0;
wxString pathTmp = wxFileSelectorEx(_("Select a file"),
- T(""),
- T(""),
+ wxT(""),
+ wxT(""),
&FilterIndex,
descrBuf,
0,
}
else
{
- path = T("");
+ path = wxT("");
return (wxDocTemplate *) NULL;
}
#if 0
if (!temp)
return (wxDocTemplate *) NULL;
- wxChar *pathTmp = wxFileSelector(_("Select a file"), T(""), T(""),
+ wxChar *pathTmp = wxFileSelector(_("Select a file"), wxT(""), wxT(""),
temp->GetDefaultExtension(),
temp->GetFileFilter(),
0, wxTheApp->GetTopWindow());
int n = 0;
for (i = 0; i < noTemplates; i++)
{
- if (templates[i]->IsVisible() && (templates[i]->GetViewName() != T("")))
+ if (templates[i]->IsVisible() && (templates[i]->GetViewName() != wxT("")))
{
strings[n] = (wxChar *)templates[i]->m_viewTypeName.c_str();
data[n] = (wxChar *)templates[i];
{
wxCommand *command = (wxCommand *)m_currentCommand->Data();
wxString commandName(command->GetName());
- if (commandName == T("")) commandName = _("Unnamed command");
+ if (commandName == wxT("")) commandName = _("Unnamed command");
bool canUndo = command->CanUndo();
if (canUndo)
buf = wxString(_("&Undo ")) + commandName;
{
wxCommand *redoCommand = (wxCommand *)m_currentCommand->Next()->Data();
wxString redoCommandName(redoCommand->GetName());
- if (redoCommandName == T("")) redoCommandName = _("Unnamed command");
+ if (redoCommandName == wxT("")) redoCommandName = _("Unnamed command");
buf = wxString(_("&Redo ")) + redoCommandName;
m_commandEditMenu->SetLabel(wxID_REDO, buf);
m_commandEditMenu->Enable(wxID_REDO, TRUE);
// we've undone to the start of the list, but can redo the first.
wxCommand *redoCommand = (wxCommand *)m_commands.First()->Data();
wxString redoCommandName(redoCommand->GetName());
- if (redoCommandName == T("")) redoCommandName = _("Unnamed command");
+ if (redoCommandName == wxT("")) redoCommandName = _("Unnamed command");
buf = wxString(_("&Redo ")) + redoCommandName;
m_commandEditMenu->SetLabel(wxID_REDO, buf);
m_commandEditMenu->Enable(wxID_REDO, TRUE);
void wxFileHistory::RemoveFileFromHistory(int i)
{
wxCHECK_RET( i < m_fileHistoryN,
- T("invalid index in wxFileHistory::RemoveFileFromHistory") );
+ wxT("invalid index in wxFileHistory::RemoveFileFromHistory") );
wxNode* node = m_fileMenus.First();
while ( node )
// to be removed as soon as wxMenu::Delete() is implemented
#if 1
- menu->SetLabel(wxID_FILE1 + m_fileHistoryN - 1, T(""));
+ menu->SetLabel(wxID_FILE1 + m_fileHistoryN - 1, wxT(""));
#endif
node = node->Next();
{
m_fileHistoryN = 0;
wxString buf;
- buf.Printf(T("file%d"), m_fileHistoryN+1);
+ buf.Printf(wxT("file%d"), m_fileHistoryN+1);
wxString historyFile;
- while ((m_fileHistoryN <= m_fileMaxFiles) && config.Read(buf, &historyFile) && (historyFile != T("")))
+ while ((m_fileHistoryN <= m_fileMaxFiles) && config.Read(buf, &historyFile) && (historyFile != wxT("")))
{
m_fileHistory[m_fileHistoryN] = copystring((const wxChar*) historyFile);
m_fileHistoryN ++;
- buf.Printf(T("file%d"), m_fileHistoryN+1);
+ buf.Printf(wxT("file%d"), m_fileHistoryN+1);
historyFile = "";
}
AddFilesToMenu();
for (i = 0; i < m_fileHistoryN; i++)
{
wxString buf;
- buf.Printf(T("file%d"), i+1);
+ buf.Printf(wxT("file%d"), i+1);
config.Write(buf, wxString(m_fileHistory[i]));
}
}
// add item at the given position
void wxBaseArray::Insert(long lItem, size_t nIndex)
{
- wxCHECK_RET( nIndex <= m_nCount, T("bad index in wxArray::Insert") );
+ wxCHECK_RET( nIndex <= m_nCount, wxT("bad index in wxArray::Insert") );
Grow();
// removes item from array (by index)
void wxBaseArray::Remove(size_t nIndex)
{
- wxCHECK_RET( nIndex <= m_nCount, T("bad index in wxArray::Remove") );
+ wxCHECK_RET( nIndex <= m_nCount, wxT("bad index in wxArray::Remove") );
memmove(&m_pItems[nIndex], &m_pItems[nIndex + 1],
(m_nCount - nIndex - 1)*sizeof(long));
int iIndex = Index(lItem);
wxCHECK_RET( iIndex != wxNOT_FOUND,
- T("removing inexistent item in wxArray::Remove") );
+ wxT("removing inexistent item in wxArray::Remove") );
Remove((size_t)iIndex);
}
const char *envLibPath = getenv("LD_LIBRARY_PATH");
if ( envLibPath )
libPath << ':' << envLibPath;
- wxStringTokenizer tokenizer(libPath, T(':'));
+ wxStringTokenizer tokenizer(libPath, wxT(':'));
while ( tokenizer.HasMoreToken() )
{
wxString fullname(tokenizer.NextToken());
case 3:
return RightDClick();
default:
- wxFAIL_MSG(T("invalid parameter in wxMouseEvent::ButtonDClick"));
+ wxFAIL_MSG(wxT("invalid parameter in wxMouseEvent::ButtonDClick"));
}
return FALSE;
case 3:
return RightDown();
default:
- wxFAIL_MSG(T("invalid parameter in wxMouseEvent::ButtonDown"));
+ wxFAIL_MSG(wxT("invalid parameter in wxMouseEvent::ButtonDown"));
}
return FALSE;
case 3:
return RightUp();
default:
- wxFAIL_MSG(T("invalid parameter in wxMouseEvent::ButtonUp"));
+ wxFAIL_MSG(wxT("invalid parameter in wxMouseEvent::ButtonUp"));
}
return FALSE;
case 3:
return (RightDown() || RightUp() || RightDClick());
default:
- wxFAIL_MSG(T("invalid parameter in wxMouseEvent::Button"));
+ wxFAIL_MSG(wxT("invalid parameter in wxMouseEvent::Button"));
}
return FALSE;
case 3:
return RightIsDown();
default:
- wxFAIL_MSG(T("invalid parameter in wxMouseEvent::ButtonIsDown"));
+ wxFAIL_MSG(wxT("invalid parameter in wxMouseEvent::ButtonIsDown"));
}
return FALSE;
bool wxEvtHandler::SearchDynamicEventTable( wxEvent& event )
{
wxCHECK_MSG( m_dynamicEvents, FALSE,
- T("caller should check that we have dynamic events") );
+ wxT("caller should check that we have dynamic events") );
int commandId = event.GetId();
bool wxFFile::Open(const wxChar *filename, const char *mode)
{
- wxASSERT_MSG( !m_fp, T("should close or detach the old file first") );
+ wxASSERT_MSG( !m_fp, wxT("should close or detach the old file first") );
#if wxUSE_UNICODE
char *tmp_fname;
bool wxFFile::ReadAll(wxString *str)
{
- wxCHECK_MSG( str, FALSE, T("invalid parameter") );
- wxCHECK_MSG( IsOpened(), FALSE, T("can't read from closed file") );
+ wxCHECK_MSG( str, FALSE, wxT("invalid parameter") );
+ wxCHECK_MSG( IsOpened(), FALSE, wxT("can't read from closed file") );
clearerr(m_fp);
size_t wxFFile::Read(void *pBuf, size_t nCount)
{
- wxCHECK_MSG( pBuf, FALSE, T("invalid parameter") );
- wxCHECK_MSG( IsOpened(), FALSE, T("can't read from closed file") );
+ wxCHECK_MSG( pBuf, FALSE, wxT("invalid parameter") );
+ wxCHECK_MSG( IsOpened(), FALSE, wxT("can't read from closed file") );
size_t nRead = fread(pBuf, 1, nCount, m_fp);
if ( (nRead < nCount) && Error() )
size_t wxFFile::Write(const void *pBuf, size_t nCount)
{
- wxCHECK_MSG( pBuf, FALSE, T("invalid parameter") );
- wxCHECK_MSG( IsOpened(), FALSE, T("can't write to closed file") );
+ wxCHECK_MSG( pBuf, FALSE, wxT("invalid parameter") );
+ wxCHECK_MSG( IsOpened(), FALSE, wxT("can't write to closed file") );
size_t nWritten = fwrite(pBuf, 1, nCount, m_fp);
if ( nWritten < nCount )
bool wxFFile::Seek(long ofs, wxSeekMode mode)
{
- wxCHECK_MSG( IsOpened(), FALSE, T("can't seek on closed file") );
+ wxCHECK_MSG( IsOpened(), FALSE, wxT("can't seek on closed file") );
int origin;
switch ( mode )
{
default:
- wxFAIL_MSG(T("unknown seek mode"));
+ wxFAIL_MSG(wxT("unknown seek mode"));
// still fall through
case wxFromStart:
break;
default:
- wxFAIL_MSG(T("bad wxFile::Access mode parameter."));
+ wxFAIL_MSG(wxT("bad wxFile::Access mode parameter."));
}
return access(wxFNCONV(name), how) == 0;
// different partitions for example). Unfortunately, the only standard
// (POSIX) temp file creation function tmpnam() can't do it.
#if defined(__UNIX__) || defined(__WXSTUBS__)|| defined( __WXMAC__ )
- static const wxChar *szMktempSuffix = T("XXXXXX");
+ static const wxChar *szMktempSuffix = wxT("XXXXXX");
m_strTemp << strName << szMktempSuffix;
// can use the cast because length doesn't change
mktemp(wxMBSTRINGCAST m_strTemp.mb_str());
// for now just create a file
// future enhancements can be to set some extended attributes for file systems
// OS/2 supports that have them (HPFS, FAT32) and security (HPFS386)
- static const wxChar *szMktempSuffix = T("XXX");
+ static const wxChar *szMktempSuffix = wxT("XXX");
m_strTemp << strName << szMktempSuffix;
mkdir(m_strTemp.GetWriteBuf(MAX_PATH));
#else // Windows
wxString strPath;
wxSplitPath(strName, &strPath, NULL, NULL);
if ( strPath.IsEmpty() )
- strPath = T('.'); // GetTempFileName will fail if we give it empty string
+ strPath = wxT('.'); // GetTempFileName will fail if we give it empty string
#ifdef __WIN32__
- if ( !GetTempFileName(strPath, T("wx_"),0, m_strTemp.GetWriteBuf(MAX_PATH)) )
+ if ( !GetTempFileName(strPath, wxT("wx_"),0, m_strTemp.GetWriteBuf(MAX_PATH)) )
#else
// Not sure why MSVC++ 1.5 header defines first param as BYTE - bug?
- if ( !GetTempFileName((BYTE) (DWORD)(const wxChar*) strPath, T("wx_"),0, m_strTemp.GetWriteBuf(MAX_PATH)) )
+ if ( !GetTempFileName((BYTE) (DWORD)(const wxChar*) strPath, wxT("wx_"),0, m_strTemp.GetWriteBuf(MAX_PATH)) )
#endif
- wxLogLastError(T("GetTempFileName"));
+ wxLogLastError(wxT("GetTempFileName"));
m_strTemp.UngetWriteBuf();
#endif // Windows/Unix
wxString strDir;
#ifdef __UNIX__
- strDir = T("/etc/");
+ strDir = wxT("/etc/");
#elif defined(__WXPM__)
ULONG aulSysInfo[QSV_MAX] = {0};
UINT drive;
}
}
#elif defined(__WXSTUBS__)
- wxASSERT_MSG( FALSE, T("TODO") ) ;
+ wxASSERT_MSG( FALSE, wxT("TODO") ) ;
#elif defined(__WXMAC__)
- wxASSERT_MSG( FALSE, T("TODO") ) ;
+ wxASSERT_MSG( FALSE, wxT("TODO") ) ;
#else // Windows
wxChar szWinDir[MAX_PATH];
::GetWindowsDirectory(szWinDir, MAX_PATH);
strDir = szWinDir;
- strDir << T('\\');
+ strDir << wxT('\\');
#endif // Unix/Windows
return strDir;
wxGetHomeDir(&strDir);
#ifdef __UNIX__
- if (strDir.Last() != T('/')) strDir << T('/');
+ if (strDir.Last() != wxT('/')) strDir << wxT('/');
#else
- if (strDir.Last() != T('\\')) strDir << T('\\');
+ if (strDir.Last() != wxT('\\')) strDir << wxT('\\');
#endif
return strDir;
wxString str = GetGlobalDir();
str << szFile;
- if ( wxStrchr(szFile, T('.')) == NULL )
+ if ( wxStrchr(szFile, wxT('.')) == NULL )
#ifdef __UNIX__
- str << T(".conf");
+ str << wxT(".conf");
#else // Windows
- str << T(".ini");
+ str << wxT(".ini");
#endif // UNIX/Win
return str;
wxString str = GetLocalDir();
#ifdef __UNIX__
- str << T('.');
+ str << wxT('.');
#endif
str << szFile;
#ifdef __WXMSW__
- if ( wxStrchr(szFile, T('.')) == NULL )
- str << T(".ini");
+ if ( wxStrchr(szFile, wxT('.')) == NULL )
+ str << wxT(".ini");
#endif
return str;
;
// skip blank/comment lines
- if ( *pStart == T('\0')|| *pStart == T(';') || *pStart == T('#') )
+ if ( *pStart == wxT('\0')|| *pStart == wxT(';') || *pStart == wxT('#') )
continue;
- if ( *pStart == T('[') ) { // a new group
+ if ( *pStart == wxT('[') ) { // a new group
pEnd = pStart;
- while ( *++pEnd != T(']') ) {
- if ( *pEnd == T('\n') || *pEnd == T('\0') )
+ while ( *++pEnd != wxT(']') ) {
+ if ( *pEnd == wxT('\n') || *pEnd == wxT('\0') )
break;
}
- if ( *pEnd != T(']') ) {
+ if ( *pEnd != wxT(']') ) {
wxLogError(_("file '%s': unexpected character %c at line %d."),
file.GetName(), *pEnd, n + 1);
continue; // skip this line
// check that there is nothing except comments left on this line
bool bCont = TRUE;
- while ( *++pEnd != T('\0') && bCont ) {
+ while ( *++pEnd != wxT('\0') && bCont ) {
switch ( *pEnd ) {
- case T('#'):
- case T(';'):
+ case wxT('#'):
+ case wxT(';'):
bCont = FALSE;
break;
- case T(' '):
- case T('\t'):
+ case wxT(' '):
+ case wxT('\t'):
// ignore whitespace ('\n' impossible here)
break;
}
else { // a key
const wxChar *pEnd = pStart;
- while ( *pEnd != T('=') && !wxIsspace(*pEnd) ) {
- if ( *pEnd == T('\\') ) {
+ while ( *pEnd != wxT('=') && !wxIsspace(*pEnd) ) {
+ if ( *pEnd == wxT('\\') ) {
// next character may be space or not - still take it because it's
// quoted
pEnd++;
while ( isspace(*pEnd) )
pEnd++;
- if ( *pEnd++ != T('=') ) {
+ if ( *pEnd++ != wxT('=') ) {
wxLogError(_("file '%s', line %d: '=' expected."),
file.GetName(), n + 1);
}
wxString strName = path.Name();
if ( strName.IsEmpty() ) {
// setting the value of a group is an error
- wxASSERT_MSG( wxIsEmpty(szValue), T("can't set value of a group!") );
+ wxASSERT_MSG( wxIsEmpty(szValue), wxT("can't set value of a group!") );
// ... except if it's empty in which case it's a way to force it's creation
m_pCurrentGroup->SetDirty();
{
// ltoa() is not ANSI :-(
wxString buf;
- buf.Printf(T("%ld"), lValue);
+ buf.Printf(wxT("%ld"), lValue);
return Write(key, buf);
}
if ( bGroupIfEmptyAlso && m_pCurrentGroup->IsEmpty() ) {
if ( m_pCurrentGroup != m_pRootGroup ) {
ConfigGroup *pGroup = m_pCurrentGroup;
- SetPath(T("..")); // changes m_pCurrentGroup!
+ SetPath(wxT("..")); // changes m_pCurrentGroup!
m_pCurrentGroup->DeleteSubgroupByName(pGroup->Name());
}
//else: never delete the root group
if ( remove(m_strLocalFile.fn_str()) == -1 )
wxLogSysError(_("can't delete user configuration file '%s'"), m_strLocalFile.c_str());
- m_strLocalFile = m_strGlobalFile = T("");
+ m_strLocalFile = m_strGlobalFile = wxT("");
Init();
return TRUE;
// this group wasn't present in local config file, add it now
if ( pParent != NULL ) {
wxString strFullName;
- strFullName << T("[")
+ strFullName << wxT("[")
// +1: no '/'
<< FilterOutEntryName(GetFullName().c_str() + 1)
- << T("]");
+ << wxT("]");
m_pLine = m_pConfig->LineListInsert(strFullName,
pParent->GetLastGroupLine());
pParent->SetLastGroup(this); // we're surely after all the others
LineList *line = GetGroupLine();
wxString strFullName;
- strFullName << T("[") << (GetFullName().c_str() + 1) << T("]"); // +1: no '/'
+ strFullName << wxT("[") << (GetFullName().c_str() + 1) << wxT("]"); // +1: no '/'
line->SetText(strFullName);
SetDirty();
if ( Parent() )
return Parent()->GetFullName() + wxCONFIG_PATH_SEPARATOR + Name();
else
- return T("");
+ return wxT("");
}
// ----------------------------------------------------------------------------
if ( bUser ) {
wxString strVal = FilterOutValue(strValue);
wxString strLine;
- strLine << FilterOutEntryName(m_strName) << T('=') << strVal;
+ strLine << FilterOutEntryName(m_strName) << wxT('=') << strVal;
if ( m_pLine != NULL ) {
// entry was read from the local config file, just modify the line
bool bQuoted = !str.IsEmpty() && str[0] == '"';
for ( size_t n = bQuoted ? 1 : 0; n < str.Len(); n++ ) {
- if ( str[n] == T('\\') ) {
+ if ( str[n] == wxT('\\') ) {
switch ( str[++n] ) {
- case T('n'):
- strResult += T('\n');
+ case wxT('n'):
+ strResult += wxT('\n');
break;
- case T('r'):
- strResult += T('\r');
+ case wxT('r'):
+ strResult += wxT('\r');
break;
- case T('t'):
- strResult += T('\t');
+ case wxT('t'):
+ strResult += wxT('\t');
break;
- case T('\\'):
- strResult += T('\\');
+ case wxT('\\'):
+ strResult += wxT('\\');
break;
- case T('"'):
- strResult += T('"');
+ case wxT('"'):
+ strResult += wxT('"');
break;
}
}
else {
- if ( str[n] != T('"') || !bQuoted )
+ if ( str[n] != wxT('"') || !bQuoted )
strResult += str[n];
else if ( n != str.Len() - 1 ) {
wxLogWarning(_("unexpected \" at position %d in '%s'."),
strResult.Alloc(str.Len());
// quoting is necessary to preserve spaces in the beginning of the string
- bool bQuote = wxIsspace(str[0]) || str[0] == T('"');
+ bool bQuote = wxIsspace(str[0]) || str[0] == wxT('"');
if ( bQuote )
- strResult += T('"');
+ strResult += wxT('"');
wxChar c;
for ( size_t n = 0; n < str.Len(); n++ ) {
switch ( str[n] ) {
- case T('\n'):
- c = T('n');
+ case wxT('\n'):
+ c = wxT('n');
break;
- case T('\r'):
- c = T('r');
+ case wxT('\r'):
+ c = wxT('r');
break;
- case T('\t'):
- c = T('t');
+ case wxT('\t'):
+ c = wxT('t');
break;
- case T('\\'):
- c = T('\\');
+ case wxT('\\'):
+ c = wxT('\\');
break;
- case T('"'):
+ case wxT('"'):
if ( bQuote ) {
- c = T('"');
+ c = wxT('"');
break;
}
//else: fall through
}
// we get here only for special characters
- strResult << T('\\') << c;
+ strResult << wxT('\\') << c;
}
if ( bQuote )
- strResult += T('"');
+ strResult += wxT('"');
return strResult;
}
strResult.Alloc(str.Len());
for ( const wxChar *pc = str.c_str(); *pc != '\0'; pc++ ) {
- if ( *pc == T('\\') )
+ if ( *pc == wxT('\\') )
pc++;
strResult += *pc;
wxString strResult;
strResult.Alloc(str.Len());
- for ( const wxChar *pc = str.c_str(); *pc != T('\0'); pc++ ) {
+ for ( const wxChar *pc = str.c_str(); *pc != wxT('\0'); pc++ ) {
wxChar c = *pc;
// we explicitly allow some of "safe" chars and 8bit ASCII characters
// which will probably never have special meaning
// NB: note that wxCONFIG_IMMUTABLE_PREFIX and wxCONFIG_PATH_SEPARATOR
// should *not* be quoted
- if ( !wxIsalnum(c) && !wxStrchr(T("@_/-!.*%"), c) && ((c & 0x80) == 0) )
- strResult += T('\\');
+ if ( !wxIsalnum(c) && !wxStrchr(wxT("@_/-!.*%"), c) && ((c & 0x80) == 0) )
+ strResult += wxT('\\');
strResult += c;
}
{
static const wxChar PATH_TOKS[] =
#ifdef __WINDOWS__
- T(" ;"); // Don't seperate with colon in DOS (used for drive)
+ wxT(" ;"); // Don't seperate with colon in DOS (used for drive)
#else
- T(" :;");
+ wxT(" :;");
#endif
wxChar *val = wxGetenv (WXSTRINGCAST envVariable);
wxChar *path = (wxChar *) node->Data ();
wxStrcpy (wxFileFunctionsBuffer, path);
wxChar ch = wxFileFunctionsBuffer[wxStrlen(wxFileFunctionsBuffer)-1];
- if (ch != T('\\') && ch != T('/'))
- wxStrcat (wxFileFunctionsBuffer, T("/"));
+ if (ch != wxT('\\') && ch != wxT('/'))
+ wxStrcat (wxFileFunctionsBuffer, wxT("/"));
wxStrcat (wxFileFunctionsBuffer, filename);
#ifdef __WINDOWS__
Unix2DosFilename (wxFileFunctionsBuffer);
}
} // for()
- return wxString(T("")); // Not found
+ return wxString(wxT("")); // Not found
}
wxString wxPathList::FindAbsoluteValidPath (const wxString& file)
struct stat stbuf;
#endif
- if ((filename != T("")) && stat (wxFNSTRINGCAST filename.fn_str(), &stbuf) == 0)
+ if ((filename != wxT("")) && stat (wxFNSTRINGCAST filename.fn_str(), &stbuf) == 0)
return TRUE;
return FALSE;
#endif
bool
wxIsAbsolutePath (const wxString& filename)
{
- if (filename != T(""))
+ if (filename != wxT(""))
{
- if (filename[0] == T('/')
+ if (filename[0] == wxT('/')
#ifdef __VMS__
- || (filename[0] == T('[') && filename[1] != T('.'))
+ || (filename[0] == wxT('[') && filename[1] != wxT('.'))
#endif
#ifdef __WINDOWS__
/* MSDOS */
- || filename[0] == T('\\') || (wxIsalpha (filename[0]) && filename[1] == T(':'))
+ || filename[0] == wxT('\\') || (wxIsalpha (filename[0]) && filename[1] == wxT(':'))
#endif
)
return TRUE;
int i = len-1;
while (i > 0)
{
- if (buffer[i] == T('.'))
+ if (buffer[i] == wxT('.'))
{
buffer[i] = 0;
break;
size_t i = len-1;
while (i > 0)
{
- if (buffer.GetChar(i) == T('.'))
+ if (buffer.GetChar(i) == wxT('.'))
{
buffer = buffer.Left(i);
break;
wxChar *wxRealPath (wxChar *path)
{
#ifdef __WXMSW__
- static const wxChar SEP = T('\\');
+ static const wxChar SEP = wxT('\\');
Unix2DosFilename(path);
#else
- static const wxChar SEP = T('/');
+ static const wxChar SEP = wxT('/');
#endif
if (path[0] && path[1]) {
/* MATTHEW: special case "/./x" */
wxChar *p;
- if (path[2] == SEP && path[1] == T('.'))
+ if (path[2] == SEP && path[1] == wxT('.'))
p = &path[0];
else
p = &path[2];
{
if (*p == SEP)
{
- if (p[1] == T('.') && p[2] == T('.') && (p[3] == SEP || p[3] == T('\0')))
+ if (p[1] == wxT('.') && p[2] == wxT('.') && (p[3] == SEP || p[3] == wxT('\0')))
{
wxChar *q;
for (q = p - 1; q >= path && *q != SEP; q--);
- if (q[0] == SEP && (q[1] != T('.') || q[2] != T('.') || q[3] != SEP)
+ if (q[0] == SEP && (q[1] != wxT('.') || q[2] != wxT('.') || q[3] != SEP)
&& (q - 1 <= path || q[-1] != SEP))
{
wxStrcpy (q, p + 3);
- if (path[0] == T('\0'))
+ if (path[0] == wxT('\0'))
{
path[0] = SEP;
- path[1] = T('\0');
+ path[1] = wxT('\0');
}
#ifdef __WXMSW__
/* Check that path[2] is NULL! */
- else if (path[1] == T(':') && !path[2])
+ else if (path[1] == wxT(':') && !path[2])
{
path[2] = SEP;
- path[3] = T('\0');
+ path[3] = wxT('\0');
}
#endif
p = q - 1;
}
}
- else if (p[1] == T('.') && (p[2] == SEP || p[2] == T('\0')))
+ else if (p[1] == wxT('.') && (p[2] == SEP || p[2] == wxT('\0')))
wxStrcpy (p, p + 2);
}
}
// Must be destroyed
wxChar *wxCopyAbsolutePath(const wxString& filename)
{
- if (filename == T(""))
+ if (filename == wxT(""))
return (wxChar *) NULL;
if (! IsAbsolutePath(wxExpandPath(wxFileFunctionsBuffer, filename))) {
wxChar buf[_MAXPATHLEN];
- buf[0] = T('\0');
+ buf[0] = wxT('\0');
wxGetWorkingDirectory(buf, WXSIZEOF(buf));
wxChar ch = buf[wxStrlen(buf) - 1];
#ifdef __WXMSW__
- if (ch != T('\\') && ch != T('/'))
- wxStrcat(buf, T("\\"));
+ if (ch != wxT('\\') && ch != wxT('/'))
+ wxStrcat(buf, wxT("\\"));
#else
- if (ch != T('/'))
- wxStrcat(buf, T("/"));
+ if (ch != wxT('/'))
+ wxStrcat(buf, wxT("/"));
#endif
wxStrcat(buf, wxFileFunctionsBuffer);
return copystring( wxRealPath(buf) );
int q;
// Some compilers don't like this line.
-// const wxChar trimchars[] = T("\n \t");
+// const wxChar trimchars[] = wxT("\n \t");
wxChar trimchars[4];
- trimchars[0] = T('\n');
- trimchars[1] = T(' ');
- trimchars[2] = T('\t');
+ trimchars[0] = wxT('\n');
+ trimchars[1] = wxT(' ');
+ trimchars[2] = wxT('\t');
trimchars[3] = 0;
#ifdef __WXMSW__
- const wxChar SEP = T('\\');
+ const wxChar SEP = wxT('\\');
#else
- const wxChar SEP = T('/');
+ const wxChar SEP = wxT('/');
#endif
- buf[0] = T('\0');
- if (name == NULL || *name == T('\0'))
+ buf[0] = wxT('\0');
+ if (name == NULL || *name == wxT('\0'))
return buf;
nm = copystring(name); // Make a scratch copy
wxChar *nm_tmp = nm;
/* And strip off trailing whitespace and cr */
s = nm + (q = wxStrlen(nm)) - 1;
while (q-- && wxStrchr((wxChar *)trimchars, *s) != NULL)
- *s = T('\0');
+ *s = wxT('\0');
s = nm;
d = lnm;
#ifdef __WXMSW__
q = FALSE;
#else
- q = nm[0] == T('\\') && nm[1] == T('~');
+ q = nm[0] == wxT('\\') && nm[1] == wxT('~');
#endif
/* Expand inline environment variables */
while (*d)
{
*d++ = *s;
- if(*s == T('\\'))
+ if(*s == wxT('\\'))
{
*(d - 1) = *++s;
if (*d)
#else
while ((*d++ = *s)) {
# ifndef __WXMSW__
- if (*s == T('\\')) {
+ if (*s == wxT('\\')) {
if ((*(d - 1) = *++s)) {
s++;
continue;
# endif
#endif
#ifdef __WXMSW__
- if (*s++ == T('$') && (*s == T('{') || *s == T(')')))
+ if (*s++ == wxT('$') && (*s == wxT('{') || *s == wxT(')')))
#else
- if (*s++ == T('$'))
+ if (*s++ == wxT('$'))
#endif
{
register wxChar *start = d;
- register int braces = (*s == T('{') || *s == T('('));
+ register int braces = (*s == wxT('{') || *s == wxT('('));
register wxChar *value;
#ifdef __VISAGECPP__
// VA gives assignment in logical expr warning
#else
while ((*d++ = *s))
#endif
- if (braces ? (*s == T('}') || *s == T(')')) : !(wxIsalnum(*s) || *s == T('_')) )
+ if (braces ? (*s == wxT('}') || *s == wxT(')')) : !(wxIsalnum(*s) || *s == wxT('_')) )
break;
else
s++;
/* Expand ~ and ~user */
nm = lnm;
- s = T("");
- if (nm[0] == T('~') && !q)
+ s = wxT("");
+ if (nm[0] == wxT('~') && !q)
{
/* prefix ~ */
if (nm[1] == SEP || nm[1] == 0)
{ /* ~/filename */
// FIXME: wxGetUserHome could return temporary storage in Unicode mode
- if ((s = WXSTRINGCAST wxGetUserHome(T(""))) != NULL) {
+ if ((s = WXSTRINGCAST wxGetUserHome(wxT(""))) != NULL) {
if (*++nm)
nm++;
}
if ((home = WXSTRINGCAST wxGetUserHome(wxString(nm + 1))) == NULL) {
if (was_sep) /* replace only if it was there: */
*s = SEP;
- s = T("");
+ s = wxT("");
} else {
nm = nnm;
s = home;
d = buf;
if (s && *s) { /* MATTHEW: s could be NULL if user '~' didn't exist */
/* Copy home dir */
- while (T('\0') != (*d++ = *s++))
+ while (wxT('\0') != (*d++ = *s++))
/* loop */;
// Handle root home
if (d - 1 > buf && *(d - 2) != SEP)
{
static wxChar dest[_MAXPATHLEN];
- if (filename == T(""))
+ if (filename == wxT(""))
return (wxChar *) NULL;
wxStrcpy (dest, WXSTRINGCAST filename);
(tcp = wxStrstr (dest, val)) != NULL)
{
wxStrcpy (wxFileFunctionsBuffer, tcp + wxStrlen (val));
- *tcp++ = T('$');
- *tcp++ = T('{');
+ *tcp++ = wxT('$');
+ *tcp++ = wxT('{');
wxStrcpy (tcp, WXSTRINGCAST envname);
- wxStrcat (tcp, T("}"));
+ wxStrcat (tcp, wxT("}"));
wxStrcat (tcp, wxFileFunctionsBuffer);
}
(len = wxStrlen(val)) > 2 &&
wxStrncmp(dest, val, len) == 0)
{
- wxStrcpy(wxFileFunctionsBuffer, T("~"));
- if (user != T(""))
+ wxStrcpy(wxFileFunctionsBuffer, wxT("~"));
+ if (user != wxT(""))
wxStrcat(wxFileFunctionsBuffer, (const wxChar*) user);
#ifdef __WXMSW__
// strcat(wxFileFunctionsBuffer, "\\");
tcp = path + wxStrlen (path);
while (--tcp >= path)
{
- if (*tcp == T('/') || *tcp == T('\\')
+ if (*tcp == wxT('/') || *tcp == wxT('\\')
#ifdef __VMS__
- || *tcp == T(':') || *tcp == T(']'))
+ || *tcp == wxT(':') || *tcp == wxT(']'))
#else
)
#endif
return tcp + 1;
} /* while */
#if defined(__WXMSW__) || defined(__WXPM__)
- if (wxIsalpha (*path) && *(path + 1) == T(':'))
+ if (wxIsalpha (*path) && *(path + 1) == wxT(':'))
return path + 2;
#endif
}
wxString wxFileNameFromPath (const wxString& path1)
{
- if (path1 != T(""))
+ if (path1 != wxT(""))
{
wxChar *path = WXSTRINGCAST path1 ;
tcp = path + wxStrlen (path);
while (--tcp >= path)
{
- if (*tcp == T('/') || *tcp == T('\\')
+ if (*tcp == wxT('/') || *tcp == wxT('\\')
#ifdef __VMS__
- || *tcp == T(':') || *tcp == T(']'))
+ || *tcp == wxT(':') || *tcp == wxT(']'))
#else
)
#endif
return wxString(tcp + 1);
} /* while */
#if defined(__WXMSW__) || defined(__WXPM__)
- if (wxIsalpha (*path) && *(path + 1) == T(':'))
+ if (wxIsalpha (*path) && *(path + 1) == wxT(':'))
return wxString(path + 2);
#endif
}
while (!done && i > -1)
{
// ] is for VMS
- if (path[i] == T('/') || path[i] == T('\\') || path[i] == T(']'))
+ if (path[i] == wxT('/') || path[i] == wxT('\\') || path[i] == wxT(']'))
{
done = TRUE;
#ifdef __VMS__
#if defined(__WXMSW__) || defined(__WXPM__)
// Try Drive specifier
- if (wxIsalpha (buf[0]) && buf[1] == T(':'))
+ if (wxIsalpha (buf[0]) && buf[1] == wxT(':'))
{
// A:junk --> A:. (since A:.\junk Not A:\junk)
- buf[2] = T('.');
- buf[3] = T('\0');
+ buf[2] = wxT('.');
+ buf[3] = wxT('\0');
return buf;
}
#endif
// Return just the directory, or NULL if no directory
wxString wxPathOnly (const wxString& path)
{
- if (path != T(""))
+ if (path != wxT(""))
{
wxChar buf[_MAXPATHLEN];
while (!done && i > -1)
{
// ] is for VMS
- if (path[i] == T('/') || path[i] == T('\\') || path[i] == T(']'))
+ if (path[i] == wxT('/') || path[i] == wxT('\\') || path[i] == wxT(']'))
{
done = TRUE;
#ifdef __VMS__
#if defined(__WXMSW__) || defined(__WXPM__)
// Try Drive specifier
- if (wxIsalpha (buf[0]) && buf[1] == T(':'))
+ if (wxIsalpha (buf[0]) && buf[1] == wxT(':'))
{
// A:junk --> A:. (since A:.\junk Not A:\junk)
- buf[2] = T('.');
- buf[3] = T('\0');
+ buf[2] = wxT('.');
+ buf[3] = wxT('\0');
return wxString(buf);
}
#endif
}
- return wxString(T(""));
+ return wxString(wxT(""));
}
// Utility for converting delimiters in DOS filenames to UNIX style
if (s)
{
memmove( s+1 , s ,(strlen( s ) + 1)*sizeof(wxChar)) ;
- if ( *s == T(':') )
- *s = T('.') ;
+ if ( *s == wxT(':') )
+ *s = wxT('.') ;
else
- *s = T('/') ;
+ *s = wxT('/') ;
while (*s)
{
- if (*s == T(':'))
- *s = T('/');
+ if (*s == wxT(':'))
+ *s = wxT('/');
else
*s = wxTolower(*s); // Case INDEPENDENT
s++;
{
if (s)
{
- if ( *s == T('.') )
+ if ( *s == wxT('.') )
{
// relative path , since it goes on with slash which is translated to a :
memmove( s , s+1 ,strlen( s )*sizeof(wxChar) ) ;
}
- else if ( *s == T('/') )
+ else if ( *s == wxT('/') )
{
// absolute path -> on mac just start with the drive name
memmove( s , s+1 ,strlen( s )*sizeof(wxChar) ) ;
}
else
{
- wxASSERT_MSG( 1 , T("unknown path beginning") ) ;
+ wxASSERT_MSG( 1 , wxT("unknown path beginning") ) ;
}
while (*s)
{
- if (*s == T('/') || *s == T('\\'))
- *s = T(':');
+ if (*s == wxT('/') || *s == wxT('\\'))
+ *s = wxT(':');
s++ ;
}
if (s)
while (*s)
{
- if (*s == T('\\'))
- *s = T('/');
+ if (*s == wxT('\\'))
+ *s = wxT('/');
#if defined(__WXMSW__) || defined(__WXPM__)
else
*s = wxTolower(*s); // Case INDEPENDENT
if (s)
while (*s)
{
- if (*s == T('/'))
- *s = T('\\');
+ if (*s == wxT('/'))
+ *s = wxT('\\');
s++;
}
#endif
/* Windows API returns -1 from stat for "c:\dir\" if "c:\dir" exists
* OTOH, we should change "d:" to "d:\" and leave "\" as is. */
wxString strPath(pszPathName);
- if ( wxEndsWithPathSeparator(pszPathName) && pszPathName[1] != T('\0') )
- strPath.Last() = T('\0');
+ if ( wxEndsWithPathSeparator(pszPathName) && pszPathName[1] != wxT('\0') )
+ strPath.Last() = wxT('\0');
#ifdef __SALFORDC__
struct _stat st;
for (short suffix = last_temp + 1; suffix != last_temp; ++suffix %= 1000)
{
- wxSprintf (tmp, T("/tmp/%s%d.%03x"), WXSTRINGCAST prefix, (int) getpid (), (int) suffix);
+ wxSprintf (tmp, wxT("/tmp/%s%d.%03x"), WXSTRINGCAST prefix, (int) getpid (), (int) suffix);
if (!wxFileExists( tmp ))
{
// Touch the file to create it (reserve name)
wxString path(wxPathOnly(gs_strFileSpec));
// special case: path is really "/"
- if ( !path && gs_strFileSpec[0u] == T('/') )
- path = T('/');
+ if ( !path && gs_strFileSpec[0u] == wxT('/') )
+ path = wxT('/');
// path is empty => Local directory
if ( !path )
- path = T('.');
+ path = wxT('.');
gs_dirStream = opendir(path.fn_str());
if ( !gs_dirStream )
wxString result;
#ifndef __VMS__
- wxCHECK_MSG( gs_dirStream, result, T("must call wxFindFirstFile first") );
+ wxCHECK_MSG( gs_dirStream, result, wxT("must call wxFindFirstFile first") );
// Find path only so we can concatenate
// found file onto path
wxString name(wxFileNameFromPath(gs_strFileSpec));
/* MATTHEW: special case: path is really "/" */
- if ( !path && gs_strFileSpec[0u] == T('/'))
- path = T('/');
+ if ( !path && gs_strFileSpec[0u] == wxT('/'))
+ path = wxT('/');
// Do the reading
struct dirent *nextDir;
if ( !path.IsEmpty() )
{
result = path;
- if ( path != T('/') )
- result += T('/');
+ if ( path != wxT('/') )
+ result += wxT('/');
}
result += nextDir->d_name;
// Find path only so we can concatenate found file onto path
wxString path(wxPathOnly(gs_strFileSpec));
if ( !path.IsEmpty() )
- result << path << T('\\');
+ result << path << wxT('\\');
#ifdef __WIN32__
if ( gs_hFileStruct != INVALID_HANDLE_VALUE )
goto try_again;
if ( !path.IsEmpty() )
- result << path << T('\\');
+ result << path << wxT('\\');
result << gs_findDataStruct.cFileName;
}
if (getcwd(buf, sz) == NULL) {
#endif
#endif
- buf[0] = T('.');
- buf[1] = T('\0');
+ buf[0] = wxT('.');
+ buf[1] = wxT('\0');
}
#if wxUSE_UNICODE
else {
wxString *pstrExt)
{
// it can be empty, but it shouldn't be NULL
- wxCHECK_RET( pszFileName, T("NULL file name in wxSplitPath") );
+ wxCHECK_RET( pszFileName, wxT("NULL file name in wxSplitPath") );
const wxChar *pDot = wxStrrchr(pszFileName, wxFILE_SEP_EXT);
wxChar *pat = WXSTRINGCAST(tmp);
while (*pat) {
switch (*pat++) {
- case T('?'): case T('*'): case T('['): case T('{'):
+ case wxT('?'): case wxT('*'): case wxT('['): case wxT('{'):
return TRUE;
- case T('\\'):
+ case wxT('\\'):
if (!*pat++)
return FALSE;
}
wxChar *cp;
bool done = FALSE, ret_code, ok;
// Below is for vi fans
- const wxChar OB = T('{'), CB = T('}');
+ const wxChar OB = wxT('{'), CB = wxT('}');
// dot_special means '.' only matches '.'
- if (dot_special && *str == T('.') && *pattern != *str)
+ if (dot_special && *str == wxT('.') && *pattern != *str)
return FALSE;
- while ((*pattern != T('\0')) && (!done)
- && (((*str==T('\0'))&&((*pattern==OB)||(*pattern==T('*'))))||(*str!=T('\0')))) {
+ while ((*pattern != wxT('\0')) && (!done)
+ && (((*str==wxT('\0'))&&((*pattern==OB)||(*pattern==wxT('*'))))||(*str!=wxT('\0')))) {
switch (*pattern) {
- case T('\\'):
+ case wxT('\\'):
pattern++;
- if (*pattern != T('\0'))
+ if (*pattern != wxT('\0'))
pattern++;
break;
- case T('*'):
+ case wxT('*'):
pattern++;
ret_code = FALSE;
- while ((*str!=T('\0'))
+ while ((*str!=wxT('\0'))
&& (!(ret_code=wxMatchWild(pattern, str++, FALSE))))
/*loop*/;
if (ret_code) {
- while (*str != T('\0'))
+ while (*str != wxT('\0'))
str++;
- while (*pattern != T('\0'))
+ while (*pattern != wxT('\0'))
pattern++;
}
break;
- case T('['):
+ case wxT('['):
pattern++;
repeat:
- if ((*pattern == T('\0')) || (*pattern == T(']'))) {
+ if ((*pattern == wxT('\0')) || (*pattern == wxT(']'))) {
done = TRUE;
break;
}
- if (*pattern == T('\\')) {
+ if (*pattern == wxT('\\')) {
pattern++;
- if (*pattern == T('\0')) {
+ if (*pattern == wxT('\0')) {
done = TRUE;
break;
}
}
- if (*(pattern + 1) == T('-')) {
+ if (*(pattern + 1) == wxT('-')) {
c = *pattern;
pattern += 2;
- if (*pattern == T(']')) {
+ if (*pattern == wxT(']')) {
done = TRUE;
break;
}
- if (*pattern == T('\\')) {
+ if (*pattern == wxT('\\')) {
pattern++;
- if (*pattern == T('\0')) {
+ if (*pattern == wxT('\0')) {
done = TRUE;
break;
}
goto repeat;
}
pattern++;
- while ((*pattern != T(']')) && (*pattern != T('\0'))) {
- if ((*pattern == T('\\')) && (*(pattern + 1) != T('\0')))
+ while ((*pattern != wxT(']')) && (*pattern != wxT('\0'))) {
+ if ((*pattern == wxT('\\')) && (*(pattern + 1) != wxT('\0')))
pattern++;
pattern++;
}
- if (*pattern != T('\0')) {
+ if (*pattern != wxT('\0')) {
pattern++, str++;
}
break;
- case T('?'):
+ case wxT('?'):
pattern++;
str++;
break;
case OB:
pattern++;
- while ((*pattern != CB) && (*pattern != T('\0'))) {
+ while ((*pattern != CB) && (*pattern != wxT('\0'))) {
cp = str;
ok = TRUE;
- while (ok && (*cp != T('\0')) && (*pattern != T('\0'))
- && (*pattern != T(',')) && (*pattern != CB)) {
- if (*pattern == T('\\'))
+ while (ok && (*cp != wxT('\0')) && (*pattern != wxT('\0'))
+ && (*pattern != wxT(',')) && (*pattern != CB)) {
+ if (*pattern == wxT('\\'))
pattern++;
ok = (*pattern++ == *cp++);
}
- if (*pattern == T('\0')) {
+ if (*pattern == wxT('\0')) {
ok = FALSE;
done = TRUE;
break;
} else if (ok) {
str = cp;
- while ((*pattern != CB) && (*pattern != T('\0'))) {
- if (*++pattern == T('\\')) {
+ while ((*pattern != CB) && (*pattern != wxT('\0'))) {
+ if (*++pattern == wxT('\\')) {
if (*++pattern == CB)
pattern++;
}
}
} else {
- while (*pattern!=CB && *pattern!=T(',') && *pattern!=T('\0')) {
- if (*++pattern == T('\\')) {
- if (*++pattern == CB || *pattern == T(','))
+ while (*pattern!=CB && *pattern!=wxT(',') && *pattern!=wxT('\0')) {
+ if (*++pattern == wxT('\\')) {
+ if (*++pattern == CB || *pattern == wxT(','))
pattern++;
}
}
}
- if (*pattern != T('\0'))
+ if (*pattern != wxT('\0'))
pattern++;
}
break;
}
}
}
- while (*pattern == T('*'))
+ while (*pattern == wxT('*'))
pattern++;
- return ((*str == T('\0')) && (*pattern == T('\0')));
+ return ((*str == wxT('\0')) && (*pattern == wxT('\0')));
};
#endif
l2 = l;
for (int i = l-1; i >= 0; i--) {
c = loc[(unsigned int) i];
- if (c == T('#')) l2 = i + 1;
- if (c == T('.')) {ext = loc.Right(l2-i-1); break;}
- if ((c == T('/')) || (c == T('\\')) || (c == T(':'))) {return wxEmptyString;}
+ if (c == wxT('#')) l2 = i + 1;
+ if (c == wxT('.')) {ext = loc.Right(l2-i-1); break;}
+ if ((c == wxT('/')) || (c == wxT('\\')) || (c == wxT(':'))) {return wxEmptyString;}
}
if (m_MimeMng == NULL) {
bool fnd;
fnd = FALSE;
- for (i = l-1; (i >= 0) && ((location[i] != T('#')) || (!fnd)); i--) {
- if ((location[i] == T(':')) && (i != 1 /*win: C:\path*/)) fnd = TRUE;
+ for (i = l-1; (i >= 0) && ((location[i] != wxT('#')) || (!fnd)); i--) {
+ if ((location[i] == wxT(':')) && (i != 1 /*win: C:\path*/)) fnd = TRUE;
}
- if (!fnd) return T("file");
- for (++i; (i < l) && (location[i] != T(':')); i++) s << location[i];
+ if (!fnd) return wxT("file");
+ for (++i; (i < l) && (location[i] != wxT(':')); i++) s << location[i];
return s;
}
fnd = FALSE;
for (i = location.Length()-1; i >= 0; i--) {
- if ((location[i] == T(':')) && (i != 1 /*win: C:\path*/)) fnd = TRUE;
- else if (fnd && (location[i] == T('#'))) return location.Left(i);
+ if ((location[i] == wxT(':')) && (i != 1 /*win: C:\path*/)) fnd = TRUE;
+ else if (fnd && (location[i] == wxT('#'))) return location.Left(i);
}
return wxEmptyString;
}
{
int i, l = location.Length();
int l2 = l + 1;
- for (i = l-1; (i >= 0) && ((location[i] != T(':')) || (i == 1) || (location[i-2] == T(':'))); i--) {if (location[i] == T('#')) l2 = i + 1;}
+ for (i = l-1; (i >= 0) && ((location[i] != wxT(':')) || (i == 1) || (location[i-2] == wxT(':'))); i--) {if (location[i] == wxT('#')) l2 = i + 1;}
if (i == 0) return wxEmptyString;
else return location.Mid(i + 1, l2 - i - 2);
}
for (int i = l-1; i >= 0; i--) {
c = location[i];
- if (c == T('#')) return location.Right(l-i-1);
- else if ((c == T('.')) || (c == T('/')) || (c == T('\\')) || (c == T(':'))) return wxEmptyString;
+ if (c == wxT('#')) return location.Right(l-i-1);
+ else if ((c == wxT('.')) || (c == wxT('/')) || (c == wxT('\\')) || (c == wxT(':'))) return wxEmptyString;
}
return wxEmptyString;
}
bool wxLocalFSHandler::CanOpen(const wxString& location)
{
- return GetProtocol(location) == T("file");
+ return GetProtocol(location) == wxT("file");
}
wxFSFile* wxLocalFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& location)
m_Path = location;
for (i = m_Path.Length()-1; i >= 0; i--)
- if (m_Path[(unsigned int) i] == T('\\')) m_Path.GetWritableChar(i) = T('/'); // wanna be windows-safe
+ if (m_Path[(unsigned int) i] == wxT('\\')) m_Path.GetWritableChar(i) = wxT('/'); // wanna be windows-safe
if (is_dir == FALSE)
{
for (i = m_Path.Length()-1; i >= 0; i--)
{
- if (m_Path[(unsigned int) i] == T('/'))
+ if (m_Path[(unsigned int) i] == wxT('/'))
{
- if ((i > 1) && (m_Path[(unsigned int) (i-1)] == T('/')) && (m_Path[(unsigned int) (i-2)] == T(':')))
+ if ((i > 1) && (m_Path[(unsigned int) (i-1)] == wxT('/')) && (m_Path[(unsigned int) (i-2)] == wxT(':')))
{
i -= 2;
continue;
break;
}
}
- else if (m_Path[(unsigned int) i] == T(':')) {
+ else if (m_Path[(unsigned int) i] == wxT(':')) {
pathpos = i;
break;
}
{
for (i = 0; i < (int) m_Path.Length(); i++)
{
- if (m_Path[(unsigned int) i] == T(':'))
+ if (m_Path[(unsigned int) i] == wxT(':'))
{
- //m_Path << T('/');
+ //m_Path << wxT('/');
m_Path.Remove(i+1);
break;
}
}
else
{
- if (m_Path[m_Path.Length()-1] != T('/'))
- m_Path << T('/');
+ if (m_Path[m_Path.Length()-1] != wxT('/'))
+ m_Path << wxT('/');
m_Path.Remove(pathpos+1);
}
}
meta = 0;
for (i = 0; i < ln; i++)
{
- if (loc[(unsigned int) i] == T('\\')) loc.GetWritableChar(i) = T('/'); // wanna be windows-safe
+ if (loc[(unsigned int) i] == wxT('\\')) loc.GetWritableChar(i) = wxT('/'); // wanna be windows-safe
if (!meta) switch (loc[(unsigned int) i])
{
- case T('/') : case T(':') : case T('#') : meta = loc[(unsigned int) i];
+ case wxT('/') : case wxT(':') : case wxT('#') : meta = loc[(unsigned int) i];
}
}
m_LastName = wxEmptyString;
// try relative paths first :
- if (meta != T(':'))
+ if (meta != wxT(':'))
{
node = m_Handlers.GetFirst();
while (node)
wxString wxFontBase::GetFamilyString() const
{
- wxCHECK_MSG( Ok(), T("wxDEFAULT"), T("invalid font") );
+ wxCHECK_MSG( Ok(), wxT("wxDEFAULT"), wxT("invalid font") );
switch ( GetFamily() )
{
- case wxDECORATIVE: return T("wxDECORATIVE");
- case wxROMAN: return T("wxROMAN");
- case wxSCRIPT: return T("wxSCRIPT");
- case wxSWISS: return T("wxSWISS");
- case wxMODERN: return T("wxMODERN");
- case wxTELETYPE: return T("wxTELETYPE");
- default: return T("wxDEFAULT");
+ case wxDECORATIVE: return wxT("wxDECORATIVE");
+ case wxROMAN: return wxT("wxROMAN");
+ case wxSCRIPT: return wxT("wxSCRIPT");
+ case wxSWISS: return wxT("wxSWISS");
+ case wxMODERN: return wxT("wxMODERN");
+ case wxTELETYPE: return wxT("wxTELETYPE");
+ default: return wxT("wxDEFAULT");
}
}
wxString wxFontBase::GetStyleString() const
{
- wxCHECK_MSG( Ok(), T("wxDEFAULT"), T("invalid font") );
+ wxCHECK_MSG( Ok(), wxT("wxDEFAULT"), wxT("invalid font") );
switch ( GetStyle() )
{
- case wxNORMAL: return T("wxNORMAL");
- case wxSLANT: return T("wxSLANT");
- case wxITALIC: return T("wxITALIC");
- default: return T("wxDEFAULT");
+ case wxNORMAL: return wxT("wxNORMAL");
+ case wxSLANT: return wxT("wxSLANT");
+ case wxITALIC: return wxT("wxITALIC");
+ default: return wxT("wxDEFAULT");
}
}
wxString wxFontBase::GetWeightString() const
{
- wxCHECK_MSG( Ok(), T("wxDEFAULT"), T("invalid font") );
+ wxCHECK_MSG( Ok(), wxT("wxDEFAULT"), wxT("invalid font") );
switch ( GetWeight() )
{
- case wxNORMAL: return T("wxNORMAL");
- case wxBOLD: return T("wxBOLD");
- case wxLIGHT: return T("wxLIGHT");
- default: return T("wxDEFAULT");
+ case wxNORMAL: return wxT("wxNORMAL");
+ case wxBOLD: return wxT("wxBOLD");
+ case wxLIGHT: return wxT("wxLIGHT");
+ default: return wxT("wxDEFAULT");
}
}
bool wxInternetFSHandler::CanOpen(const wxString& location)
{
wxString p = GetProtocol(location);
- return (p == T("http")) || (p == T("ftp"));
+ return (p == wxT("http")) || (p == wxT("ftp"));
}
wxFSFile* wxInternetFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& location)
{
- wxString right = GetProtocol(location) + T(":") + GetRightLocation(location);
+ wxString right = GetProtocol(location) + wxT(":") + GetRightLocation(location);
wxInputStream *s;
wxString content;
wxInetCacheNode *info;
{
wxChar buf[256];
- wxGetTempFileName( T("wxhtml"), buf);
+ wxGetTempFileName( wxT("wxhtml"), buf);
info = new wxInetCacheNode(buf, content);
m_Cache.Put(right, info);
#if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxFTP, wxProtocol)
-IMPLEMENT_PROTOCOL(wxFTP, T("ftp"), T("ftp"), TRUE)
+IMPLEMENT_PROTOCOL(wxFTP, wxT("ftp"), wxT("ftp"), TRUE)
#endif
////////////////////////////////////////////////////////////////
m_lastError = wxPROTO_NOERR;
m_streaming = FALSE;
- m_user = T("anonymous");
+ m_user = wxT("anonymous");
m_passwd = wxGetUserId();
m_passwd += '@';
m_passwd += wxGetHostName();
return FALSE;
}
- command.sprintf(T("USER %s"), (const wxChar *)m_user);
+ command.sprintf(wxT("USER %s"), (const wxChar *)m_user);
if (!SendCommand(command, '3')) {
Close();
return FALSE;
}
- command.sprintf(T("PASS %s"), (const wxChar *)m_passwd);
+ command.sprintf(wxT("PASS %s"), (const wxChar *)m_passwd);
if (!SendCommand(command, '2')) {
Close();
return FALSE;
wxString my_host = host;
addr.Hostname(my_host);
- addr.Service(T("ftp"));
+ addr.Service(wxT("ftp"));
return Connect(addr);
}
return FALSE;
}
if (m_connected)
- SendCommand(wxString(T("QUIT")), '2');
+ SendCommand(wxString(wxT("QUIT")), '2');
return wxSocketClient::Close();
}
m_lastError = wxPROTO_STREAMING;
return FALSE;
}
- tmp_str = command + T("\r\n");
+ tmp_str = command + wxT("\r\n");
const wxWX2MBbuf tmp_buf = tmp_str.mb_str();
if (Write(wxMBSTRINGCAST tmp_buf, strlen(tmp_buf)).Error()) {
m_lastError = wxPROTO_NETERR;
if (m_lastResult.GetChar(3) == '-') {
wxString key = m_lastResult.Left((size_t)3);
- key += T(' ');
+ key += wxT(' ');
while (m_lastResult.Index(key) != 0) {
m_lastError = GetLine(this, m_lastResult);
{
wxString str = dir;
- str.Prepend(T("CWD "));
+ str.Prepend(wxT("CWD "));
return SendCommand(str, '2');
}
bool wxFTP::MkDir(const wxString& dir)
{
wxString str = dir;
- str.Prepend(T("MKD "));
+ str.Prepend(wxT("MKD "));
return SendCommand(str, '2');
}
{
wxString str = dir;
- str.Prepend(T("PWD "));
+ str.Prepend(wxT("PWD "));
return SendCommand(str, '2');
}
{
int beg, end;
- if (!SendCommand(T("PWD"), '2'))
+ if (!SendCommand(wxT("PWD"), '2'))
return wxString((char *)NULL);
- beg = m_lastResult.Find(T('\"'),FALSE);
- end = m_lastResult.Find(T('\"'),TRUE);
+ beg = m_lastResult.Find(wxT('\"'),FALSE);
+ end = m_lastResult.Find(wxT('\"'),TRUE);
return wxString(beg+1, end);
}
{
wxString str;
- str = T("RNFR ") + src;
+ str = wxT("RNFR ") + src;
if (!SendCommand(str, '3'))
return FALSE;
- str = T("RNTO ") + dst;
+ str = wxT("RNTO ") + dst;
return SendCommand(str, '2');
}
{
wxString str;
- str = T("DELE ");
+ str = wxT("DELE ");
str += path;
return SendCommand(str, '2');
}
wxUint16 port;
wxUint32 hostaddr;
- if (!SendCommand(T("PASV"), '2'))
+ if (!SendCommand(wxT("PASV"), '2'))
return NULL;
- addr_pos = m_lastResult.Find(T('('));
+ addr_pos = m_lastResult.Find(wxT('('));
if (addr_pos == -1) {
m_lastError = wxPROTO_PROTERR;
return NULL;
}
straddr = m_lastResult(addr_pos+1, m_lastResult.Length());
- wxSscanf((const wxChar *)straddr,T("%d,%d,%d,%d,%d,%d"),&a[2],&a[3],&a[4],&a[5],&a[0],&a[1]);
+ wxSscanf((const wxChar *)straddr,wxT("%d,%d,%d,%d,%d,%d"),&a[2],&a[3],&a[4],&a[5],&a[0],&a[1]);
hostaddr = (wxUint16)a[5] << 24 | (wxUint16)a[4] << 16 |
(wxUint16)a[3] << 8 | a[2];
bool wxFTP::Abort(void)
{
m_streaming = FALSE;
- if (!SendCommand(T("ABOR"), '4'))
+ if (!SendCommand(wxT("ABOR"), '4'))
return FALSE;
return GetResult('2');
}
int pos_size;
wxInputFTPStream *in_stream;
- if (!SendCommand(T("TYPE I"), '2'))
+ if (!SendCommand(wxT("TYPE I"), '2'))
return NULL;
wxSocketClient *sock = GetPort();
return NULL;
}
- tmp_str = T("RETR ") + wxURL::ConvertFromURI(path);
+ tmp_str = wxT("RETR ") + wxURL::ConvertFromURI(path);
if (!SendCommand(tmp_str, '1'))
return NULL;
in_stream = new wxInputFTPStream(this, sock);
- pos_size = m_lastResult.Index(T('('));
+ pos_size = m_lastResult.Index(wxT('('));
if (pos_size != wxNOT_FOUND) {
- wxString str_size = m_lastResult(pos_size+1, m_lastResult.Index(T(')'))-1);
+ wxString str_size = m_lastResult(pos_size+1, m_lastResult.Index(wxT(')'))-1);
in_stream->m_ftpsize = wxAtoi(WXSTRINGCAST str_size);
}
{
wxString tmp_str;
- if (!SendCommand(T("TYPE I"), '2'))
+ if (!SendCommand(wxT("TYPE I"), '2'))
return NULL;
wxSocketClient *sock = GetPort();
- tmp_str = T("STOR ") + path;
+ tmp_str = wxT("STOR ") + path;
if (!SendCommand(tmp_str, '1'))
return FALSE;
{
wxList *file_list = new wxList;
wxSocketBase *sock = GetPort();
- wxString tmp_str = T("NLST");
+ wxString tmp_str = wxT("NLST");
if (!wildcard.IsNull())
tmp_str += wildcard;
static cdef table[]={
// #ifdef __WXMSW__
- {T("AQUAMARINE"),112, 219, 147},
- {T("BLACK"),0, 0, 0},
- {T("BLUE"), 0, 0, 255},
- {T("BLUE VIOLET"), 159, 95, 159},
- {T("BROWN"), 165, 42, 42},
- {T("CADET BLUE"), 95, 159, 159},
- {T("CORAL"), 255, 127, 0},
- {T("CORNFLOWER BLUE"), 66, 66, 111},
- {T("CYAN"), 0, 255, 255},
- {T("DARK GREY"), 47, 47, 47}, // ?
-
- {T("DARK GREEN"), 47, 79, 47},
- {T("DARK OLIVE GREEN"), 79, 79, 47},
- {T("DARK ORCHID"), 153, 50, 204},
- {T("DARK SLATE BLUE"), 107, 35, 142},
- {T("DARK SLATE GREY"), 47, 79, 79},
- {T("DARK TURQUOISE"), 112, 147, 219},
- {T("DIM GREY"), 84, 84, 84},
- {T("FIREBRICK"), 142, 35, 35},
- {T("FOREST GREEN"), 35, 142, 35},
- {T("GOLD"), 204, 127, 50},
- {T("GOLDENROD"), 219, 219, 112},
- {T("GREY"), 128, 128, 128},
- {T("GREEN"), 0, 255, 0},
- {T("GREEN YELLOW"), 147, 219, 112},
- {T("INDIAN RED"), 79, 47, 47},
- {T("KHAKI"), 159, 159, 95},
- {T("LIGHT BLUE"), 191, 216, 216},
- {T("LIGHT GREY"), 192, 192, 192},
- {T("LIGHT STEEL BLUE"), 143, 143, 188},
- {T("LIME GREEN"), 50, 204, 50},
- {T("LIGHT MAGENTA"), 255, 0, 255},
- {T("MAGENTA"), 255, 0, 255},
- {T("MAROON"), 142, 35, 107},
- {T("MEDIUM AQUAMARINE"), 50, 204, 153},
- {T("MEDIUM GREY"), 100, 100, 100},
- {T("MEDIUM BLUE"), 50, 50, 204},
- {T("MEDIUM FOREST GREEN"), 107, 142, 35},
- {T("MEDIUM GOLDENROD"), 234, 234, 173},
- {T("MEDIUM ORCHID"), 147, 112, 219},
- {T("MEDIUM SEA GREEN"), 66, 111, 66},
- {T("MEDIUM SLATE BLUE"), 127, 0, 255},
- {T("MEDIUM SPRING GREEN"), 127, 255, 0},
- {T("MEDIUM TURQUOISE"), 112, 219, 219},
- {T("MEDIUM VIOLET RED"), 219, 112, 147},
- {T("MIDNIGHT BLUE"), 47, 47, 79},
- {T("NAVY"), 35, 35, 142},
- {T("ORANGE"), 204, 50, 50},
- {T("ORANGE RED"), 255, 0, 127},
- {T("ORCHID"), 219, 112, 219},
- {T("PALE GREEN"), 143, 188, 143},
- {T("PINK"), 188, 143, 234},
- {T("PLUM"), 234, 173, 234},
- {T("PURPLE"), 176, 0, 255},
- {T("RED"), 255, 0, 0},
- {T("SALMON"), 111, 66, 66},
- {T("SEA GREEN"), 35, 142, 107},
- {T("SIENNA"), 142, 107, 35},
- {T("SKY BLUE"), 50, 153, 204},
- {T("SLATE BLUE"), 0, 127, 255},
- {T("SPRING GREEN"), 0, 255, 127},
- {T("STEEL BLUE"), 35, 107, 142},
- {T("TAN"), 219, 147, 112},
- {T("THISTLE"), 216, 191, 216},
- {T("TURQUOISE"), 173, 234, 234},
- {T("VIOLET"), 79, 47, 79},
- {T("VIOLET RED"), 204, 50, 153},
- {T("WHEAT"), 216, 216, 191},
- {T("WHITE"), 255, 255, 255},
- {T("YELLOW"), 255, 255, 0},
- {T("YELLOW GREEN"), 153, 204, 50},
+ {wxT("AQUAMARINE"),112, 219, 147},
+ {wxT("BLACK"),0, 0, 0},
+ {wxT("BLUE"), 0, 0, 255},
+ {wxT("BLUE VIOLET"), 159, 95, 159},
+ {wxT("BROWN"), 165, 42, 42},
+ {wxT("CADET BLUE"), 95, 159, 159},
+ {wxT("CORAL"), 255, 127, 0},
+ {wxT("CORNFLOWER BLUE"), 66, 66, 111},
+ {wxT("CYAN"), 0, 255, 255},
+ {wxT("DARK GREY"), 47, 47, 47}, // ?
+
+ {wxT("DARK GREEN"), 47, 79, 47},
+ {wxT("DARK OLIVE GREEN"), 79, 79, 47},
+ {wxT("DARK ORCHID"), 153, 50, 204},
+ {wxT("DARK SLATE BLUE"), 107, 35, 142},
+ {wxT("DARK SLATE GREY"), 47, 79, 79},
+ {wxT("DARK TURQUOISE"), 112, 147, 219},
+ {wxT("DIM GREY"), 84, 84, 84},
+ {wxT("FIREBRICK"), 142, 35, 35},
+ {wxT("FOREST GREEN"), 35, 142, 35},
+ {wxT("GOLD"), 204, 127, 50},
+ {wxT("GOLDENROD"), 219, 219, 112},
+ {wxT("GREY"), 128, 128, 128},
+ {wxT("GREEN"), 0, 255, 0},
+ {wxT("GREEN YELLOW"), 147, 219, 112},
+ {wxT("INDIAN RED"), 79, 47, 47},
+ {wxT("KHAKI"), 159, 159, 95},
+ {wxT("LIGHT BLUE"), 191, 216, 216},
+ {wxT("LIGHT GREY"), 192, 192, 192},
+ {wxT("LIGHT STEEL BLUE"), 143, 143, 188},
+ {wxT("LIME GREEN"), 50, 204, 50},
+ {wxT("LIGHT MAGENTA"), 255, 0, 255},
+ {wxT("MAGENTA"), 255, 0, 255},
+ {wxT("MAROON"), 142, 35, 107},
+ {wxT("MEDIUM AQUAMARINE"), 50, 204, 153},
+ {wxT("MEDIUM GREY"), 100, 100, 100},
+ {wxT("MEDIUM BLUE"), 50, 50, 204},
+ {wxT("MEDIUM FOREST GREEN"), 107, 142, 35},
+ {wxT("MEDIUM GOLDENROD"), 234, 234, 173},
+ {wxT("MEDIUM ORCHID"), 147, 112, 219},
+ {wxT("MEDIUM SEA GREEN"), 66, 111, 66},
+ {wxT("MEDIUM SLATE BLUE"), 127, 0, 255},
+ {wxT("MEDIUM SPRING GREEN"), 127, 255, 0},
+ {wxT("MEDIUM TURQUOISE"), 112, 219, 219},
+ {wxT("MEDIUM VIOLET RED"), 219, 112, 147},
+ {wxT("MIDNIGHT BLUE"), 47, 47, 79},
+ {wxT("NAVY"), 35, 35, 142},
+ {wxT("ORANGE"), 204, 50, 50},
+ {wxT("ORANGE RED"), 255, 0, 127},
+ {wxT("ORCHID"), 219, 112, 219},
+ {wxT("PALE GREEN"), 143, 188, 143},
+ {wxT("PINK"), 188, 143, 234},
+ {wxT("PLUM"), 234, 173, 234},
+ {wxT("PURPLE"), 176, 0, 255},
+ {wxT("RED"), 255, 0, 0},
+ {wxT("SALMON"), 111, 66, 66},
+ {wxT("SEA GREEN"), 35, 142, 107},
+ {wxT("SIENNA"), 142, 107, 35},
+ {wxT("SKY BLUE"), 50, 153, 204},
+ {wxT("SLATE BLUE"), 0, 127, 255},
+ {wxT("SPRING GREEN"), 0, 255, 127},
+ {wxT("STEEL BLUE"), 35, 107, 142},
+ {wxT("TAN"), 219, 147, 112},
+ {wxT("THISTLE"), 216, 191, 216},
+ {wxT("TURQUOISE"), 173, 234, 234},
+ {wxT("VIOLET"), 79, 47, 79},
+ {wxT("VIOLET RED"), 204, 50, 153},
+ {wxT("WHEAT"), 216, 216, 191},
+ {wxT("WHITE"), 255, 255, 255},
+ {wxT("YELLOW"), 255, 255, 0},
+ {wxT("YELLOW GREEN"), 153, 204, 50},
// #endif
#if defined(__WXGTK__) || defined(__X__)
- {T("MEDIUM GOLDENROD"), 234, 234, 173},
- {T("MEDIUM FOREST GREEN"), 107, 142, 35},
- {T("LIGHT MAGENTA"), 255, 0, 255},
- {T("MEDIUM GREY"), 100, 100, 100},
+ {wxT("MEDIUM GOLDENROD"), 234, 234, 173},
+ {wxT("MEDIUM FOREST GREEN"), 107, 142, 35},
+ {wxT("LIGHT MAGENTA"), 255, 0, 255},
+ {wxT("MEDIUM GREY"), 100, 100, 100},
#endif
{0,0,0,0}
#else
each_font->GetFamily() == FamilyOrFontId &&
#endif
- ((each_font->GetFaceName() == T("")) || each_font->GetFaceName() == Face))
+ ((each_font->GetFaceName() == wxT("")) || each_font->GetFaceName() == Face))
//#endif
return each_font;
}
#if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxHTTP, wxProtocol)
-IMPLEMENT_PROTOCOL(wxHTTP, T("http"), T("80"), TRUE)
+IMPLEMENT_PROTOCOL(wxHTTP, wxT("http"), wxT("80"), TRUE)
#endif
#define HTTP_BSIZE 2048
wxString wxHTTP::GetContentType()
{
- return GetHeader(T("Content-Type"));
+ return GetHeader(wxT("Content-Type"));
}
void wxHTTP::SetProxyMode(bool on)
wxString *str = (wxString *)head->Data();
wxString buf;
- buf.Printf(T("%s: %s\n\r"), head->GetKeyString(), str->GetData());
+ buf.Printf(wxT("%s: %s\n\r"), head->GetKeyString(), str->GetData());
const wxWX2MBbuf cbuf = buf.mb_str();
Write(cbuf, strlen(cbuf));
return FALSE;
}
- if (!addr->Service(T("http")))
+ if (!addr->Service(wxT("http")))
addr->Service(80);
return TRUE;
wxString tmp_str = path;
// If there is no User-Agent defined, define it.
- if (GetHeader(T("User-Agent")).IsNull())
- SetHeader(T("User-Agent"), T("wxWindows 2.x"));
+ if (GetHeader(wxT("User-Agent")).IsNull())
+ SetHeader(wxT("User-Agent"), wxT("wxWindows 2.x"));
switch (req) {
case wxHTTP_GET:
- tmp_buf = T("GET");
+ tmp_buf = wxT("GET");
break;
default:
return FALSE;
SetFlags(NONE);
Notify(FALSE);
- wxSprintf(buf, T("%s %s HTTP/1.0\n\r"), tmp_buf, tmp_str.GetData());
+ wxSprintf(buf, wxT("%s %s HTTP/1.0\n\r"), tmp_buf, tmp_str.GetData());
const wxWX2MBbuf pathbuf = wxConvLibc.cWX2MB(buf);
Write(pathbuf, strlen(wxMBSTRINGCAST pathbuf));
SendHeaders();
return FALSE;
}
- if (!tmp_str.Contains(T("HTTP/"))) {
+ if (!tmp_str.Contains(wxT("HTTP/"))) {
// TODO: support HTTP v0.9 which can have no header.
// FIXME: tmp_str is not put back in the in-queue of the socket.
- SetHeader(T("Content-Length"), T("-1"));
- SetHeader(T("Content-Type"), T("none/none"));
+ SetHeader(wxT("Content-Length"), wxT("-1"));
+ SetHeader(wxT("Content-Type"), wxT("none/none"));
RestoreState();
return TRUE;
}
- wxStringTokenizer token(tmp_str,T(' '));
+ wxStringTokenizer token(tmp_str,wxT(' '));
wxString tmp_str2;
bool ret_value;
tmp_str2 = token.NextToken();
switch (tmp_str2[(unsigned int) 0]) {
- case T('1'):
+ case wxT('1'):
/* INFORMATION / SUCCESS */
break;
- case T('2'):
+ case wxT('2'):
/* SUCCESS */
break;
- case T('3'):
+ case wxT('3'):
/* REDIRECTION */
break;
default:
if (!BuildRequest(path, wxHTTP_GET))
return NULL;
- if (!GetHeader(T("Content-Length")).IsEmpty())
- inp_stream->m_httpsize = wxAtoi(WXSTRINGCAST GetHeader(T("Content-Length")));
+ if (!GetHeader(wxT("Content-Length")).IsEmpty())
+ inp_stream->m_httpsize = wxAtoi(WXSTRINGCAST GetHeader(wxT("Content-Length")));
else
inp_stream->m_httpsize = (size_t)-1;
int height = (int)wxINT32_SWAP_ON_BE( dbuf[1] );
if (width > 32767)
{
- wxLogError( T("Image width > 32767 pixels for file.") );
+ wxLogError( wxT("Image width > 32767 pixels for file.") );
return FALSE;
}
if (height > 32767)
{
- wxLogError( T("Image height > 32767 pixels for file.") );
+ wxLogError( wxT("Image height > 32767 pixels for file.") );
return FALSE;
}
int bpp = (int)wxUINT16_SWAP_ON_BE( aWord );
if (bpp != 1 && bpp != 4 && bpp != 8 && bpp != 16 && bpp != 24 && bpp != 32)
{
- wxLogError( T("unknown bitdepth in file.") );
+ wxLogError( wxT("unknown bitdepth in file.") );
return FALSE;
}
int comp = (int)wxINT32_SWAP_ON_BE( dbuf[0] );
if (comp != BI_RGB && comp != BI_RLE4 && comp != BI_RLE8 && comp != BI_BITFIELDS)
{
- wxLogError( T("unknown encoding in Windows BMP file.") );
+ wxLogError( wxT("unknown encoding in Windows BMP file.") );
return FALSE;
}
((comp == BI_RLE8) && (bpp != 8)) ||
((comp == BI_BITFIELDS) && (bpp != 16 && bpp != 32)))
{
- wxLogError( T("encoding of BMP doesn't match bitdepth.") );
+ wxLogError( wxT("encoding of BMP doesn't match bitdepth.") );
return FALSE;
}
if (bpp < 16)
cmap = (struct _cmap *)malloc(sizeof(struct _cmap) * ncolors);
if (!cmap)
{
- wxLogError( T("Cannot allocate RAM for color map in BMP file.") );
+ wxLogError( wxT("Cannot allocate RAM for color map in BMP file.") );
return FALSE;
}
}
unsigned char *ptr = image->GetData();
if (!ptr)
{
- wxLogError( T("Cannot allocate RAM for RGB data in file.") );
+ wxLogError( wxT("Cannot allocate RAM for RGB data in file.") );
if (cmap)
free(cmap);
return FALSE;
{
if (comp == BI_RLE4)
{
- wxLogError( T("Can't deal with 4bit encoded yet.") );
+ wxLogError( wxT("Can't deal with 4bit encoded yet.") );
image->Destroy();
free(cmap);
return FALSE;
{
wxImage image;
- wxCHECK_MSG( Ok(), image, T("invalid image") );
+ wxCHECK_MSG( Ok(), image, wxT("invalid image") );
- wxCHECK_MSG( (width > 0) && (height > 0), image, T("invalid image size") );
+ wxCHECK_MSG( (width > 0) && (height > 0), image, wxT("invalid image size") );
image.Create( width, height );
char unsigned *data = image.GetData();
- wxCHECK_MSG( data, image, T("unable to create image") );
+ wxCHECK_MSG( data, image, wxT("unable to create image") );
if (M_IMGDATA->m_hasMask)
image.SetMaskColour( M_IMGDATA->m_maskRed, M_IMGDATA->m_maskGreen, M_IMGDATA->m_maskBlue );
{
wxImage image;
- wxCHECK_MSG( Ok(), image, T("invalid image") );
+ wxCHECK_MSG( Ok(), image, wxT("invalid image") );
wxCHECK_MSG( (rect.GetLeft()>=0) && (rect.GetTop()>=0) && (rect.GetRight()<=GetWidth()) && (rect.GetBottom()<=GetHeight())
- , image, T("invalid subimage size") );
+ , image, wxT("invalid subimage size") );
int subwidth=rect.GetWidth();
const int subheight=rect.GetHeight();
char unsigned *subdata = image.GetData(), *data=GetData();
- wxCHECK_MSG( subdata, image, T("unable to create image") );
+ wxCHECK_MSG( subdata, image, wxT("unable to create image") );
if (M_IMGDATA->m_hasMask)
image.SetMaskColour( M_IMGDATA->m_maskRed, M_IMGDATA->m_maskGreen, M_IMGDATA->m_maskBlue );
void wxImage::SetRGB( int x, int y, unsigned char r, unsigned char g, unsigned char b )
{
- wxCHECK_RET( Ok(), T("invalid image") );
+ wxCHECK_RET( Ok(), wxT("invalid image") );
int w = M_IMGDATA->m_width;
int h = M_IMGDATA->m_height;
- wxCHECK_RET( (x>=0) && (y>=0) && (x<w) && (y<h), T("invalid image index") );
+ wxCHECK_RET( (x>=0) && (y>=0) && (x<w) && (y<h), wxT("invalid image index") );
long pos = (y * w + x) * 3;
unsigned char wxImage::GetRed( int x, int y )
{
- wxCHECK_MSG( Ok(), 0, T("invalid image") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid image") );
int w = M_IMGDATA->m_width;
int h = M_IMGDATA->m_height;
- wxCHECK_MSG( (x>=0) && (y>=0) && (x<w) && (y<h), 0, T("invalid image index") );
+ wxCHECK_MSG( (x>=0) && (y>=0) && (x<w) && (y<h), 0, wxT("invalid image index") );
long pos = (y * w + x) * 3;
unsigned char wxImage::GetGreen( int x, int y )
{
- wxCHECK_MSG( Ok(), 0, T("invalid image") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid image") );
int w = M_IMGDATA->m_width;
int h = M_IMGDATA->m_height;
- wxCHECK_MSG( (x>=0) && (y>=0) && (x<w) && (y<h), 0, T("invalid image index") );
+ wxCHECK_MSG( (x>=0) && (y>=0) && (x<w) && (y<h), 0, wxT("invalid image index") );
long pos = (y * w + x) * 3;
unsigned char wxImage::GetBlue( int x, int y )
{
- wxCHECK_MSG( Ok(), 0, T("invalid image") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid image") );
int w = M_IMGDATA->m_width;
int h = M_IMGDATA->m_height;
- wxCHECK_MSG( (x>=0) && (y>=0) && (x<w) && (y<h), 0, T("invalid image index") );
+ wxCHECK_MSG( (x>=0) && (y>=0) && (x<w) && (y<h), 0, wxT("invalid image index") );
long pos = (y * w + x) * 3;
char unsigned *wxImage::GetData() const
{
- wxCHECK_MSG( Ok(), (char unsigned *)NULL, T("invalid image") );
+ wxCHECK_MSG( Ok(), (char unsigned *)NULL, wxT("invalid image") );
return M_IMGDATA->m_data;
}
void wxImage::SetData( char unsigned *data )
{
- wxCHECK_RET( Ok(), T("invalid image") );
+ wxCHECK_RET( Ok(), wxT("invalid image") );
wxImageRefData *newRefData = new wxImageRefData();
void wxImage::SetMaskColour( unsigned char r, unsigned char g, unsigned char b )
{
- wxCHECK_RET( Ok(), T("invalid image") );
+ wxCHECK_RET( Ok(), wxT("invalid image") );
M_IMGDATA->m_maskRed = r;
M_IMGDATA->m_maskGreen = g;
unsigned char wxImage::GetMaskRed() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid image") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid image") );
return M_IMGDATA->m_maskRed;
}
unsigned char wxImage::GetMaskGreen() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid image") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid image") );
return M_IMGDATA->m_maskGreen;
}
unsigned char wxImage::GetMaskBlue() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid image") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid image") );
return M_IMGDATA->m_maskBlue;
}
void wxImage::SetMask( bool mask )
{
- wxCHECK_RET( Ok(), T("invalid image") );
+ wxCHECK_RET( Ok(), wxT("invalid image") );
M_IMGDATA->m_hasMask = mask;
}
bool wxImage::HasMask() const
{
- wxCHECK_MSG( Ok(), FALSE, T("invalid image") );
+ wxCHECK_MSG( Ok(), FALSE, wxT("invalid image") );
return M_IMGDATA->m_hasMask;
}
int wxImage::GetWidth() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid image") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid image") );
return M_IMGDATA->m_width;
}
int wxImage::GetHeight() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid image") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid image") );
return M_IMGDATA->m_height;
}
}
else {
- wxLogError( T("Can't load image from file '%s': file does not exist."), filename.c_str() );
+ wxLogError( wxT("Can't load image from file '%s': file does not exist."), filename.c_str() );
return FALSE;
}
}
else {
- wxLogError( T("Can't load image from file '%s': file does not exist."), filename.c_str() );
+ wxLogError( wxT("Can't load image from file '%s': file does not exist."), filename.c_str() );
return FALSE;
}
}
- wxLogWarning( T("No handler found for this image.") );
+ wxLogWarning( wxT("No handler found for this image.") );
return FALSE;
}
if (handler == NULL)
{
- wxLogWarning( T("No image handler for type %d defined."), type );
+ wxLogWarning( wxT("No image handler for type %d defined."), type );
return FALSE;
}
if (handler == NULL)
{
- wxLogWarning( T("No image handler for type %s defined."), mimetype.GetData() );
+ wxLogWarning( wxT("No image handler for type %s defined."), mimetype.GetData() );
return FALSE;
}
bool wxImage::SaveFile( wxOutputStream& stream, int type )
{
- wxCHECK_MSG( Ok(), FALSE, T("invalid image") );
+ wxCHECK_MSG( Ok(), FALSE, wxT("invalid image") );
wxImageHandler *handler = FindHandler(type);
if (handler == NULL)
{
- wxLogWarning( T("No image handler for type %d defined."), type );
+ wxLogWarning( wxT("No image handler for type %d defined."), type );
return FALSE;
}
bool wxImage::SaveFile( wxOutputStream& stream, const wxString& mimetype )
{
- wxCHECK_MSG( Ok(), FALSE, T("invalid image") );
+ wxCHECK_MSG( Ok(), FALSE, wxT("invalid image") );
wxImageHandler *handler = FindHandlerMime(mimetype);
if (handler == NULL)
{
- wxLogWarning( T("No image handler for type %s defined."), mimetype.GetData() );
+ wxLogWarning( wxT("No image handler for type %s defined."), mimetype.GetData() );
return FALSE;
}
}
else {
- wxLogError( T("Can't check image format of file '%s': file does not exist."), name.c_str() );
+ wxLogError( wxT("Can't check image format of file '%s': file does not exist."), name.c_str() );
return FALSE;
}
// set bitmap parameters
wxBitmap bitmap;
- wxCHECK_MSG( Ok(), bitmap, T("invalid image") );
+ wxCHECK_MSG( Ok(), bitmap, wxT("invalid image") );
bitmap.SetWidth( width );
bitmap.SetHeight( bmpHeight );
bitmap.SetDepth( wxDisplayDepth() );
// create a DIB header
int headersize = sizeof(BITMAPINFOHEADER);
LPBITMAPINFO lpDIBh = (BITMAPINFO *) malloc( headersize );
- wxCHECK_MSG( lpDIBh, bitmap, T("could not allocate memory for DIB header") );
+ wxCHECK_MSG( lpDIBh, bitmap, wxT("could not allocate memory for DIB header") );
// Fill in the DIB header
lpDIBh->bmiHeader.biSize = headersize;
lpDIBh->bmiHeader.biWidth = (DWORD)width;
lpBits = (unsigned char *)malloc( lpDIBh->bmiHeader.biSizeImage );
if( !lpBits )
{
- wxFAIL_MSG( T("could not allocate memory for DIB") );
+ wxFAIL_MSG( wxT("could not allocate memory for DIB") );
free( lpDIBh );
return bitmap;
}
// check the bitmap
if( !bitmap.Ok() )
{
- wxFAIL_MSG( T("invalid bitmap") );
+ wxFAIL_MSG( wxT("invalid bitmap") );
return;
}
unsigned char *data = GetData();
if( !data )
{
- wxFAIL_MSG( T("could not allocate data for image") );
+ wxFAIL_MSG( wxT("could not allocate data for image") );
return;
}
LPBITMAPINFO lpDIBh = (BITMAPINFO *) malloc( headersize );
if( !lpDIBh )
{
- wxFAIL_MSG( T("could not allocate data for DIB header") );
+ wxFAIL_MSG( wxT("could not allocate data for DIB header") );
free( data );
return;
}
lpBits = (unsigned char *) malloc( lpDIBh->bmiHeader.biSizeImage );
if( !lpBits )
{
- wxFAIL_MSG( T("could not allocate data for DIB") );
+ wxFAIL_MSG( wxT("could not allocate data for DIB") );
free( data );
free( lpDIBh );
return;
{
wxBitmap bitmap;
- wxCHECK_MSG( Ok(), bitmap, T("invalid image") );
+ wxCHECK_MSG( Ok(), bitmap, wxT("invalid image") );
int width = GetWidth();
int height = GetHeight();
wxImage::wxImage( const wxBitmap &bitmap )
{
- wxCHECK_RET( bitmap.Ok(), T("invalid bitmap") );
+ wxCHECK_RET( bitmap.Ok(), wxT("invalid bitmap") );
GdkImage *gdk_image = gdk_image_get( bitmap.GetPixmap(),
0, 0,
bitmap.GetWidth(), bitmap.GetHeight() );
- wxCHECK_RET( gdk_image, T("couldn't create image") );
+ wxCHECK_RET( gdk_image, wxT("couldn't create image") );
Create( bitmap.GetWidth(), bitmap.GetHeight() );
char unsigned *data = GetData();
if (!data)
{
gdk_image_destroy( gdk_image );
- wxFAIL_MSG( T("couldn't create image") );
+ wxFAIL_MSG( wxT("couldn't create image") );
return;
}
{
wxBitmap bitmap;
- wxCHECK_MSG( Ok(), bitmap, T("invalid image") );
+ wxCHECK_MSG( Ok(), bitmap, wxT("invalid image") );
int width = GetWidth();
int height = GetHeight();
vi = XGetVisualInfo( dpy, VisualIDMask|VisualDepthMask, &vinfo_template, &nitem );
- wxCHECK_MSG( vi, wxNullBitmap, T("no visual") );
+ wxCHECK_MSG( vi, wxNullBitmap, wxT("no visual") );
XFree( vi );
wxImage::wxImage( const wxBitmap &bitmap )
{
- wxCHECK_RET( bitmap.Ok(), T("invalid bitmap") );
+ wxCHECK_RET( bitmap.Ok(), wxT("invalid bitmap") );
Display *dpy = (Display*) wxGetDisplay();
Visual* vis = DefaultVisual( dpy, DefaultScreen( dpy ) );
bitmap.GetWidth(), bitmap.GetHeight(),
AllPlanes, ZPixmap );
- wxCHECK_RET( ximage, T("couldn't create image") );
+ wxCHECK_RET( ximage, wxT("couldn't create image") );
Create( bitmap.GetWidth(), bitmap.GetHeight() );
char unsigned *data = GetData();
if (!data)
{
XDestroyImage( ximage );
- wxFAIL_MSG( T("couldn't create image") );
+ wxFAIL_MSG( wxT("couldn't create image") );
return;
}
vi = XGetVisualInfo( dpy, VisualIDMask|VisualDepthMask, &vinfo_template, &nitem );
- wxCHECK_RET( vi, T("no visual") );
+ wxCHECK_RET( vi, wxT("no visual") );
if ((bpp == 16) && (vi->red_mask != 0xf800)) bpp = 15;
{
switch (error)
{
- case E_FORMATO: wxLogError(T("wxGIFHandler: error in image format")); break;
- case E_MEMORIA: wxLogError(T("wxGIFHandler: couldn't allocate memory")); break;
- default: wxLogError(T("wxGIFHandler: unknown error !!!"));
+ case E_FORMATO: wxLogError(wxT("wxGIFHandler: error in image format")); break;
+ case E_MEMORIA: wxLogError(wxT("wxGIFHandler: couldn't allocate memory")); break;
+ default: wxLogError(wxT("wxGIFHandler: unknown error !!!"));
}
}
delete decod;
wxOutputStream& WXUNUSED(stream), bool verbose )
{
if (verbose)
- wxLogDebug(T("wxGIFHandler is read-only!!"));
+ wxLogDebug(wxT("wxGIFHandler is read-only!!"));
return FALSE;
}
if (!CanRead(stream))
{
if (verbose)
- wxLogError(T("wxPCXHandler: this is not a PCX file"));
+ wxLogError(wxT("wxPCXHandler: this is not a PCX file"));
return FALSE;
}
{
switch (error)
{
- case E_FORMATO: wxLogError(T("wxPCXHandler: image format unsupported")); break;
- case E_MEMORIA: wxLogError(T("wxPCXHandler: couldn't allocate memory")); break;
- case E_VERSION: wxLogError(T("wxPCXHandler: version number too low")); break;
- default: wxLogError(T("wxPCXHandler: unknown error !!!"));
+ case E_FORMATO: wxLogError(wxT("wxPCXHandler: image format unsupported")); break;
+ case E_MEMORIA: wxLogError(wxT("wxPCXHandler: couldn't allocate memory")); break;
+ case E_VERSION: wxLogError(wxT("wxPCXHandler: version number too low")); break;
+ default: wxLogError(wxT("wxPCXHandler: unknown error !!!"));
}
}
image->Destroy();
bool wxPCXHandler::SaveFile( wxImage *WXUNUSED(image), wxOutputStream& WXUNUSED(stream), bool verbose )
{
if (verbose)
- wxLogError(T("wxPCXHandler::SaveFile still not implemented"));
+ wxLogError(wxT("wxPCXHandler::SaveFile still not implemented"));
return FALSE;
}
wxString line;
wxTextInputStream text_stream(stream);
- if (stream.Peek()==T('#'))
+ if (stream.Peek()==wxT('#'))
{
text_stream >> line;
Skip_Comment(stream);
wxTextInputStream text_stream(buf_stream);
Skip_Comment(buf_stream);
- if (buf_stream.GetC()==T('P')) c=buf_stream.GetC();
+ if (buf_stream.GetC()==wxT('P')) c=buf_stream.GetC();
switch (c)
{
- case T('2'):
- wxLogError(T("Loading Grey Ascii PNM image is not yet implemented."));
+ case wxT('2'):
+ wxLogError(wxT("Loading Grey Ascii PNM image is not yet implemented."));
return FALSE;
- case T('5'):
- wxLogError(T("Loading Grey Raw PNM image is not yet implemented."));
+ case wxT('5'):
+ wxLogError(wxT("Loading Grey Raw PNM image is not yet implemented."));
return FALSE;
- case T('3'): case T('6'): break;
+ case wxT('3'): case wxT('6'): break;
default :
- wxLogError(T("Loading PNM image : file not recognized."));
+ wxLogError(wxT("Loading PNM image : file not recognized."));
return FALSE;
}
unsigned char *ptr = image->GetData();
if (!ptr)
{
- wxLogError( T("Cannot allocate RAM for RGB data in PNM file.") );
+ wxLogError( wxT("Cannot allocate RAM for RGB data in PNM file.") );
return FALSE;
}
if (buf_stream.LastError()!=wxSTREAM_NOERROR)
{
- wxLogError(T("Loading PNM image : file seems truncated."));
+ wxLogError(wxT("Loading PNM image : file seems truncated."));
return FALSE;
}
}
Skip_Comment(stream);
- if (stream.GetC()==T('P'))
+ if (stream.GetC()==wxT('P'))
switch (stream.GetC())
{
- case T('3'): case T('6'):
+ case wxT('3'): case wxT('6'):
stream.SeekI(pos);
return TRUE;
}
class /* no WXDLLEXPORT */ wxConsoleApp : public wxApp
{
public:
- virtual int OnRun() { wxFAIL_MSG(T("unreachable")); return 0; }
+ virtual int OnRun() { wxFAIL_MSG(wxT("unreachable")); return 0; }
};
// ----------------------------------------------------------------------------
}
wxASSERT_MSG( !wxTheApp,
- T("either call wxInitialize or create app, not both!") );
+ wxT("either call wxInitialize or create app, not both!") );
wxClassInfo::InitializeClasses();
// search first in prefix/fr/LC_MESSAGES, then in prefix/fr and finally in
// prefix (assuming the language is 'fr')
searchPath << prefix << wxFILE_SEP_PATH << lang << wxFILE_SEP_PATH
- << T("LC_MESSAGES") << wxPATH_SEP
+ << wxT("LC_MESSAGES") << wxPATH_SEP
<< prefix << wxFILE_SEP_PATH << lang << wxPATH_SEP
<< prefix << wxPATH_SEP;
// then take the current directory
// FIXME it should be the directory of the executable
- searchPath << GetAllMsgCatalogSubdirs(T("."), lang) << wxPATH_SEP;
+ searchPath << GetAllMsgCatalogSubdirs(wxT("."), lang) << wxPATH_SEP;
// and finally add some standard ones
searchPath
- << GetAllMsgCatalogSubdirs(T("/usr/share/locale"), lang) << wxPATH_SEP
- << GetAllMsgCatalogSubdirs(T("/usr/lib/locale"), lang) << wxPATH_SEP
- << GetAllMsgCatalogSubdirs(T("/usr/local/share/locale"), lang);
+ << GetAllMsgCatalogSubdirs(wxT("/usr/share/locale"), lang) << wxPATH_SEP
+ << GetAllMsgCatalogSubdirs(wxT("/usr/lib/locale"), lang) << wxPATH_SEP
+ << GetAllMsgCatalogSubdirs(wxT("/usr/local/share/locale"), lang);
return searchPath;
}
#endif // 0
wxString searchPath = GetFullSearchPath(szDirPrefix);
- const wxChar *sublocale = wxStrchr(szDirPrefix, T('_'));
+ const wxChar *sublocale = wxStrchr(szDirPrefix, wxT('_'));
if ( sublocale )
{
// also add just base locale name: for things like "fr_BE" (belgium
// (we're using an object because we have several return paths)
NoTransErr noTransErr;
- wxLogVerbose(T("looking for catalog '%s' in path '%s'."),
+ wxLogVerbose(wxT("looking for catalog '%s' in path '%s'."),
szName.c_str(), searchPath.c_str());
wxString strFullName;
m_pMsgCat = NULL;
bool bOk = TRUE;
if ( bLoadDefault )
- bOk = AddCatalog(T("wxstd"));
+ bOk = AddCatalog(wxT("wxstd"));
return bOk;
}
switch ( m_keyType )
{
default:
- wxFAIL_MSG(T("bad key type."));
+ wxFAIL_MSG(wxT("bad key type."));
// let compiler optimize the line above away in release build
// by not putting return here...
break;
default:
- wxFAIL_MSG(T("invalid key type"));
+ wxFAIL_MSG(wxT("invalid key type"));
}
if ( previous )
int wxNodeBase::IndexOf() const
{
- wxCHECK_MSG( m_list, wxNOT_FOUND, T("node doesn't belong to a list in IndexOf"));
+ wxCHECK_MSG( m_list, wxNOT_FOUND, wxT("node doesn't belong to a list in IndexOf"));
// It would be more efficient to implement IndexOf() completely inside
// wxListBase (only traverse the list once), but this is probably a more
void wxListBase::DoCopy(const wxListBase& list)
{
wxASSERT_MSG( !list.m_destroy,
- T("copying list which owns it's elements is a bad idea") );
+ wxT("copying list which owns it's elements is a bad idea") );
m_count = list.m_count;
m_destroy = list.m_destroy;
{
// all objects in a keyed list should have a key
wxCHECK_MSG( m_keyType == wxKEY_NONE, (wxNodeBase *)NULL,
- T("need a key for the object to append") );
+ wxT("need a key for the object to append") );
wxNodeBase *node = CreateNode(m_nodeLast, (wxNodeBase *)NULL, object);
wxCHECK_MSG( (m_keyType == wxKEY_INTEGER) ||
(m_keyType == wxKEY_NONE && m_count == 0),
(wxNodeBase *)NULL,
- T("can't append object with numeric key to this list") );
+ wxT("can't append object with numeric key to this list") );
wxNodeBase *node = CreateNode(m_nodeLast, (wxNodeBase *)NULL, object, key);
return AppendCommon(node);
wxCHECK_MSG( (m_keyType == wxKEY_STRING) ||
(m_keyType == wxKEY_NONE && m_count == 0),
(wxNodeBase *)NULL,
- T("can't append object with string key to this list") );
+ wxT("can't append object with string key to this list") );
wxNodeBase *node = CreateNode(m_nodeLast, (wxNodeBase *)NULL, object, key);
return AppendCommon(node);
{
// all objects in a keyed list should have a key
wxCHECK_MSG( m_keyType == wxKEY_NONE, (wxNodeBase *)NULL,
- T("need a key for the object to insert") );
+ wxT("need a key for the object to insert") );
wxCHECK_MSG( !position || position->m_list == this, (wxNodeBase *)NULL,
- T("can't insert before a node from another list") );
+ wxT("can't insert before a node from another list") );
// previous and next node for the node being inserted
wxNodeBase *prev, *next;
}
}
- wxFAIL_MSG( T("invalid index in wxListBase::Item") );
+ wxFAIL_MSG( wxT("invalid index in wxListBase::Item") );
return (wxNodeBase *)NULL;
}
wxNodeBase *wxListBase::Find(const wxListKey& key) const
{
wxASSERT_MSG( m_keyType == key.GetKeyType(),
- T("this list is not keyed on the type of this key") );
+ wxT("this list is not keyed on the type of this key") );
for ( wxNodeBase *current = GetFirst(); current; current = current->GetNext() )
{
wxNodeBase *wxListBase::DetachNode(wxNodeBase *node)
{
- wxCHECK_MSG( node, NULL, T("detaching NULL wxNodeBase") );
+ wxCHECK_MSG( node, NULL, wxT("detaching NULL wxNodeBase") );
wxCHECK_MSG( node->m_list == this, NULL,
- T("detaching node which is not from this list") );
+ wxT("detaching node which is not from this list") );
// update the list
wxNodeBase **prevNext = node->GetPrevious() ? &node->GetPrevious()->m_next
wxStrftime(buf, WXSIZEOF(buf), ms_timestamp, localtime(&timeNow));
str->Empty();
- *str << buf << T(": ");
+ *str << buf << wxT(": ");
}
}
void wxLog::DoLogString(const wxChar *WXUNUSED(szString), time_t WXUNUSED(t))
{
- wxFAIL_MSG(T("DoLogString must be overriden if it's called."));
+ wxFAIL_MSG(wxT("DoLogString must be overriden if it's called."));
}
void wxLog::Flush()
{
wxString str;
TimeStamp(&str);
- str << szString << T('\n');
+ str << szString << wxT('\n');
fputs(str.mb_str(), m_fp);
fflush(m_fp);
// under Windows, programs usually don't have stderr at all, so make show the
// messages also under debugger
#ifdef __WXMSW__
- OutputDebugString(str + T('\r'));
+ OutputDebugString(str + wxT('\r'));
#endif // MSW
}
bool wxLog::ms_doLog = TRUE;
bool wxLog::ms_bAutoCreate = TRUE;
-const wxChar *wxLog::ms_timestamp = T("%X"); // time only, no date
+const wxChar *wxLog::ms_timestamp = wxT("%X"); // time only, no date
wxTraceMask wxLog::ms_ulTraceMask = (wxTraceMask)0;
wxArrayString wxLog::ms_aTraceMasks;
// copy it to our buffer and free memory
wxStrncpy(s_szBuf, (const wxChar *)lpMsgBuf, WXSIZEOF(s_szBuf) - 1);
- s_szBuf[WXSIZEOF(s_szBuf) - 1] = T('\0');
+ s_szBuf[WXSIZEOF(s_szBuf) - 1] = wxT('\0');
LocalFree(lpMsgBuf);
// returned string is capitalized and ended with '\r\n' - bad
size_t len = wxStrlen(s_szBuf);
if ( len > 0 ) {
// truncate string
- if ( s_szBuf[len - 2] == T('\r') )
- s_szBuf[len - 2] = T('\0');
+ if ( s_szBuf[len - 2] == wxT('\r') )
+ s_szBuf[len - 2] = wxT('\0');
}
return s_szBuf;
// make life easier for people using VC++ IDE: clicking on the message
// will take us immediately to the place of the failed assert
#ifdef __VISUALC__
- wxSprintf(szBuf, T("%s(%d): assert failed"), szFile, nLine);
+ wxSprintf(szBuf, wxT("%s(%d): assert failed"), szFile, nLine);
#else // !VC++
// make the error message more clear for all the others
- wxSprintf(szBuf, T("Assert failed in file %s at line %d"), szFile, nLine);
+ wxSprintf(szBuf, wxT("Assert failed in file %s at line %d"), szFile, nLine);
#endif // VC/!VC
if ( szMsg != NULL ) {
- wxStrcat(szBuf, T(": "));
+ wxStrcat(szBuf, wxT(": "));
wxStrcat(szBuf, szMsg);
}
else {
- wxStrcat(szBuf, T("."));
+ wxStrcat(szBuf, wxT("."));
}
if ( !s_bNoAsserts ) {
#if wxUSE_GUI
// this message is intentionally not translated - it is for
// developpers only
- wxStrcat(szBuf, T("\nDo you want to stop the program?"
+ wxStrcat(szBuf, wxT("\nDo you want to stop the program?"
"\nYou can also choose [Cancel] to suppress "
"further warnings."));
*/
void wxMemStruct::ErrorMsg (const char * mesg)
{
- wxLogDebug(T("wxWindows memory checking error: %s"), mesg);
+ wxLogDebug(wxT("wxWindows memory checking error: %s"), mesg);
PrintNode ();
// << m_fileName << ' ' << m_lineNum << endl;
*/
void wxMemStruct::ErrorMsg ()
{
- wxLogDebug(T("wxWindows over/underwrite memory error:"));
+ wxLogDebug(wxT("wxWindows over/underwrite memory error:"));
PrintNode ();
// cerr << m_fileName << ' ' << m_lineNum << endl;
// Let's put this in standard form so IDEs can load the file at the appropriate
// line
- wxString msg(T(""));
+ wxString msg(wxT(""));
if (m_fileName)
- msg.Printf(T("%s(%d): "), m_fileName, (int)m_lineNum);
+ msg.Printf(wxT("%s(%d): "), m_fileName, (int)m_lineNum);
if (info && info->GetClassName())
msg += info->GetClassName();
else
- msg += T("object");
+ msg += wxT("object");
wxString msg2;
- msg2.Printf(T(" at $%lX, size %d"), (long)GetActualData(), (int)RequestSize());
+ msg2.Printf(wxT(" at $%lX, size %d"), (long)GetActualData(), (int)RequestSize());
msg += msg2;
wxLogDebug(msg);
wxString msg("");
if (m_fileName)
- msg.Printf(T("%s(%d): "), m_fileName, (int)m_lineNum);
- msg += T("non-object data");
+ msg.Printf(wxT("%s(%d): "), m_fileName, (int)m_lineNum);
+ msg += wxT("non-object data");
wxString msg2;
- msg2.Printf(T(" at $%lX, size %d\n"), (long)GetActualData(), (int)RequestSize());
+ msg2.Printf(wxT(" at $%lX, size %d\n"), (long)GetActualData(), (int)RequestSize());
msg += msg2;
wxLogDebug(msg);
{
wxObject *obj = (wxObject *)m_actualData;
- wxString msg(T(""));
+ wxString msg(wxT(""));
if (m_fileName)
- msg.Printf(T("%s(%d): "), m_fileName, (int)m_lineNum);
+ msg.Printf(wxT("%s(%d): "), m_fileName, (int)m_lineNum);
/* TODO: We no longer have a stream (using wxLogDebug) so we can't dump it.
if (obj->GetClassInfo() && obj->GetClassInfo()->GetClassName())
msg += obj->GetClassInfo()->GetClassName();
else
- msg += T("unknown object class");
+ msg += wxT("unknown object class");
wxString msg2("");
- msg2.Printf(T(" at $%lX, size %d"), (long)GetActualData(), (int)RequestSize());
+ msg2.Printf(wxT(" at $%lX, size %d"), (long)GetActualData(), (int)RequestSize());
msg += msg2;
wxLogDebug(msg);
}
else
{
- wxString msg(T(""));
+ wxString msg(wxT(""));
if (m_fileName)
- msg.Printf(T("%s(%d): "), m_fileName, (int)m_lineNum);
+ msg.Printf(wxT("%s(%d): "), m_fileName, (int)m_lineNum);
wxString msg2("");
- msg2.Printf(T("non-object data at $%lX, size %d"), (long)GetActualData(), (int)RequestSize() );
+ msg2.Printf(wxT("non-object data at $%lX, size %d"), (long)GetActualData(), (int)RequestSize() );
msg += msg2;
wxLogDebug(msg);
}
else {
// Can't use the error routines as we have no recognisable object.
#ifndef __WXGTK__
- wxLogDebug(T("Can't verify memory struct - all bets are off!"));
+ wxLogDebug(wxT("Can't verify memory struct - all bets are off!"));
#endif
}
return 0;
// if (TRUE)
{
- wxChar* appName = T("application");
+ wxChar* appName = wxT("application");
wxString appNameStr("");
if (wxTheApp)
{
appNameStr = wxTheApp->GetAppName();
appName = WXSTRINGCAST appNameStr;
- wxLogDebug(T("----- Memory dump of %s at %s -----"), appName, WXSTRINGCAST wxNow() );
+ wxLogDebug(wxT("----- Memory dump of %s at %s -----"), appName, WXSTRINGCAST wxNow() );
}
else
{
- wxLogDebug( T("----- Memory dump -----") );
+ wxLogDebug( wxT("----- Memory dump -----") );
}
}
TraverseList ((PmSFV)&wxMemStruct::Dump, (checkPoint ? checkPoint->m_next : (wxMemStruct*)NULL));
- wxLogDebug( T("") );
- wxLogDebug( T("") );
+ wxLogDebug( wxT("") );
+ wxLogDebug( wxT("") );
return TRUE;
#else
// if (TRUE)
{
- wxChar* appName = T("application");
- wxString appNameStr(T(""));
+ wxChar* appName = wxT("application");
+ wxString appNameStr(wxT(""));
if (wxTheApp)
{
appNameStr = wxTheApp->GetAppName();
appName = WXSTRINGCAST appNameStr;
- wxLogDebug(T("----- Memory statistics of %s at %s -----"), appName, WXSTRINGCAST wxNow() );
+ wxLogDebug(wxT("----- Memory statistics of %s at %s -----"), appName, WXSTRINGCAST wxNow() );
}
else
{
- wxLogDebug( T("----- Memory statistics -----") );
+ wxLogDebug( wxT("----- Memory statistics -----") );
}
}
// if (detailed && (data != (void*)m_debugStream) && (data != (void*) m_streamBuf))
if (detailed && (data != (void*) wxLog::GetActiveTarget()))
{
- wxChar *className = T("nonobject");
+ wxChar *className = wxT("nonobject");
if (st->m_isObject && st->GetActualData())
{
wxObject *obj = (wxObject *)st->GetActualData();
{
while (list)
{
- wxLogDebug(T("%ld objects of class %s, total size %ld"),
+ wxLogDebug(wxT("%ld objects of class %s, total size %ld"),
list->instanceCount, list->instanceClass, list->totalSize);
wxDebugStatsStruct *old = list;
list = old->next;
free((char *)old);
}
- wxLogDebug(T(""));
+ wxLogDebug(wxT(""));
}
SetDebugMode(currentMode);
- wxLogDebug(T("Number of object items: %ld"), noObjectNodes);
- wxLogDebug(T("Number of non-object items: %ld"), noNonObjectNodes);
- wxLogDebug(T("Total allocated size: %ld"), totalSize);
- wxLogDebug(T(""));
- wxLogDebug(T(""));
+ wxLogDebug(wxT("Number of object items: %ld"), noObjectNodes);
+ wxLogDebug(wxT("Number of non-object items: %ld"), noNonObjectNodes);
+ wxLogDebug(wxT("Total allocated size: %ld"), totalSize);
+ wxLogDebug(wxT(""));
+ wxLogDebug(wxT(""));
return TRUE;
#else
// if (TRUE)
{
- wxChar* appName = T("application");
- wxString appNameStr(T(""));
+ wxChar* appName = wxT("application");
+ wxString appNameStr(wxT(""));
if (wxTheApp)
{
appNameStr = wxTheApp->GetAppName();
appName = WXSTRINGCAST appNameStr;
- wxLogDebug(T("----- Classes in %s -----"), appName);
+ wxLogDebug(wxT("----- Classes in %s -----"), appName);
}
}
if (info->GetClassName())
{
wxString msg(info->GetClassName());
- msg += T(" ");
+ msg += wxT(" ");
if (info->GetBaseClassName1() && !info->GetBaseClassName2())
{
- msg += T("is a ");
+ msg += wxT("is a ");
msg += info->GetBaseClassName1();
}
else if (info->GetBaseClassName1() && info->GetBaseClassName2())
{
- msg += T("is a ");
+ msg += wxT("is a ");
msg += info->GetBaseClassName1() ;
- msg += T(", ");
+ msg += wxT(", ");
msg += info->GetBaseClassName2() ;
}
if (info->GetConstructor())
- msg += T(": dynamic");
+ msg += wxT(": dynamic");
wxLogDebug(msg);
}
node = wxClassInfo::sm_classTable->Next();
n ++;
}
- wxLogDebug(T(""));
- wxLogDebug(T("There are %d classes derived from wxObject."), n);
- wxLogDebug(T(""));
- wxLogDebug(T(""));
+ wxLogDebug(wxT(""));
+ wxLogDebug(wxT("There are %d classes derived from wxObject."), n);
+ wxLogDebug(wxT(""));
+ wxLogDebug(wxT(""));
return TRUE;
}
int totSize = wxDebugContext::TotSize (size);
char * buf = (char *) malloc(totSize);
if (!buf) {
- wxLogDebug(T("Call to malloc (%ld) failed."), (long)size);
+ wxLogDebug(wxT("Call to malloc (%ld) failed."), (long)size);
return 0;
}
wxMemStruct * st = (wxMemStruct *)buf;
break;
}
- wxASSERT_MSG( n == pos, T("invalid position in MailCapEntry::Insert") );
+ wxASSERT_MSG( n == pos, wxT("invalid position in MailCapEntry::Insert") );
m_next = cur->m_next;
cur->m_next = this;
// append this element to the list
void Append(MailCapEntry *next)
{
- wxCHECK_RET( next != NULL, T("Append()ing to what?") );
+ wxCHECK_RET( next != NULL, wxT("Append()ing to what?") );
// FIXME slooow...
MailCapEntry *cur;
cur->m_next = this;
- wxASSERT_MSG( !m_next, T("Append()ing element already in the list?") );
+ wxASSERT_MSG( !m_next, wxT("Append()ing element already in the list?") );
}
private:
bool hasFilename = FALSE;
wxString str;
- for ( const wxChar *pc = command.c_str(); *pc != T('\0'); pc++ ) {
- if ( *pc == T('%') ) {
+ for ( const wxChar *pc = command.c_str(); *pc != wxT('\0'); pc++ ) {
+ if ( *pc == wxT('%') ) {
switch ( *++pc ) {
- case T('s'):
+ case wxT('s'):
// '%s' expands into file name (quoted because it might
// contain spaces) - except if there are already quotes
// there because otherwise some programs may get confused
// by double double quotes
#if 0
- if ( *(pc - 2) == T('"') )
+ if ( *(pc - 2) == wxT('"') )
str << params.GetFileName();
else
- str << T('"') << params.GetFileName() << T('"');
+ str << wxT('"') << params.GetFileName() << wxT('"');
#endif
str << params.GetFileName();
hasFilename = TRUE;
break;
- case T('t'):
+ case wxT('t'):
// '%t' expands into MIME type (quote it too just to be
// consistent)
- str << T('\'') << params.GetMimeType() << T('\'');
+ str << wxT('\'') << params.GetMimeType() << wxT('\'');
break;
- case T('{'):
+ case wxT('{'):
{
- const wxChar *pEnd = wxStrchr(pc, T('}'));
+ const wxChar *pEnd = wxStrchr(pc, wxT('}'));
if ( pEnd == NULL ) {
wxString mimetype;
wxLogWarning(_("Unmatched '{' in an entry for "
"mime type %s."),
params.GetMimeType().c_str());
- str << T("%{");
+ str << wxT("%{");
}
else {
wxString param(pc + 1, pEnd - pc - 1);
- str << T('\'') << params.GetParamValue(param) << T('\'');
+ str << wxT('\'') << params.GetParamValue(param) << wxT('\'');
pc = pEnd;
}
}
break;
- case T('n'):
- case T('F'):
+ case wxT('n'):
+ case wxT('F'):
// TODO %n is the number of parts, %F is an array containing
// the names of temp files these parts were written to
// and their mime types.
break;
default:
- wxLogDebug(T("Unknown field %%%c in command '%s'."),
+ wxLogDebug(wxT("Unknown field %%%c in command '%s'."),
*pc, command.c_str());
str << *pc;
}
// metamail(1) man page states that if the mailcap entry doesn't have '%s'
// the program will accept the data on stdin: so give it to it!
if ( !hasFilename && !str.IsEmpty() ) {
- str << T(" < '") << params.GetFileName() << T('\'');
+ str << wxT(" < '") << params.GetFileName() << wxT('\'');
}
return str;
bool wxMimeTypesManager::IsOfType(const wxString& mimeType,
const wxString& wildcard)
{
- wxASSERT_MSG( mimeType.Find(T('*')) == wxNOT_FOUND,
- T("first MIME type can't contain wildcards") );
+ wxASSERT_MSG( mimeType.Find(wxT('*')) == wxNOT_FOUND,
+ wxT("first MIME type can't contain wildcards") );
// all comparaisons are case insensitive (2nd arg of IsSameAs() is FALSE)
- if ( wildcard.BeforeFirst(T('/')).IsSameAs(mimeType.BeforeFirst(T('/')), FALSE) )
+ if ( wildcard.BeforeFirst(wxT('/')).IsSameAs(mimeType.BeforeFirst(wxT('/')), FALSE) )
{
- wxString strSubtype = wildcard.AfterFirst(T('/'));
+ wxString strSubtype = wildcard.AfterFirst(wxT('/'));
- if ( strSubtype == T("*") ||
- strSubtype.IsSameAs(mimeType.AfterFirst(T('/')), FALSE) )
+ if ( strSubtype == wxT("*") ||
+ strSubtype.IsSameAs(mimeType.AfterFirst(wxT('/')), FALSE) )
{
// matches (either exactly or it's a wildcard)
return TRUE;
// suppress possible error messages
wxLogNull nolog;
wxString strKey;
- strKey << m_strFileType << T("\\shell\\") << verb << T("\\command");
+ strKey << m_strFileType << wxT("\\shell\\") << verb << wxT("\\command");
wxRegKey key(wxRegKey::HKCR, strKey);
wxString command;
if ( key.Open() ) {
// it's the default value of the key
- if ( key.QueryValue(T(""), command) ) {
+ if ( key.QueryValue(wxT(""), command) ) {
// transform it from '%1' to '%s' style format string
// NB: we don't make any attempt to verify that the string is valid,
bool foundFilename = FALSE;
size_t len = command.Len();
for ( size_t n = 0; (n < len) && !foundFilename; n++ ) {
- if ( command[n] == T('%') &&
- (n + 1 < len) && command[n + 1] == T('1') ) {
+ if ( command[n] == wxT('%') &&
+ (n + 1 < len) && command[n + 1] == wxT('1') ) {
// replace it with '%s'
- command[n + 1] = T('s');
+ command[n + 1] = wxT('s');
foundFilename = TRUE;
}
if ( !foundFilename ) {
// we didn't find any '%1'!
// HACK: append the filename at the end, hope that it will do
- command << T(" %s");
+ command << wxT(" %s");
}
}
}
cmd = m_info->GetOpenCommand();
}
else {
- cmd = GetCommand(T("open"));
+ cmd = GetCommand(wxT("open"));
}
*openCmd = wxFileType::ExpandCommand(cmd, params);
cmd = m_info->GetPrintCommand();
}
else {
- cmd = GetCommand(T("print"));
+ cmd = GetCommand(wxT("print"));
}
*printCmd = wxFileType::ExpandCommand(cmd, params);
// suppress possible error messages
wxLogNull nolog;
- wxRegKey key(wxRegKey::HKCR, /*m_strFileType*/ T(".") + m_ext);
- if ( key.Open() && key.QueryValue(T("Content Type"), *mimeType) ) {
+ wxRegKey key(wxRegKey::HKCR, /*m_strFileType*/ wxT(".") + m_ext);
+ if ( key.Open() && key.QueryValue(wxT("Content Type"), *mimeType) ) {
return TRUE;
}
else {
}
wxString strIconKey;
- strIconKey << m_strFileType << T("\\DefaultIcon");
+ strIconKey << m_strFileType << wxT("\\DefaultIcon");
// suppress possible error messages
wxLogNull nolog;
if ( key.Open() ) {
wxString strIcon;
// it's the default value of the key
- if ( key.QueryValue(T(""), strIcon) ) {
+ if ( key.QueryValue(wxT(""), strIcon) ) {
// the format is the following: <full path to file>, <icon index>
// NB: icon index may be negative as well as positive and the full
// path may contain the environment variables inside '%'
- wxString strFullPath = strIcon.BeforeLast(T(',')),
- strIndex = strIcon.AfterLast(T(','));
+ wxString strFullPath = strIcon.BeforeLast(wxT(',')),
+ strIndex = strIcon.AfterLast(wxT(','));
// index may be omitted, in which case BeforeLast(',') is empty and
// AfterLast(',') is the whole string
if ( strFullPath.IsEmpty() ) {
strFullPath = strIndex;
- strIndex = T("0");
+ strIndex = wxT("0");
}
wxString strExpPath = wxExpandEnvVars(strFullPath);
switch ( (int)hIcon ) {
case 0: // means no icons were found
case 1: // means no such file or it wasn't a DLL/EXE/OCX/ICO/...
- wxLogDebug(T("incorrect registry entry '%s': no such icon."),
+ wxLogDebug(wxT("incorrect registry entry '%s': no such icon."),
key.GetName().c_str());
break;
if ( key.Open() ) {
// it's the default value of the key
- if ( key.QueryValue(T(""), *desc) ) {
+ if ( key.QueryValue(wxT(""), *desc) ) {
return TRUE;
}
}
{
// add the leading point if necessary
wxString str;
- if ( ext[0u] != T('.') ) {
- str = T('.');
+ if ( ext[0u] != wxT('.') ) {
+ str = wxT('.');
}
str << ext;
wxRegKey key(wxRegKey::HKCR, str);
if ( key.Open() ) {
// it's the default value of the key
- if ( key.QueryValue(T(""), strFileType) ) {
+ if ( key.QueryValue(wxT(""), strFileType) ) {
// create the new wxFileType object
wxFileType *fileType = new wxFileType;
fileType->m_impl->Init(strFileType, ext);
{
// HACK I don't know of any official documentation which mentions this
// location, but as a matter of fact IE uses it, so why not we?
- static const wxChar *szMimeDbase = T("MIME\\Database\\Content Type\\");
+ static const wxChar *szMimeDbase = wxT("MIME\\Database\\Content Type\\");
wxString strKey = szMimeDbase;
strKey << mimeType;
wxString ext;
wxRegKey key(wxRegKey::HKCR, strKey);
if ( key.Open() ) {
- if ( key.QueryValue(T("Extension"), ext) ) {
+ if ( key.QueryValue(wxT("Extension"), ext) ) {
return GetFileTypeFromExtension(ext);
}
}
if ( command.IsEmpty() || (wxSystem(command) == 0) ) {
// ok, passed
- wxLogTrace(T("Test '%s' for mime type '%s' succeeded."),
+ wxLogTrace(wxT("Test '%s' for mime type '%s' succeeded."),
command.c_str(), params.GetMimeType().c_str());
break;
}
else {
- wxLogTrace(T("Test '%s' for mime type '%s' failed."),
+ wxLogTrace(wxT("Test '%s' for mime type '%s' failed."),
command.c_str(), params.GetMimeType().c_str());
}
// one extension in the space or comma delimitid list
wxString strExt;
for ( const wxChar *p = strExtensions; ; p++ ) {
- if ( *p == T(' ') || *p == T(',') || *p == T('\0') ) {
+ if ( *p == wxT(' ') || *p == wxT(',') || *p == wxT('\0') ) {
if ( !strExt.IsEmpty() ) {
extensions.Add(strExt);
strExt.Empty();
//else: repeated spaces (shouldn't happen, but it's not that
// important if it does happen)
- if ( *p == T('\0') )
+ if ( *p == wxT('\0') )
break;
}
- else if ( *p == T('.') ) {
+ else if ( *p == wxT('.') ) {
// remove the dot from extension (but only if it's the first char)
if ( !strExt.IsEmpty() ) {
- strExt += T('.');
+ strExt += wxT('.');
}
//else: no, don't append it
}
// (taken from metamail(1) sources)
static const wxChar *aStandardLocations[] =
{
- T("/etc"),
- T("/usr/etc"),
- T("/usr/local/etc"),
- T("/etc/mail"),
- T("/usr/public/lib")
+ wxT("/etc"),
+ wxT("/usr/etc"),
+ wxT("/usr/local/etc"),
+ wxT("/etc/mail"),
+ wxT("/usr/public/lib")
};
// first read the system wide file(s)
for ( size_t n = 0; n < WXSIZEOF(aStandardLocations); n++ ) {
wxString dir = aStandardLocations[n];
- wxString file = dir + T("/mailcap");
+ wxString file = dir + wxT("/mailcap");
if ( wxFile::Exists(file) ) {
ReadMailcap(file);
}
- file = dir + T("/mime.types");
+ file = dir + wxT("/mime.types");
if ( wxFile::Exists(file) ) {
ReadMimeTypes(file);
}
}
- wxString strHome = wxGetenv(T("HOME"));
+ wxString strHome = wxGetenv(wxT("HOME"));
// and now the users mailcap
- wxString strUserMailcap = strHome + T("/.mailcap");
+ wxString strUserMailcap = strHome + wxT("/.mailcap");
if ( wxFile::Exists(strUserMailcap) ) {
ReadMailcap(strUserMailcap);
}
// read the users mime.types
- wxString strUserMimeTypes = strHome + T("/.mime.types");
+ wxString strUserMimeTypes = strHome + wxT("/.mime.types");
if ( wxFile::Exists(strUserMimeTypes) ) {
ReadMimeTypes(strUserMimeTypes);
}
for ( size_t n = 0; n < count; n++ ) {
wxString extensions = m_aExtensions[n];
while ( !extensions.IsEmpty() ) {
- wxString field = extensions.BeforeFirst(T(' '));
- extensions = extensions.AfterFirst(T(' '));
+ wxString field = extensions.BeforeFirst(wxT(' '));
+ extensions = extensions.AfterFirst(wxT(' '));
// consider extensions as not being case-sensitive
if ( field.IsSameAs(ext, FALSE /* no case */) ) {
// then try to find "text/*" as match for "text/plain" (for example)
// NB: if mimeType doesn't contain '/' at all, BeforeFirst() will return
// the whole string - ok.
- wxString strCategory = mimetype.BeforeFirst(T('/'));
+ wxString strCategory = mimetype.BeforeFirst(wxT('/'));
size_t nCount = m_aTypes.Count();
for ( size_t n = 0; n < nCount; n++ ) {
- if ( (m_aTypes[n].BeforeFirst(T('/')) == strCategory ) &&
- m_aTypes[n].AfterFirst(T('/')) == T("*") ) {
+ if ( (m_aTypes[n].BeforeFirst(wxT('/')) == strCategory ) &&
+ m_aTypes[n].AfterFirst(wxT('/')) == wxT("*") ) {
index = n;
break;
}
size_t nExts = exts.GetCount();
for ( size_t nExt = 0; nExt < nExts; nExt++ ) {
if ( nExt > 0 ) {
- extensions += T(' ');
+ extensions += wxT(' ');
}
extensions += exts[nExt];
}
AddMailcapInfo(filetype.GetMimeType(),
filetype.GetOpenCommand(),
filetype.GetPrintCommand(),
- T(""),
+ wxT(""),
filetype.GetDescription());
}
m_aTypes.Add(strType);
m_aEntries.Add(entry);
- m_aExtensions.Add(T(""));
+ m_aExtensions.Add(wxT(""));
m_aDescriptions.Add(strDesc);
}
else {
bool wxMimeTypesManagerImpl::ReadMimeTypes(const wxString& strFileName)
{
- wxLogTrace(T("--- Parsing mime.types file '%s' ---"), strFileName.c_str());
+ wxLogTrace(wxT("--- Parsing mime.types file '%s' ---"), strFileName.c_str());
wxTextFile file(strFileName);
if ( !file.Open() )
pc++;
// comment?
- if ( *pc == T('#') ) {
+ if ( *pc == wxT('#') ) {
// skip the whole line
pc = NULL;
continue;
}
// detect file format
- const wxChar *pEqualSign = wxStrchr(pc, T('='));
+ const wxChar *pEqualSign = wxStrchr(pc, wxT('='));
if ( pEqualSign == NULL ) {
// brief format
// ------------
// first field is mime type
- for ( strMimeType.Empty(); !wxIsspace(*pc) && *pc != T('\0'); pc++ ) {
+ for ( strMimeType.Empty(); !wxIsspace(*pc) && *pc != wxT('\0'); pc++ ) {
strMimeType += *pc;
}
;
const wxChar *pEnd;
- if ( *pc == T('"') ) {
+ if ( *pc == wxT('"') ) {
// the string is quoted and ends at the matching quote
- pEnd = wxStrchr(++pc, T('"'));
+ pEnd = wxStrchr(++pc, wxT('"'));
if ( pEnd == NULL ) {
wxLogWarning(_("Mime.types file %s, line %d: unterminated "
"quoted string."),
wxString strRHS(pc, pEnd - pc);
// check what follows this entry
- if ( *pEnd == T('"') ) {
+ if ( *pEnd == wxT('"') ) {
// skip this quote
pEnd++;
}
// if there is something left, it may be either a '\\' to continue
// the line or the next field of the same entry
- bool entryEnded = *pc == T('\0'),
+ bool entryEnded = *pc == wxT('\0'),
nextFieldOnSameLine = FALSE;
if ( !entryEnded ) {
- nextFieldOnSameLine = ((*pc != T('\\')) || (pc[1] != T('\0')));
+ nextFieldOnSameLine = ((*pc != wxT('\\')) || (pc[1] != wxT('\0')));
}
// now see what we got
- if ( strLHS == T("type") ) {
+ if ( strLHS == wxT("type") ) {
strMimeType = strRHS;
}
- else if ( strLHS == T("desc") ) {
+ else if ( strLHS == wxT("desc") ) {
strDesc = strRHS;
}
- else if ( strLHS == T("exts") ) {
+ else if ( strLHS == wxT("exts") ) {
strExtensions = strRHS;
}
else {
// although it doesn't seem to be covered by RFCs, some programs
// (notably Netscape) create their entries with several comma
// separated extensions (RFC mention the spaces only)
- strExtensions.Replace(T(","), T(" "));
+ strExtensions.Replace(wxT(","), wxT(" "));
// also deal with the leading dot
- if ( !strExtensions.IsEmpty() && strExtensions[0] == T('.') ) {
+ if ( !strExtensions.IsEmpty() && strExtensions[0] == wxT('.') ) {
strExtensions.erase(0, 1);
}
bool wxMimeTypesManagerImpl::ReadMailcap(const wxString& strFileName,
bool fallback)
{
- wxLogTrace(T("--- Parsing mailcap file '%s' ---"), strFileName.c_str());
+ wxLogTrace(wxT("--- Parsing mailcap file '%s' ---"), strFileName.c_str());
wxTextFile file(strFileName);
if ( !file.Open() )
pc++;
// comment or empty string?
- if ( *pc == T('#') || *pc == T('\0') )
+ if ( *pc == wxT('#') || *pc == wxT('\0') )
continue;
// no, do parse
curField; // accumulator
for ( bool cont = TRUE; cont; pc++ ) {
switch ( *pc ) {
- case T('\\'):
+ case wxT('\\'):
// interpret the next character literally (notice that
// backslash can be used for line continuation)
- if ( *++pc == T('\0') ) {
+ if ( *++pc == wxT('\0') ) {
// fetch the next line.
// pc currently points to nowhere, but after the next
}
break;
- case T('\0'):
+ case wxT('\0'):
cont = FALSE; // end of line reached, exit the loop
// fall through
- case T(';'):
+ case wxT(';'):
// store this field and start looking for the next one
// trim whitespaces from both sides
switch ( currentToken ) {
case Field_Type:
strType = curField;
- if ( strType.Find(T('/')) == wxNOT_FOUND ) {
+ if ( strType.Find(wxT('/')) == wxNOT_FOUND ) {
// we interpret "type" as "type/*"
- strType += T("/*");
+ strType += wxT("/*");
}
currentToken = Field_OpenCmd;
bool ok = TRUE;
// is this something of the form foo=bar?
- const wxChar *pEq = wxStrchr(curField, T('='));
+ const wxChar *pEq = wxStrchr(curField, wxT('='));
if ( pEq != NULL ) {
- wxString lhs = curField.BeforeFirst(T('=')),
- rhs = curField.AfterFirst(T('='));
+ wxString lhs = curField.BeforeFirst(wxT('=')),
+ rhs = curField.AfterFirst(wxT('='));
lhs.Trim(TRUE); // from right
rhs.Trim(FALSE); // from left
- if ( lhs == T("print") )
+ if ( lhs == wxT("print") )
strPrintCmd = rhs;
- else if ( lhs == T("test") )
+ else if ( lhs == wxT("test") )
strTest = rhs;
- else if ( lhs == T("description") ) {
+ else if ( lhs == wxT("description") ) {
// it might be quoted
- if ( rhs[0u] == T('"') &&
- rhs.Last() == T('"') ) {
+ if ( rhs[0u] == wxT('"') &&
+ rhs.Last() == wxT('"') ) {
strDesc = wxString(rhs.c_str() + 1,
rhs.Len() - 2);
}
strDesc = rhs;
}
}
- else if ( lhs == T("compose") ||
- lhs == T("composetyped") ||
- lhs == T("notes") ||
- lhs == T("edit") )
+ else if ( lhs == wxT("compose") ||
+ lhs == wxT("composetyped") ||
+ lhs == wxT("notes") ||
+ lhs == wxT("edit") )
; // ignore
else
ok = FALSE;
// TODO support the flags:
// 1. create an xterm for 'needsterminal'
// 2. append "| $PAGER" for 'copiousoutput'
- if ( curField == T("needsterminal") )
+ if ( curField == wxT("needsterminal") )
needsterminal = TRUE;
- else if ( curField == T("copiousoutput") )
+ else if ( curField == wxT("copiousoutput") )
copiousoutput = TRUE;
- else if ( curField == T("textualnewlines") )
+ else if ( curField == wxT("textualnewlines") )
; // ignore
else
ok = FALSE;
// programmer
wxLogDebug
(
- T("Mailcap file %s, line %d: unknown "
+ wxT("Mailcap file %s, line %d: unknown "
"field '%s' for the MIME type "
"'%s' ignored."),
strFileName.c_str(),
break;
default:
- wxFAIL_MSG(T("unknown field type in mailcap"));
+ wxFAIL_MSG(wxT("unknown field type in mailcap"));
}
// next token starts immediately after ';'
m_aTypes.Add(strType);
m_aEntries.Add(entry);
- m_aExtensions.Add(T(""));
+ m_aExtensions.Add(wxT(""));
m_aDescriptions.Add(strDesc);
}
else {
#endif
#if !USE_SHARED_LIBRARY
-wxClassInfo wxObject::sm_classwxObject((wxChar *) T("wxObject"), (wxChar *) NULL, (wxChar *) NULL, (int ) sizeof(wxObject), (wxObjectConstructorFn) NULL);
+wxClassInfo wxObject::sm_classwxObject((wxChar *) wxT("wxObject"), (wxChar *) NULL, (wxChar *) NULL, (int ) sizeof(wxObject), (wxObjectConstructorFn) NULL);
wxClassInfo* wxClassInfo::sm_first = (wxClassInfo *) NULL;
wxHashTable* wxClassInfo::sm_classTable = (wxHashTable*) NULL;
#endif
{
wxString name;
- name.Printf(T("%x"), (unsigned long)obj);
+ name.Printf(wxT("%x"), (unsigned long)obj);
return name;
}
if (info.duplicate) {
data_s.WriteString(TAG_DUPLICATE_OBJECT);
data_s.WriteString(GetObjectName(info.object));
- wxPrintf(T("info.object (dup %s)\n"), info.object->GetClassInfo()->GetClassName());
+ wxPrintf(wxT("info.object (dup %s)\n"), info.object->GetClassInfo()->GetClassName());
return;
}
if (info.object) {
data_s.WriteString(info.object->GetClassInfo()->GetClassName());
- wxPrintf(T("info.object (%s)\n"), info.object->GetClassInfo()->GetClassName());
+ wxPrintf(wxT("info.object (%s)\n"), info.object->GetClassInfo()->GetClassName());
} else {
data_s.WriteString(TAG_EMPTY_OBJECT);
- wxPrintf(T("info.object (NULL)\n"));
+ wxPrintf(wxT("info.object (NULL)\n"));
return;
}
int wxPreviewControlBar::GetZoomControl()
{
wxChar buf[20];
- if (m_zoomControl && (m_zoomControl->GetStringSelection() != T("")))
+ if (m_zoomControl && (m_zoomControl->GetStringSelection() != wxT("")))
{
wxStrcpy(buf, m_zoomControl->GetStringSelection());
buf[wxStrlen(buf) - 1] = 0;
void wxResourceTable::AddResource(wxItemResource *item)
{
wxString name = item->GetName();
- if (name == T(""))
+ if (name == wxT(""))
name = item->GetTitle();
- if (name == T(""))
- name = T("no name");
+ if (name == wxT(""))
+ name = wxT("no name");
// Delete existing resource, if any.
Delete(name);
// Register pre-loaded bitmap data
wxItemResource *item = new wxItemResource;
// item->SetType(wxRESOURCE_TYPE_XBM_DATA);
- item->SetType(T("wxXBMData"));
+ item->SetType(wxT("wxXBMData"));
item->SetName(name);
item->SetValue1((long)bits);
item->SetValue2((long)width);
// Register pre-loaded bitmap data
wxItemResource *item = new wxItemResource;
// item->SetType(wxRESOURCE_TYPE_XPM_DATA);
- item->SetType(T("wxXPMData"));
+ item->SetType(wxT("wxXPMData"));
item->SetName(name);
item->SetValue1((long)data);
AddResource(item);
size = wxSize(childResource->GetWidth(), childResource->GetHeight());
}
- if (itemType == wxString(T("wxButton")) || itemType == wxString(T("wxBitmapButton")))
+ if (itemType == wxString(wxT("wxButton")) || itemType == wxString(wxT("wxBitmapButton")))
{
- if (childResource->GetValue4() != T(""))
+ if (childResource->GetValue4() != wxT(""))
{
// Bitmap button
wxBitmap bitmap = childResource->GetBitmap();
control = new wxButton(parent, id, childResource->GetTitle(), pos, size,
childResource->GetStyle(), wxDefaultValidator, childResource->GetName());
}
- else if (itemType == wxString(T("wxMessage")) || itemType == wxString(T("wxStaticText")) ||
- itemType == wxString(T("wxStaticBitmap")))
+ else if (itemType == wxString(wxT("wxMessage")) || itemType == wxString(wxT("wxStaticText")) ||
+ itemType == wxString(wxT("wxStaticBitmap")))
{
- if (childResource->GetValue4() != T(""))
+ if (childResource->GetValue4() != wxT(""))
{
// Bitmap message
wxBitmap bitmap = childResource->GetBitmap();
childResource->GetStyle(), childResource->GetName());
}
}
- else if (itemType == wxString(T("wxText")) || itemType == wxString(T("wxTextCtrl")) || itemType == wxString(T("wxMultiText")))
+ else if (itemType == wxString(wxT("wxText")) || itemType == wxString(wxT("wxTextCtrl")) || itemType == wxString(wxT("wxMultiText")))
{
control = new wxTextCtrl(parent, id, childResource->GetValue4(), pos, size,
childResource->GetStyle(), wxDefaultValidator, childResource->GetName());
}
- else if (itemType == wxString(T("wxCheckBox")))
+ else if (itemType == wxString(wxT("wxCheckBox")))
{
control = new wxCheckBox(parent, id, childResource->GetTitle(), pos, size,
childResource->GetStyle(), wxDefaultValidator, childResource->GetName());
((wxCheckBox *)control)->SetValue((childResource->GetValue1() != 0));
}
#if wxUSE_GAUGE
- else if (itemType == wxString(T("wxGauge")))
+ else if (itemType == wxString(wxT("wxGauge")))
{
control = new wxGauge(parent, id, (int)childResource->GetValue2(), pos, size,
childResource->GetStyle(), wxDefaultValidator, childResource->GetName());
}
#endif
#if wxUSE_RADIOBTN
- else if (itemType == wxString(T("wxRadioButton")))
+ else if (itemType == wxString(wxT("wxRadioButton")))
{
control = new wxRadioButton(parent, id, childResource->GetTitle(), // (int)childResource->GetValue1(),
pos, size,
}
#endif
#if wxUSE_SCROLLBAR
- else if (itemType == wxString(T("wxScrollBar")))
+ else if (itemType == wxString(wxT("wxScrollBar")))
{
control = new wxScrollBar(parent, id, pos, size,
childResource->GetStyle(), wxDefaultValidator, childResource->GetName());
}
#endif
- else if (itemType == wxString(T("wxSlider")))
+ else if (itemType == wxString(wxT("wxSlider")))
{
control = new wxSlider(parent, id, (int)childResource->GetValue1(),
(int)childResource->GetValue2(), (int)childResource->GetValue3(), pos, size,
childResource->GetStyle(), wxDefaultValidator, childResource->GetName());
}
- else if (itemType == wxString(T("wxGroupBox")) || itemType == wxString(T("wxStaticBox")))
+ else if (itemType == wxString(wxT("wxGroupBox")) || itemType == wxString(wxT("wxStaticBox")))
{
control = new wxStaticBox(parent, id, childResource->GetTitle(), pos, size,
childResource->GetStyle(), childResource->GetName());
}
- else if (itemType == wxString(T("wxListBox")))
+ else if (itemType == wxString(wxT("wxListBox")))
{
wxStringList& stringList = childResource->GetStringValues();
wxString *strings = (wxString *) NULL;
if (strings)
delete[] strings;
}
- else if (itemType == wxString(T("wxChoice")))
+ else if (itemType == wxString(wxT("wxChoice")))
{
wxStringList& stringList = childResource->GetStringValues();
wxString *strings = (wxString *) NULL;
delete[] strings;
}
#if wxUSE_COMBOBOX
- else if (itemType == wxString(T("wxComboBox")))
+ else if (itemType == wxString(wxT("wxComboBox")))
{
wxStringList& stringList = childResource->GetStringValues();
wxString *strings = (wxString *) NULL;
delete[] strings;
}
#endif
- else if (itemType == wxString(T("wxRadioBox")))
+ else if (itemType == wxString(wxT("wxRadioBox")))
{
wxStringList& stringList = childResource->GetStringValues();
wxString *strings = (wxString *) NULL;
wxString functor(clause->Functor());
wxItemResource *item = (wxItemResource *) NULL;
- if (functor == T("dialog"))
+ if (functor == wxT("dialog"))
item = wxResourceInterpretDialog(table, clause);
- else if (functor == T("panel"))
+ else if (functor == wxT("panel"))
item = wxResourceInterpretDialog(table, clause, TRUE);
- else if (functor == T("menubar"))
+ else if (functor == wxT("menubar"))
item = wxResourceInterpretMenuBar(table, clause);
- else if (functor == T("menu"))
+ else if (functor == wxT("menu"))
item = wxResourceInterpretMenu(table, clause);
- else if (functor == T("string"))
+ else if (functor == wxT("string"))
item = wxResourceInterpretString(table, clause);
- else if (functor == T("bitmap"))
+ else if (functor == wxT("bitmap"))
item = wxResourceInterpretBitmap(table, clause);
- else if (functor == T("icon"))
+ else if (functor == wxT("icon"))
item = wxResourceInterpretIcon(table, clause);
if (item)
{
// Remove any existing resource of same name
- if (item->GetName() != T(""))
+ if (item->GetName() != wxT(""))
table.DeleteResource(item->GetName());
table.AddResource(item);
}
static const wxChar *g_ValidControlClasses[] =
{
- T("wxButton"),
- T("wxBitmapButton"),
- T("wxMessage"),
- T("wxStaticText"),
- T("wxStaticBitmap"),
- T("wxText"),
- T("wxTextCtrl"),
- T("wxMultiText"),
- T("wxListBox"),
- T("wxRadioBox"),
- T("wxRadioButton"),
- T("wxCheckBox"),
- T("wxBitmapCheckBox"),
- T("wxGroupBox"),
- T("wxStaticBox"),
- T("wxSlider"),
- T("wxGauge"),
- T("wxScrollBar"),
- T("wxChoice"),
- T("wxComboBox")
+ wxT("wxButton"),
+ wxT("wxBitmapButton"),
+ wxT("wxMessage"),
+ wxT("wxStaticText"),
+ wxT("wxStaticBitmap"),
+ wxT("wxText"),
+ wxT("wxTextCtrl"),
+ wxT("wxMultiText"),
+ wxT("wxListBox"),
+ wxT("wxRadioBox"),
+ wxT("wxRadioButton"),
+ wxT("wxCheckBox"),
+ wxT("wxBitmapCheckBox"),
+ wxT("wxGroupBox"),
+ wxT("wxStaticBox"),
+ wxT("wxSlider"),
+ wxT("wxGauge"),
+ wxT("wxScrollBar"),
+ wxT("wxChoice"),
+ wxT("wxComboBox")
};
static bool wxIsValidControlClass(const wxString& c)
{
wxItemResource *dialogItem = new wxItemResource;
if (isPanel)
- dialogItem->SetType(T("wxPanel"));
+ dialogItem->SetType(wxT("wxPanel"));
else
- dialogItem->SetType(T("wxDialog"));
- wxString style = T("");
- wxString title = T("");
- wxString name = T("");
- wxString backColourHex = T("");
- wxString labelColourHex = T("");
- wxString buttonColourHex = T("");
+ dialogItem->SetType(wxT("wxDialog"));
+ wxString style = wxT("");
+ wxString title = wxT("");
+ wxString name = wxT("");
+ wxString backColourHex = wxT("");
+ wxString labelColourHex = wxT("");
+ wxString buttonColourHex = wxT("");
long windowStyle = wxDEFAULT_DIALOG_STYLE;
if (isPanel)
wxExpr *labelFontExpr = (wxExpr *) NULL;
wxExpr *buttonFontExpr = (wxExpr *) NULL;
wxExpr *fontExpr = (wxExpr *) NULL;
- expr->GetAttributeValue(T("style"), style);
- expr->GetAttributeValue(T("name"), name);
- expr->GetAttributeValue(T("title"), title);
- expr->GetAttributeValue(T("x"), x);
- expr->GetAttributeValue(T("y"), y);
- expr->GetAttributeValue(T("width"), width);
- expr->GetAttributeValue(T("height"), height);
- expr->GetAttributeValue(T("modal"), isModal);
- expr->GetAttributeValue(T("label_font"), &labelFontExpr);
- expr->GetAttributeValue(T("button_font"), &buttonFontExpr);
- expr->GetAttributeValue(T("font"), &fontExpr);
- expr->GetAttributeValue(T("background_colour"), backColourHex);
- expr->GetAttributeValue(T("label_colour"), labelColourHex);
- expr->GetAttributeValue(T("button_colour"), buttonColourHex);
+ expr->GetAttributeValue(wxT("style"), style);
+ expr->GetAttributeValue(wxT("name"), name);
+ expr->GetAttributeValue(wxT("title"), title);
+ expr->GetAttributeValue(wxT("x"), x);
+ expr->GetAttributeValue(wxT("y"), y);
+ expr->GetAttributeValue(wxT("width"), width);
+ expr->GetAttributeValue(wxT("height"), height);
+ expr->GetAttributeValue(wxT("modal"), isModal);
+ expr->GetAttributeValue(wxT("label_font"), &labelFontExpr);
+ expr->GetAttributeValue(wxT("button_font"), &buttonFontExpr);
+ expr->GetAttributeValue(wxT("font"), &fontExpr);
+ expr->GetAttributeValue(wxT("background_colour"), backColourHex);
+ expr->GetAttributeValue(wxT("label_colour"), labelColourHex);
+ expr->GetAttributeValue(wxT("button_colour"), buttonColourHex);
int useDialogUnits = 0;
- expr->GetAttributeValue(T("use_dialog_units"), useDialogUnits);
+ expr->GetAttributeValue(wxT("use_dialog_units"), useDialogUnits);
if (useDialogUnits != 0)
dialogItem->SetResourceStyle(dialogItem->GetResourceStyle() | wxRESOURCE_DIALOG_UNITS);
int useDefaults = 0;
- expr->GetAttributeValue(T("use_system_defaults"), useDefaults);
+ expr->GetAttributeValue(wxT("use_system_defaults"), useDefaults);
if (useDefaults != 0)
dialogItem->SetResourceStyle(dialogItem->GetResourceStyle() | wxRESOURCE_USE_DEFAULTS);
long id = 0;
- expr->GetAttributeValue(T("id"), id);
+ expr->GetAttributeValue(wxT("id"), id);
dialogItem->SetId(id);
- if (style != T(""))
+ if (style != wxT(""))
{
windowStyle = wxParseWindowStyle(style);
}
dialogItem->SetTitle(title);
dialogItem->SetSize(x, y, width, height);
- if (backColourHex != T(""))
+ if (backColourHex != wxT(""))
{
int r = 0;
int g = 0;
b = wxHexToDec(backColourHex.Mid(4, 2));
dialogItem->SetBackgroundColour(wxColour((unsigned char)r,(unsigned char)g,(unsigned char)b));
}
- if (labelColourHex != T(""))
+ if (labelColourHex != wxT(""))
{
int r = 0;
int g = 0;
b = wxHexToDec(labelColourHex.Mid(4, 2));
dialogItem->SetLabelColour(wxColour((unsigned char)r,(unsigned char)g,(unsigned char)b));
}
- if (buttonColourHex != T(""))
+ if (buttonColourHex != wxT(""))
{
int r = 0;
int g = 0;
if (controlExpr->Number() == 3)
{
wxString controlKeyword(controlExpr->Nth(1)->StringValue());
- if (controlKeyword != T("") && controlKeyword == T("control"))
+ if (controlKeyword != wxT("") && controlKeyword == wxT("control"))
{
// The value part: always a list.
wxExpr *listExpr = controlExpr->Nth(2);
controlItem->SetType(controlType);
controlItem->SetId(id);
- if (controlType == T("wxButton"))
+ if (controlType == wxT("wxButton"))
{
// Check for bitmap resource name (in case loading old-style resource file)
if (expr->Nth(count) && ((expr->Nth(count)->Type() == PrologString) || (expr->Nth(count)->Type() == PrologWord)))
wxString str(expr->Nth(count)->StringValue());
count ++;
- if (str != T(""))
+ if (str != wxT(""))
{
controlItem->SetValue4(str);
- controlItem->SetType(T("wxBitmapButton"));
+ controlItem->SetType(wxT("wxBitmapButton"));
}
}
if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList)
controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count)));
}
- else if (controlType == T("wxBitmapButton"))
+ else if (controlType == wxT("wxBitmapButton"))
{
// Check for bitmap resource name
if (expr->Nth(count) && ((expr->Nth(count)->Type() == PrologString) || (expr->Nth(count)->Type() == PrologWord)))
controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count)));
}
}
- else if (controlType == T("wxCheckBox"))
+ else if (controlType == wxT("wxCheckBox"))
{
// Check for default value
if (expr->Nth(count) && (expr->Nth(count)->Type() == PrologInteger))
}
}
#if wxUSE_RADIOBTN
- else if (controlType == T("wxRadioButton"))
+ else if (controlType == wxT("wxRadioButton"))
{
// Check for default value
if (expr->Nth(count) && (expr->Nth(count)->Type() == PrologInteger))
}
}
#endif
- else if (controlType == T("wxText") || controlType == T("wxTextCtrl") || controlType == T("wxMultiText"))
+ else if (controlType == wxT("wxText") || controlType == wxT("wxTextCtrl") || controlType == wxT("wxMultiText"))
{
// Check for default value
if (expr->Nth(count) && ((expr->Nth(count)->Type() == PrologString) || (expr->Nth(count)->Type() == PrologWord)))
}
}
}
- else if (controlType == T("wxMessage") || controlType == T("wxStaticText"))
+ else if (controlType == wxT("wxMessage") || controlType == wxT("wxStaticText"))
{
// Check for bitmap resource name (in case it's an old-style .wxr file)
if (expr->Nth(count) && ((expr->Nth(count)->Type() == PrologString) || (expr->Nth(count)->Type() == PrologWord)))
wxString str(expr->Nth(count)->StringValue());
controlItem->SetValue4(str);
count ++;
- controlItem->SetType(T("wxStaticText"));
+ controlItem->SetType(wxT("wxStaticText"));
}
if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList)
controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count)));
}
- else if (controlType == T("wxStaticBitmap"))
+ else if (controlType == wxT("wxStaticBitmap"))
{
// Check for bitmap resource name
if (expr->Nth(count) && ((expr->Nth(count)->Type() == PrologString) || (expr->Nth(count)->Type() == PrologWord)))
if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList)
controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count)));
}
- else if (controlType == T("wxGroupBox") || controlType == T("wxStaticBox"))
+ else if (controlType == wxT("wxGroupBox") || controlType == wxT("wxStaticBox"))
{
if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList)
controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count)));
}
- else if (controlType == T("wxGauge"))
+ else if (controlType == wxT("wxGauge"))
{
// Check for default value
if (expr->Nth(count) && (expr->Nth(count)->Type() == PrologInteger))
}
}
}
- else if (controlType == T("wxSlider"))
+ else if (controlType == wxT("wxSlider"))
{
// Check for default value
if (expr->Nth(count) && (expr->Nth(count)->Type() == PrologInteger))
}
}
}
- else if (controlType == T("wxScrollBar"))
+ else if (controlType == wxT("wxScrollBar"))
{
// DEFAULT VALUE
if (expr->Nth(count) && (expr->Nth(count)->Type() == PrologInteger))
}
}
}
- else if (controlType == T("wxListBox"))
+ else if (controlType == wxT("wxListBox"))
{
wxExpr *valueList = (wxExpr *) NULL;
}
}
}
- else if (controlType == T("wxChoice"))
+ else if (controlType == wxT("wxChoice"))
{
wxExpr *valueList = (wxExpr *) NULL;
// Check for default value list
}
}
#if wxUSE_COMBOBOX
- else if (controlType == T("wxComboBox"))
+ else if (controlType == wxT("wxComboBox"))
{
wxExpr *textValue = expr->Nth(count);
if (textValue && (textValue->Type() == PrologString || textValue->Type() == PrologWord))
}
#endif
#if 1
- else if (controlType == T("wxRadioBox"))
+ else if (controlType == wxT("wxRadioBox"))
{
wxExpr *valueList = (wxExpr *) NULL;
// Check for default value list
if (expr->Number() == 0)
{
// item->SetType(wxRESOURCE_TYPE_SEPARATOR);
- item->SetType(T("wxMenuSeparator"));
+ item->SetType(wxT("wxMenuSeparator"));
return item;
}
else
{
// item->SetType(wxTYPE_MENU); // Well, menu item, but doesn't matter.
- item->SetType(T("wxMenu")); // Well, menu item, but doesn't matter.
+ item->SetType(wxT("wxMenu")); // Well, menu item, but doesn't matter.
if (labelExpr)
{
wxString str(labelExpr->StringValue());
wxItemResource *wxResourceInterpretMenu(wxResourceTable& table, wxExpr *expr)
{
wxExpr *listExpr = (wxExpr *) NULL;
- expr->GetAttributeValue(T("menu"), &listExpr);
+ expr->GetAttributeValue(wxT("menu"), &listExpr);
if (!listExpr)
return (wxItemResource *) NULL;
return (wxItemResource *) NULL;
wxString name;
- if (expr->GetAttributeValue(T("name"), name))
+ if (expr->GetAttributeValue(wxT("name"), name))
{
menuResource->SetName(name);
}
wxItemResource *wxResourceInterpretMenuBar(wxResourceTable& table, wxExpr *expr)
{
wxExpr *listExpr = (wxExpr *) NULL;
- expr->GetAttributeValue(T("menu"), &listExpr);
+ expr->GetAttributeValue(wxT("menu"), &listExpr);
if (!listExpr)
return (wxItemResource *) NULL;
wxItemResource *resource = new wxItemResource;
- resource->SetType(T("wxMenu"));
+ resource->SetType(wxT("wxMenu"));
// resource->SetType(wxTYPE_MENU);
wxExpr *element = listExpr->GetFirst();
}
wxString name;
- if (expr->GetAttributeValue(T("name"), name))
+ if (expr->GetAttributeValue(wxT("name"), name))
{
resource->SetName(name);
}
{
wxItemResource *bitmapItem = new wxItemResource;
// bitmapItem->SetType(wxTYPE_BITMAP);
- bitmapItem->SetType(T("wxBitmap"));
+ bitmapItem->SetType(wxT("wxBitmap"));
wxString name;
- if (expr->GetAttributeValue(T("name"), name))
+ if (expr->GetAttributeValue(wxT("name"), name))
{
bitmapItem->SetName(name);
}
if (bitmapExpr->Number() == 3)
{
wxString bitmapKeyword(bitmapExpr->Nth(1)->StringValue());
- if (bitmapKeyword == T("bitmap") || bitmapKeyword == T("icon"))
+ if (bitmapKeyword == wxT("bitmap") || bitmapKeyword == wxT("icon"))
{
// The value part: always a list.
wxExpr *listExpr = bitmapExpr->Nth(2);
{
wxItemResource *bitmapSpec = new wxItemResource;
// bitmapSpec->SetType(wxTYPE_BITMAP);
- bitmapSpec->SetType(T("wxBitmap"));
+ bitmapSpec->SetType(wxT("wxBitmap"));
// List is of form: [filename, bitmaptype, platform, colours, xresolution, yresolution]
// where everything after 'filename' is optional.
wxExpr *coloursExpr = listExpr->Nth(3);
wxExpr *xresExpr = listExpr->Nth(4);
wxExpr *yresExpr = listExpr->Nth(5);
- if (nameExpr && nameExpr->StringValue() != T(""))
+ if (nameExpr && nameExpr->StringValue() != wxT(""))
{
bitmapSpec->SetName(nameExpr->StringValue());
}
- if (typeExpr && typeExpr->StringValue() != T(""))
+ if (typeExpr && typeExpr->StringValue() != wxT(""))
{
bitmapSpec->SetValue1(wxParseWindowStyle(typeExpr->StringValue()));
}
else
bitmapSpec->SetValue1(0);
- if (platformExpr && platformExpr->StringValue() != T(""))
+ if (platformExpr && platformExpr->StringValue() != wxT(""))
{
wxString plat(platformExpr->StringValue());
- if (plat == T("windows") || plat == T("WINDOWS"))
+ if (plat == wxT("windows") || plat == wxT("WINDOWS"))
bitmapSpec->SetValue2(RESOURCE_PLATFORM_WINDOWS);
- else if (plat == T("x") || plat == T("X"))
+ else if (plat == wxT("x") || plat == wxT("X"))
bitmapSpec->SetValue2(RESOURCE_PLATFORM_X);
- else if (plat == T("mac") || plat == T("MAC"))
+ else if (plat == wxT("mac") || plat == wxT("MAC"))
bitmapSpec->SetValue2(RESOURCE_PLATFORM_MAC);
else
bitmapSpec->SetValue2(RESOURCE_PLATFORM_ANY);
if (item)
{
// item->SetType(wxTYPE_ICON);
- item->SetType(T("wxIcon"));
+ item->SetType(wxT("wxIcon"));
return item;
}
else
int style = wxNORMAL;
int weight = wxNORMAL;
int underline = 0;
- wxString faceName(T(""));
+ wxString faceName(wxT(""));
wxExpr *pointExpr = expr->Nth(0);
wxExpr *familyExpr = expr->Nth(1);
wxGetResourceToken(fd);
wxChar *name = copystring(wxConvCurrent->cMB2WX(wxResourceBuffer));
wxChar *actualName = name;
- if (name[0] == T('"'))
+ if (name[0] == wxT('"'))
actualName = name + 1;
int len = wxStrlen(name);
- if ((len > 0) && (name[len-1] == T('"')))
+ if ((len > 0) && (name[len-1] == wxT('"')))
name[len-1] = 0;
if (!wxResourceParseIncludeFile(actualName, table))
{
int len = wxStrlen(s);
int j = 0;
int ii = *i;
- while ((ii < len) && (wxIsalpha(s[ii]) || (s[ii] == T('_'))))
+ while ((ii < len) && (wxIsalpha(s[ii]) || (s[ii] == wxT('_'))))
{
buf[j] = s[ii];
j ++;
// Eat whitespace and conjunction characters
while ((ii < len) &&
- ((s[ii] == T(' ')) || (s[ii] == T('|')) || (s[ii] == T(','))))
+ ((s[ii] == wxT(' ')) || (s[ii] == wxT('|')) || (s[ii] == wxT(','))))
{
ii ++;
}
static wxResourceBitListStruct wxResourceBitListTable[] =
{
/* wxListBox */
- { T("wxSINGLE"), wxLB_SINGLE },
- { T("wxMULTIPLE"), wxLB_MULTIPLE },
- { T("wxEXTENDED"), wxLB_EXTENDED },
- { T("wxLB_SINGLE"), wxLB_SINGLE },
- { T("wxLB_MULTIPLE"), wxLB_MULTIPLE },
- { T("wxLB_EXTENDED"), wxLB_EXTENDED },
- { T("wxLB_NEEDED_SB"), wxLB_NEEDED_SB },
- { T("wxLB_ALWAYS_SB"), wxLB_ALWAYS_SB },
- { T("wxLB_SORT"), wxLB_SORT },
- { T("wxLB_OWNERDRAW"), wxLB_OWNERDRAW },
- { T("wxLB_HSCROLL"), wxLB_HSCROLL },
+ { wxT("wxSINGLE"), wxLB_SINGLE },
+ { wxT("wxMULTIPLE"), wxLB_MULTIPLE },
+ { wxT("wxEXTENDED"), wxLB_EXTENDED },
+ { wxT("wxLB_SINGLE"), wxLB_SINGLE },
+ { wxT("wxLB_MULTIPLE"), wxLB_MULTIPLE },
+ { wxT("wxLB_EXTENDED"), wxLB_EXTENDED },
+ { wxT("wxLB_NEEDED_SB"), wxLB_NEEDED_SB },
+ { wxT("wxLB_ALWAYS_SB"), wxLB_ALWAYS_SB },
+ { wxT("wxLB_SORT"), wxLB_SORT },
+ { wxT("wxLB_OWNERDRAW"), wxLB_OWNERDRAW },
+ { wxT("wxLB_HSCROLL"), wxLB_HSCROLL },
/* wxComboxBox */
- { T("wxCB_SIMPLE"), wxCB_SIMPLE },
- { T("wxCB_DROPDOWN"), wxCB_DROPDOWN },
- { T("wxCB_READONLY"), wxCB_READONLY },
- { T("wxCB_SORT"), wxCB_SORT },
+ { wxT("wxCB_SIMPLE"), wxCB_SIMPLE },
+ { wxT("wxCB_DROPDOWN"), wxCB_DROPDOWN },
+ { wxT("wxCB_READONLY"), wxCB_READONLY },
+ { wxT("wxCB_SORT"), wxCB_SORT },
/* wxGauge */
- { T("wxGA_PROGRESSBAR"), wxGA_PROGRESSBAR },
- { T("wxGA_HORIZONTAL"), wxGA_HORIZONTAL },
- { T("wxGA_VERTICAL"), wxGA_VERTICAL },
+ { wxT("wxGA_PROGRESSBAR"), wxGA_PROGRESSBAR },
+ { wxT("wxGA_HORIZONTAL"), wxGA_HORIZONTAL },
+ { wxT("wxGA_VERTICAL"), wxGA_VERTICAL },
/* wxTextCtrl */
- { T("wxPASSWORD"), wxPASSWORD},
- { T("wxPROCESS_ENTER"), wxPROCESS_ENTER},
- { T("wxTE_PASSWORD"), wxTE_PASSWORD},
- { T("wxTE_READONLY"), wxTE_READONLY},
- { T("wxTE_PROCESS_ENTER"), wxTE_PROCESS_ENTER},
- { T("wxTE_MULTILINE"), wxTE_MULTILINE},
- { T("wxTE_NO_VSCROLL"), wxTE_NO_VSCROLL},
+ { wxT("wxPASSWORD"), wxPASSWORD},
+ { wxT("wxPROCESS_ENTER"), wxPROCESS_ENTER},
+ { wxT("wxTE_PASSWORD"), wxTE_PASSWORD},
+ { wxT("wxTE_READONLY"), wxTE_READONLY},
+ { wxT("wxTE_PROCESS_ENTER"), wxTE_PROCESS_ENTER},
+ { wxT("wxTE_MULTILINE"), wxTE_MULTILINE},
+ { wxT("wxTE_NO_VSCROLL"), wxTE_NO_VSCROLL},
/* wxRadioBox/wxRadioButton */
- { T("wxRB_GROUP"), wxRB_GROUP },
- { T("wxRA_SPECIFY_COLS"), wxRA_SPECIFY_COLS },
- { T("wxRA_SPECIFY_ROWS"), wxRA_SPECIFY_ROWS },
- { T("wxRA_HORIZONTAL"), wxRA_HORIZONTAL },
- { T("wxRA_VERTICAL"), wxRA_VERTICAL },
+ { wxT("wxRB_GROUP"), wxRB_GROUP },
+ { wxT("wxRA_SPECIFY_COLS"), wxRA_SPECIFY_COLS },
+ { wxT("wxRA_SPECIFY_ROWS"), wxRA_SPECIFY_ROWS },
+ { wxT("wxRA_HORIZONTAL"), wxRA_HORIZONTAL },
+ { wxT("wxRA_VERTICAL"), wxRA_VERTICAL },
/* wxSlider */
- { T("wxSL_HORIZONTAL"), wxSL_HORIZONTAL },
- { T("wxSL_VERTICAL"), wxSL_VERTICAL },
- { T("wxSL_AUTOTICKS"), wxSL_AUTOTICKS },
- { T("wxSL_LABELS"), wxSL_LABELS },
- { T("wxSL_LEFT"), wxSL_LEFT },
- { T("wxSL_TOP"), wxSL_TOP },
- { T("wxSL_RIGHT"), wxSL_RIGHT },
- { T("wxSL_BOTTOM"), wxSL_BOTTOM },
- { T("wxSL_BOTH"), wxSL_BOTH },
- { T("wxSL_SELRANGE"), wxSL_SELRANGE },
+ { wxT("wxSL_HORIZONTAL"), wxSL_HORIZONTAL },
+ { wxT("wxSL_VERTICAL"), wxSL_VERTICAL },
+ { wxT("wxSL_AUTOTICKS"), wxSL_AUTOTICKS },
+ { wxT("wxSL_LABELS"), wxSL_LABELS },
+ { wxT("wxSL_LEFT"), wxSL_LEFT },
+ { wxT("wxSL_TOP"), wxSL_TOP },
+ { wxT("wxSL_RIGHT"), wxSL_RIGHT },
+ { wxT("wxSL_BOTTOM"), wxSL_BOTTOM },
+ { wxT("wxSL_BOTH"), wxSL_BOTH },
+ { wxT("wxSL_SELRANGE"), wxSL_SELRANGE },
/* wxScrollBar */
- { T("wxSB_HORIZONTAL"), wxSB_HORIZONTAL },
- { T("wxSB_VERTICAL"), wxSB_VERTICAL },
+ { wxT("wxSB_HORIZONTAL"), wxSB_HORIZONTAL },
+ { wxT("wxSB_VERTICAL"), wxSB_VERTICAL },
/* wxButton */
- { T("wxBU_AUTODRAW"), wxBU_AUTODRAW },
- { T("wxBU_NOAUTODRAW"), wxBU_NOAUTODRAW },
+ { wxT("wxBU_AUTODRAW"), wxBU_AUTODRAW },
+ { wxT("wxBU_NOAUTODRAW"), wxBU_NOAUTODRAW },
/* wxTreeCtrl */
- { T("wxTR_HAS_BUTTONS"), wxTR_HAS_BUTTONS },
- { T("wxTR_EDIT_LABELS"), wxTR_EDIT_LABELS },
- { T("wxTR_LINES_AT_ROOT"), wxTR_LINES_AT_ROOT },
+ { wxT("wxTR_HAS_BUTTONS"), wxTR_HAS_BUTTONS },
+ { wxT("wxTR_EDIT_LABELS"), wxTR_EDIT_LABELS },
+ { wxT("wxTR_LINES_AT_ROOT"), wxTR_LINES_AT_ROOT },
/* wxListCtrl */
- { T("wxLC_ICON"), wxLC_ICON },
- { T("wxLC_SMALL_ICON"), wxLC_SMALL_ICON },
- { T("wxLC_LIST"), wxLC_LIST },
- { T("wxLC_REPORT"), wxLC_REPORT },
- { T("wxLC_ALIGN_TOP"), wxLC_ALIGN_TOP },
- { T("wxLC_ALIGN_LEFT"), wxLC_ALIGN_LEFT },
- { T("wxLC_AUTOARRANGE"), wxLC_AUTOARRANGE },
- { T("wxLC_USER_TEXT"), wxLC_USER_TEXT },
- { T("wxLC_EDIT_LABELS"), wxLC_EDIT_LABELS },
- { T("wxLC_NO_HEADER"), wxLC_NO_HEADER },
- { T("wxLC_NO_SORT_HEADER"), wxLC_NO_SORT_HEADER },
- { T("wxLC_SINGLE_SEL"), wxLC_SINGLE_SEL },
- { T("wxLC_SORT_ASCENDING"), wxLC_SORT_ASCENDING },
- { T("wxLC_SORT_DESCENDING"), wxLC_SORT_DESCENDING },
+ { wxT("wxLC_ICON"), wxLC_ICON },
+ { wxT("wxLC_SMALL_ICON"), wxLC_SMALL_ICON },
+ { wxT("wxLC_LIST"), wxLC_LIST },
+ { wxT("wxLC_REPORT"), wxLC_REPORT },
+ { wxT("wxLC_ALIGN_TOP"), wxLC_ALIGN_TOP },
+ { wxT("wxLC_ALIGN_LEFT"), wxLC_ALIGN_LEFT },
+ { wxT("wxLC_AUTOARRANGE"), wxLC_AUTOARRANGE },
+ { wxT("wxLC_USER_TEXT"), wxLC_USER_TEXT },
+ { wxT("wxLC_EDIT_LABELS"), wxLC_EDIT_LABELS },
+ { wxT("wxLC_NO_HEADER"), wxLC_NO_HEADER },
+ { wxT("wxLC_NO_SORT_HEADER"), wxLC_NO_SORT_HEADER },
+ { wxT("wxLC_SINGLE_SEL"), wxLC_SINGLE_SEL },
+ { wxT("wxLC_SORT_ASCENDING"), wxLC_SORT_ASCENDING },
+ { wxT("wxLC_SORT_DESCENDING"), wxLC_SORT_DESCENDING },
/* wxSpinButton */
- { T("wxSP_VERTICAL"), wxSP_VERTICAL},
- { T("wxSP_HORIZONTAL"), wxSP_HORIZONTAL},
- { T("wxSP_ARROW_KEYS"), wxSP_ARROW_KEYS},
- { T("wxSP_WRAP"), wxSP_WRAP},
+ { wxT("wxSP_VERTICAL"), wxSP_VERTICAL},
+ { wxT("wxSP_HORIZONTAL"), wxSP_HORIZONTAL},
+ { wxT("wxSP_ARROW_KEYS"), wxSP_ARROW_KEYS},
+ { wxT("wxSP_WRAP"), wxSP_WRAP},
/* wxSplitterWnd */
- { T("wxSP_NOBORDER"), wxSP_NOBORDER},
- { T("wxSP_3D"), wxSP_3D},
- { T("wxSP_BORDER"), wxSP_BORDER},
+ { wxT("wxSP_NOBORDER"), wxSP_NOBORDER},
+ { wxT("wxSP_3D"), wxSP_3D},
+ { wxT("wxSP_BORDER"), wxSP_BORDER},
/* wxTabCtrl */
- { T("wxTC_MULTILINE"), wxTC_MULTILINE},
- { T("wxTC_RIGHTJUSTIFY"), wxTC_RIGHTJUSTIFY},
- { T("wxTC_FIXEDWIDTH"), wxTC_FIXEDWIDTH},
- { T("wxTC_OWNERDRAW"), wxTC_OWNERDRAW},
+ { wxT("wxTC_MULTILINE"), wxTC_MULTILINE},
+ { wxT("wxTC_RIGHTJUSTIFY"), wxTC_RIGHTJUSTIFY},
+ { wxT("wxTC_FIXEDWIDTH"), wxTC_FIXEDWIDTH},
+ { wxT("wxTC_OWNERDRAW"), wxTC_OWNERDRAW},
/* wxStatusBar95 */
- { T("wxST_SIZEGRIP"), wxST_SIZEGRIP},
+ { wxT("wxST_SIZEGRIP"), wxST_SIZEGRIP},
/* wxControl */
- { T("wxFIXED_LENGTH"), wxFIXED_LENGTH},
- { T("wxALIGN_LEFT"), wxALIGN_LEFT},
- { T("wxALIGN_CENTER"), wxALIGN_CENTER},
- { T("wxALIGN_CENTRE"), wxALIGN_CENTRE},
- { T("wxALIGN_RIGHT"), wxALIGN_RIGHT},
- { T("wxCOLOURED"), wxCOLOURED},
+ { wxT("wxFIXED_LENGTH"), wxFIXED_LENGTH},
+ { wxT("wxALIGN_LEFT"), wxALIGN_LEFT},
+ { wxT("wxALIGN_CENTER"), wxALIGN_CENTER},
+ { wxT("wxALIGN_CENTRE"), wxALIGN_CENTRE},
+ { wxT("wxALIGN_RIGHT"), wxALIGN_RIGHT},
+ { wxT("wxCOLOURED"), wxCOLOURED},
/* wxToolBar */
- { T("wxTB_3DBUTTONS"), wxTB_3DBUTTONS},
- { T("wxTB_HORIZONTAL"), wxTB_HORIZONTAL},
- { T("wxTB_VERTICAL"), wxTB_VERTICAL},
- { T("wxTB_FLAT"), wxTB_FLAT},
+ { wxT("wxTB_3DBUTTONS"), wxTB_3DBUTTONS},
+ { wxT("wxTB_HORIZONTAL"), wxTB_HORIZONTAL},
+ { wxT("wxTB_VERTICAL"), wxTB_VERTICAL},
+ { wxT("wxTB_FLAT"), wxTB_FLAT},
/* wxDialog */
- { T("wxDIALOG_MODAL"), wxDIALOG_MODAL },
+ { wxT("wxDIALOG_MODAL"), wxDIALOG_MODAL },
/* Generic */
- { T("wxVSCROLL"), wxVSCROLL },
- { T("wxHSCROLL"), wxHSCROLL },
- { T("wxCAPTION"), wxCAPTION },
- { T("wxSTAY_ON_TOP"), wxSTAY_ON_TOP},
- { T("wxICONIZE"), wxICONIZE},
- { T("wxMINIMIZE"), wxICONIZE},
- { T("wxMAXIMIZE"), wxMAXIMIZE},
- { T("wxSDI"), 0},
- { T("wxMDI_PARENT"), 0},
- { T("wxMDI_CHILD"), 0},
- { T("wxTHICK_FRAME"), wxTHICK_FRAME},
- { T("wxRESIZE_BORDER"), wxRESIZE_BORDER},
- { T("wxSYSTEM_MENU"), wxSYSTEM_MENU},
- { T("wxMINIMIZE_BOX"), wxMINIMIZE_BOX},
- { T("wxMAXIMIZE_BOX"), wxMAXIMIZE_BOX},
- { T("wxRESIZE_BOX"), wxRESIZE_BOX},
- { T("wxDEFAULT_FRAME_STYLE"), wxDEFAULT_FRAME_STYLE},
- { T("wxDEFAULT_FRAME"), wxDEFAULT_FRAME_STYLE},
- { T("wxDEFAULT_DIALOG_STYLE"), wxDEFAULT_DIALOG_STYLE},
- { T("wxBORDER"), wxBORDER},
- { T("wxRETAINED"), wxRETAINED},
- { T("wxNATIVE_IMPL"), 0},
- { T("wxEXTENDED_IMPL"), 0},
- { T("wxBACKINGSTORE"), wxBACKINGSTORE},
-// { T("wxFLAT"), wxFLAT},
-// { T("wxMOTIF_RESIZE"), wxMOTIF_RESIZE},
- { T("wxFIXED_LENGTH"), 0},
- { T("wxDOUBLE_BORDER"), wxDOUBLE_BORDER},
- { T("wxSUNKEN_BORDER"), wxSUNKEN_BORDER},
- { T("wxRAISED_BORDER"), wxRAISED_BORDER},
- { T("wxSIMPLE_BORDER"), wxSIMPLE_BORDER},
- { T("wxSTATIC_BORDER"), wxSTATIC_BORDER},
- { T("wxTRANSPARENT_WINDOW"), wxTRANSPARENT_WINDOW},
- { T("wxNO_BORDER"), wxNO_BORDER},
- { T("wxCLIP_CHILDREN"), wxCLIP_CHILDREN},
- { T("wxTAB_TRAVERSAL"), 0}, // Compatibility only
-
- { T("wxTINY_CAPTION_HORIZ"), wxTINY_CAPTION_HORIZ},
- { T("wxTINY_CAPTION_VERT"), wxTINY_CAPTION_VERT},
+ { wxT("wxVSCROLL"), wxVSCROLL },
+ { wxT("wxHSCROLL"), wxHSCROLL },
+ { wxT("wxCAPTION"), wxCAPTION },
+ { wxT("wxSTAY_ON_TOP"), wxSTAY_ON_TOP},
+ { wxT("wxICONIZE"), wxICONIZE},
+ { wxT("wxMINIMIZE"), wxICONIZE},
+ { wxT("wxMAXIMIZE"), wxMAXIMIZE},
+ { wxT("wxSDI"), 0},
+ { wxT("wxMDI_PARENT"), 0},
+ { wxT("wxMDI_CHILD"), 0},
+ { wxT("wxTHICK_FRAME"), wxTHICK_FRAME},
+ { wxT("wxRESIZE_BORDER"), wxRESIZE_BORDER},
+ { wxT("wxSYSTEM_MENU"), wxSYSTEM_MENU},
+ { wxT("wxMINIMIZE_BOX"), wxMINIMIZE_BOX},
+ { wxT("wxMAXIMIZE_BOX"), wxMAXIMIZE_BOX},
+ { wxT("wxRESIZE_BOX"), wxRESIZE_BOX},
+ { wxT("wxDEFAULT_FRAME_STYLE"), wxDEFAULT_FRAME_STYLE},
+ { wxT("wxDEFAULT_FRAME"), wxDEFAULT_FRAME_STYLE},
+ { wxT("wxDEFAULT_DIALOG_STYLE"), wxDEFAULT_DIALOG_STYLE},
+ { wxT("wxBORDER"), wxBORDER},
+ { wxT("wxRETAINED"), wxRETAINED},
+ { wxT("wxNATIVE_IMPL"), 0},
+ { wxT("wxEXTENDED_IMPL"), 0},
+ { wxT("wxBACKINGSTORE"), wxBACKINGSTORE},
+// { wxT("wxFLAT"), wxFLAT},
+// { wxT("wxMOTIF_RESIZE"), wxMOTIF_RESIZE},
+ { wxT("wxFIXED_LENGTH"), 0},
+ { wxT("wxDOUBLE_BORDER"), wxDOUBLE_BORDER},
+ { wxT("wxSUNKEN_BORDER"), wxSUNKEN_BORDER},
+ { wxT("wxRAISED_BORDER"), wxRAISED_BORDER},
+ { wxT("wxSIMPLE_BORDER"), wxSIMPLE_BORDER},
+ { wxT("wxSTATIC_BORDER"), wxSTATIC_BORDER},
+ { wxT("wxTRANSPARENT_WINDOW"), wxTRANSPARENT_WINDOW},
+ { wxT("wxNO_BORDER"), wxNO_BORDER},
+ { wxT("wxCLIP_CHILDREN"), wxCLIP_CHILDREN},
+ { wxT("wxTAB_TRAVERSAL"), 0}, // Compatibility only
+
+ { wxT("wxTINY_CAPTION_HORIZ"), wxTINY_CAPTION_HORIZ},
+ { wxT("wxTINY_CAPTION_VERT"), wxTINY_CAPTION_VERT},
// Text font families
- { T("wxDEFAULT"), wxDEFAULT},
- { T("wxDECORATIVE"), wxDECORATIVE},
- { T("wxROMAN"), wxROMAN},
- { T("wxSCRIPT"), wxSCRIPT},
- { T("wxSWISS"), wxSWISS},
- { T("wxMODERN"), wxMODERN},
- { T("wxTELETYPE"), wxTELETYPE},
- { T("wxVARIABLE"), wxVARIABLE},
- { T("wxFIXED"), wxFIXED},
- { T("wxNORMAL"), wxNORMAL},
- { T("wxLIGHT"), wxLIGHT},
- { T("wxBOLD"), wxBOLD},
- { T("wxITALIC"), wxITALIC},
- { T("wxSLANT"), wxSLANT},
- { T("wxSOLID"), wxSOLID},
- { T("wxDOT"), wxDOT},
- { T("wxLONG_DASH"), wxLONG_DASH},
- { T("wxSHORT_DASH"), wxSHORT_DASH},
- { T("wxDOT_DASH"), wxDOT_DASH},
- { T("wxUSER_DASH"), wxUSER_DASH},
- { T("wxTRANSPARENT"), wxTRANSPARENT},
- { T("wxSTIPPLE"), wxSTIPPLE},
- { T("wxBDIAGONAL_HATCH"), wxBDIAGONAL_HATCH},
- { T("wxCROSSDIAG_HATCH"), wxCROSSDIAG_HATCH},
- { T("wxFDIAGONAL_HATCH"), wxFDIAGONAL_HATCH},
- { T("wxCROSS_HATCH"), wxCROSS_HATCH},
- { T("wxHORIZONTAL_HATCH"), wxHORIZONTAL_HATCH},
- { T("wxVERTICAL_HATCH"), wxVERTICAL_HATCH},
- { T("wxJOIN_BEVEL"), wxJOIN_BEVEL},
- { T("wxJOIN_MITER"), wxJOIN_MITER},
- { T("wxJOIN_ROUND"), wxJOIN_ROUND},
- { T("wxCAP_ROUND"), wxCAP_ROUND},
- { T("wxCAP_PROJECTING"), wxCAP_PROJECTING},
- { T("wxCAP_BUTT"), wxCAP_BUTT},
+ { wxT("wxDEFAULT"), wxDEFAULT},
+ { wxT("wxDECORATIVE"), wxDECORATIVE},
+ { wxT("wxROMAN"), wxROMAN},
+ { wxT("wxSCRIPT"), wxSCRIPT},
+ { wxT("wxSWISS"), wxSWISS},
+ { wxT("wxMODERN"), wxMODERN},
+ { wxT("wxTELETYPE"), wxTELETYPE},
+ { wxT("wxVARIABLE"), wxVARIABLE},
+ { wxT("wxFIXED"), wxFIXED},
+ { wxT("wxNORMAL"), wxNORMAL},
+ { wxT("wxLIGHT"), wxLIGHT},
+ { wxT("wxBOLD"), wxBOLD},
+ { wxT("wxITALIC"), wxITALIC},
+ { wxT("wxSLANT"), wxSLANT},
+ { wxT("wxSOLID"), wxSOLID},
+ { wxT("wxDOT"), wxDOT},
+ { wxT("wxLONG_DASH"), wxLONG_DASH},
+ { wxT("wxSHORT_DASH"), wxSHORT_DASH},
+ { wxT("wxDOT_DASH"), wxDOT_DASH},
+ { wxT("wxUSER_DASH"), wxUSER_DASH},
+ { wxT("wxTRANSPARENT"), wxTRANSPARENT},
+ { wxT("wxSTIPPLE"), wxSTIPPLE},
+ { wxT("wxBDIAGONAL_HATCH"), wxBDIAGONAL_HATCH},
+ { wxT("wxCROSSDIAG_HATCH"), wxCROSSDIAG_HATCH},
+ { wxT("wxFDIAGONAL_HATCH"), wxFDIAGONAL_HATCH},
+ { wxT("wxCROSS_HATCH"), wxCROSS_HATCH},
+ { wxT("wxHORIZONTAL_HATCH"), wxHORIZONTAL_HATCH},
+ { wxT("wxVERTICAL_HATCH"), wxVERTICAL_HATCH},
+ { wxT("wxJOIN_BEVEL"), wxJOIN_BEVEL},
+ { wxT("wxJOIN_MITER"), wxJOIN_MITER},
+ { wxT("wxJOIN_ROUND"), wxJOIN_ROUND},
+ { wxT("wxCAP_ROUND"), wxCAP_ROUND},
+ { wxT("wxCAP_PROJECTING"), wxCAP_PROJECTING},
+ { wxT("wxCAP_BUTT"), wxCAP_BUTT},
// Logical ops
- { T("wxCLEAR"), wxCLEAR},
- { T("wxXOR"), wxXOR},
- { T("wxINVERT"), wxINVERT},
- { T("wxOR_REVERSE"), wxOR_REVERSE},
- { T("wxAND_REVERSE"), wxAND_REVERSE},
- { T("wxCOPY"), wxCOPY},
- { T("wxAND"), wxAND},
- { T("wxAND_INVERT"), wxAND_INVERT},
- { T("wxNO_OP"), wxNO_OP},
- { T("wxNOR"), wxNOR},
- { T("wxEQUIV"), wxEQUIV},
- { T("wxSRC_INVERT"), wxSRC_INVERT},
- { T("wxOR_INVERT"), wxOR_INVERT},
- { T("wxNAND"), wxNAND},
- { T("wxOR"), wxOR},
- { T("wxSET"), wxSET},
-
- { T("wxFLOOD_SURFACE"), wxFLOOD_SURFACE},
- { T("wxFLOOD_BORDER"), wxFLOOD_BORDER},
- { T("wxODDEVEN_RULE"), wxODDEVEN_RULE},
- { T("wxWINDING_RULE"), wxWINDING_RULE},
- { T("wxHORIZONTAL"), wxHORIZONTAL},
- { T("wxVERTICAL"), wxVERTICAL},
- { T("wxBOTH"), wxBOTH},
- { T("wxCENTER_FRAME"), wxCENTER_FRAME},
- { T("wxOK"), wxOK},
- { T("wxYES_NO"), wxYES_NO},
- { T("wxCANCEL"), wxCANCEL},
- { T("wxYES"), wxYES},
- { T("wxNO"), wxNO},
- { T("wxICON_EXCLAMATION"), wxICON_EXCLAMATION},
- { T("wxICON_HAND"), wxICON_HAND},
- { T("wxICON_QUESTION"), wxICON_QUESTION},
- { T("wxICON_INFORMATION"), wxICON_INFORMATION},
- { T("wxICON_STOP"), wxICON_STOP},
- { T("wxICON_ASTERISK"), wxICON_ASTERISK},
- { T("wxICON_MASK"), wxICON_MASK},
- { T("wxCENTRE"), wxCENTRE},
- { T("wxCENTER"), wxCENTRE},
- { T("wxUSER_COLOURS"), wxUSER_COLOURS},
- { T("wxVERTICAL_LABEL"), 0},
- { T("wxHORIZONTAL_LABEL"), 0},
+ { wxT("wxCLEAR"), wxCLEAR},
+ { wxT("wxXOR"), wxXOR},
+ { wxT("wxINVERT"), wxINVERT},
+ { wxT("wxOR_REVERSE"), wxOR_REVERSE},
+ { wxT("wxAND_REVERSE"), wxAND_REVERSE},
+ { wxT("wxCOPY"), wxCOPY},
+ { wxT("wxAND"), wxAND},
+ { wxT("wxAND_INVERT"), wxAND_INVERT},
+ { wxT("wxNO_OP"), wxNO_OP},
+ { wxT("wxNOR"), wxNOR},
+ { wxT("wxEQUIV"), wxEQUIV},
+ { wxT("wxSRC_INVERT"), wxSRC_INVERT},
+ { wxT("wxOR_INVERT"), wxOR_INVERT},
+ { wxT("wxNAND"), wxNAND},
+ { wxT("wxOR"), wxOR},
+ { wxT("wxSET"), wxSET},
+
+ { wxT("wxFLOOD_SURFACE"), wxFLOOD_SURFACE},
+ { wxT("wxFLOOD_BORDER"), wxFLOOD_BORDER},
+ { wxT("wxODDEVEN_RULE"), wxODDEVEN_RULE},
+ { wxT("wxWINDING_RULE"), wxWINDING_RULE},
+ { wxT("wxHORIZONTAL"), wxHORIZONTAL},
+ { wxT("wxVERTICAL"), wxVERTICAL},
+ { wxT("wxBOTH"), wxBOTH},
+ { wxT("wxCENTER_FRAME"), wxCENTER_FRAME},
+ { wxT("wxOK"), wxOK},
+ { wxT("wxYES_NO"), wxYES_NO},
+ { wxT("wxCANCEL"), wxCANCEL},
+ { wxT("wxYES"), wxYES},
+ { wxT("wxNO"), wxNO},
+ { wxT("wxICON_EXCLAMATION"), wxICON_EXCLAMATION},
+ { wxT("wxICON_HAND"), wxICON_HAND},
+ { wxT("wxICON_QUESTION"), wxICON_QUESTION},
+ { wxT("wxICON_INFORMATION"), wxICON_INFORMATION},
+ { wxT("wxICON_STOP"), wxICON_STOP},
+ { wxT("wxICON_ASTERISK"), wxICON_ASTERISK},
+ { wxT("wxICON_MASK"), wxICON_MASK},
+ { wxT("wxCENTRE"), wxCENTRE},
+ { wxT("wxCENTER"), wxCENTRE},
+ { wxT("wxUSER_COLOURS"), wxUSER_COLOURS},
+ { wxT("wxVERTICAL_LABEL"), 0},
+ { wxT("wxHORIZONTAL_LABEL"), 0},
// Bitmap types (not strictly styles)
- { T("wxBITMAP_TYPE_XPM"), wxBITMAP_TYPE_XPM},
- { T("wxBITMAP_TYPE_XBM"), wxBITMAP_TYPE_XBM},
- { T("wxBITMAP_TYPE_BMP"), wxBITMAP_TYPE_BMP},
- { T("wxBITMAP_TYPE_RESOURCE"), wxBITMAP_TYPE_BMP_RESOURCE},
- { T("wxBITMAP_TYPE_BMP_RESOURCE"), wxBITMAP_TYPE_BMP_RESOURCE},
- { T("wxBITMAP_TYPE_GIF"), wxBITMAP_TYPE_GIF},
- { T("wxBITMAP_TYPE_TIF"), wxBITMAP_TYPE_TIF},
- { T("wxBITMAP_TYPE_ICO"), wxBITMAP_TYPE_ICO},
- { T("wxBITMAP_TYPE_ICO_RESOURCE"), wxBITMAP_TYPE_ICO_RESOURCE},
- { T("wxBITMAP_TYPE_CUR"), wxBITMAP_TYPE_CUR},
- { T("wxBITMAP_TYPE_CUR_RESOURCE"), wxBITMAP_TYPE_CUR_RESOURCE},
- { T("wxBITMAP_TYPE_XBM_DATA"), wxBITMAP_TYPE_XBM_DATA},
- { T("wxBITMAP_TYPE_XPM_DATA"), wxBITMAP_TYPE_XPM_DATA},
- { T("wxBITMAP_TYPE_ANY"), wxBITMAP_TYPE_ANY}
+ { wxT("wxBITMAP_TYPE_XPM"), wxBITMAP_TYPE_XPM},
+ { wxT("wxBITMAP_TYPE_XBM"), wxBITMAP_TYPE_XBM},
+ { wxT("wxBITMAP_TYPE_BMP"), wxBITMAP_TYPE_BMP},
+ { wxT("wxBITMAP_TYPE_RESOURCE"), wxBITMAP_TYPE_BMP_RESOURCE},
+ { wxT("wxBITMAP_TYPE_BMP_RESOURCE"), wxBITMAP_TYPE_BMP_RESOURCE},
+ { wxT("wxBITMAP_TYPE_GIF"), wxBITMAP_TYPE_GIF},
+ { wxT("wxBITMAP_TYPE_TIF"), wxBITMAP_TYPE_TIF},
+ { wxT("wxBITMAP_TYPE_ICO"), wxBITMAP_TYPE_ICO},
+ { wxT("wxBITMAP_TYPE_ICO_RESOURCE"), wxBITMAP_TYPE_ICO_RESOURCE},
+ { wxT("wxBITMAP_TYPE_CUR"), wxBITMAP_TYPE_CUR},
+ { wxT("wxBITMAP_TYPE_CUR_RESOURCE"), wxBITMAP_TYPE_CUR_RESOURCE},
+ { wxT("wxBITMAP_TYPE_XBM_DATA"), wxBITMAP_TYPE_XBM_DATA},
+ { wxT("wxBITMAP_TYPE_XPM_DATA"), wxBITMAP_TYPE_XPM_DATA},
+ { wxT("wxBITMAP_TYPE_ANY"), wxBITMAP_TYPE_ANY}
};
static int wxResourceBitListCount = (sizeof(wxResourceBitListTable)/sizeof(wxResourceBitListStruct));
wxItemResource *item = table->FindResource(resource);
if (item)
{
- if ((item->GetType() == T("")) || (item->GetType() != T("wxBitmap")))
+ if ((item->GetType() == wxT("")) || (item->GetType() != wxT("wxBitmap")))
{
wxLogWarning(_("%s not a bitmap resource specification."), (const wxChar*) resource);
return wxNullBitmap;
wxItemResource *item = table->FindResource(resource);
if (item)
{
- if ((item->GetType() == T("")) || wxStrcmp(item->GetType(), T("wxIcon")) != 0)
+ if ((item->GetType() == wxT("")) || wxStrcmp(item->GetType(), wxT("wxIcon")) != 0)
{
wxLogWarning(_("%s not an icon resource specification."), (const wxChar*) resource);
return wxNullIcon;
while (node)
{
wxItemResource *child = (wxItemResource *)node->Data();
- if ((child->GetType() != T("")) && (child->GetType() == T("wxMenuSeparator")))
+ if ((child->GetType() != wxT("")) && (child->GetType() == wxT("wxMenuSeparator")))
menu->AppendSeparator();
else if (child->GetChildren().Number() > 0)
{
table = wxDefaultResourceTable;
wxItemResource *menuResource = table->FindResource(resource);
- if (menuResource && (menuResource->GetType() != T("")) && (menuResource->GetType() == T("wxMenu")))
+ if (menuResource && (menuResource->GetType() != wxT("")) && (menuResource->GetType() == wxT("wxMenu")))
{
if (!menuBar)
menuBar = new wxMenuBar;
table = wxDefaultResourceTable;
wxItemResource *menuResource = table->FindResource(resource);
- if (menuResource && (menuResource->GetType() != T("")) && (menuResource->GetType() == T("wxMenu")))
+ if (menuResource && (menuResource->GetType() != wxT("")) && (menuResource->GetType() == wxT("wxMenu")))
// if (menuResource && (menuResource->GetType() == wxTYPE_MENU))
return wxResourceCreateMenu(menuResource);
return (wxMenu *) NULL;
wxItemResource *resource = table->FindResource((const wxChar *)resourceName);
// if (!resource || (resource->GetType() != wxTYPE_DIALOG_BOX))
- if (!resource || (resource->GetType() == T("")) ||
- ! ((resource->GetType() == T("wxDialog")) || (resource->GetType() == T("wxPanel"))))
+ if (!resource || (resource->GetType() == wxT("")) ||
+ ! ((resource->GetType() == wxT("wxDialog")) || (resource->GetType() == wxT("wxPanel"))))
return FALSE;
wxString title(resource->GetTitle());
bool wxIPV4address::Hostname(const wxString& name)
{
// Some people are sometimes fool.
- if (name == T("")) {
- wxLogWarning( T("Trying to solve a NULL hostname: giving up") );
+ if (name == wxT("")) {
+ wxLogWarning( wxT("Trying to solve a NULL hostname: giving up") );
return FALSE;
}
#if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxFileProto, wxProtocol)
-IMPLEMENT_PROTOCOL(wxFileProto, T("file"), NULL, FALSE)
+IMPLEMENT_PROTOCOL(wxFileProto, wxT("file"), NULL, FALSE)
#endif
wxFileProto::wxFileProto()
wxStaticBoxSizer::wxStaticBoxSizer( wxStaticBox *box, int orient )
: wxBoxSizer( orient )
{
- wxASSERT_MSG( box, T("wxStaticBoxSizer needs a static box") );
+ wxASSERT_MSG( box, wxT("wxStaticBoxSizer needs a static box") );
m_staticBox = box;
}
if (sig != 0xfeeddead)
{
- wxLogMessage(T("Warning: invalid signature returned to ReadMsg"));
+ wxLogMessage(wxT("Warning: invalid signature returned to ReadMsg"));
goto exit;
}
if (sig != 0xdeadfeed)
{
- //wxLogMessage(T("Warning: invalid signature returned to ReadMsg"));
+ //wxLogMessage(wxT("Warning: invalid signature returned to ReadMsg"));
goto exit;
}
#if defined(__UNIX__) && wxUSE_TEXTFILE
// search through files in /usr/share/i18n/charmaps
wxString fname;
- for (fname = ::wxFindFirstFile(T("/usr/share/i18n/charmaps/*"));
+ for (fname = ::wxFindFirstFile(wxT("/usr/share/i18n/charmaps/*"));
!fname.IsEmpty();
fname = ::wxFindNextFile()) {
wxTextFile cmap(fname);
wxString comchar,escchar;
bool in_charset = FALSE;
- // wxFprintf(stderr,T("Loaded: %s\n"),fname.c_str());
+ // wxFprintf(stderr,wxT("Loaded: %s\n"),fname.c_str());
wxString line;
for (line = cmap.GetFirstLine();
!cmap.Eof();
line = cmap.GetNextLine()) {
- // wxFprintf(stderr,T("line contents: %s\n"),line.c_str());
+ // wxFprintf(stderr,wxT("line contents: %s\n"),line.c_str());
wxStringTokenizer token(line);
wxString cmd = token.GetNextToken();
if (cmd == comchar) {
- if (token.GetNextToken() == T("alias"))
+ if (token.GetNextToken() == wxT("alias"))
cset->names.Add(token.GetNextToken());
}
- else if (cmd == T("<code_set_name>"))
+ else if (cmd == wxT("<code_set_name>"))
cset->names.Add(token.GetNextToken());
- else if (cmd == T("<comment_char>"))
+ else if (cmd == wxT("<comment_char>"))
comchar = token.GetNextToken();
- else if (cmd == T("<escape_char>"))
+ else if (cmd == wxT("<escape_char>"))
escchar = token.GetNextToken();
- else if (cmd == T("<mb_cur_min>")) {
+ else if (cmd == wxT("<mb_cur_min>")) {
delete cset;
cset = (wxCharacterSet *) NULL;
break; // we don't support multibyte charsets ourselves (yet)
}
- else if (cmd == T("CHARMAP")) {
+ else if (cmd == wxT("CHARMAP")) {
cset->data = (wchar_t *)calloc(256, sizeof(wchar_t));
in_charset = TRUE;
}
- else if (cmd == T("END")) {
- if (token.GetNextToken() == T("CHARMAP"))
+ else if (cmd == wxT("END")) {
+ if (token.GetNextToken() == wxT("CHARMAP"))
in_charset = FALSE;
}
else if (in_charset) {
wxString uni = token.GetNextToken();
// skip whitespace again
while (wxIsEmpty(uni) && token.HasMoreTokens()) uni = token.GetNextToken();
- if ((hex.Len() > 2) && (wxString(hex.GetChar(0)) == escchar) && (hex.GetChar(1) == T('x')) &&
- (uni.Left(2) == T("<U"))) {
+ if ((hex.Len() > 2) && (wxString(hex.GetChar(0)) == escchar) && (hex.GetChar(1) == wxT('x')) &&
+ (uni.Left(2) == wxT("<U"))) {
hex.MakeUpper(); uni.MakeUpper();
int pos = ::wxHexToDec(hex.Mid(2,2));
if (pos>=0) {
unsigned long uni1 = ::wxHexToDec(uni.Mid(2,2));
unsigned long uni2 = ::wxHexToDec(uni.Mid(4,2));
cset->data[pos] = (uni1 << 16) | uni2;
- // wxFprintf(stderr,T("char %02x mapped to %04x (%c)\n"),pos,cset->data[pos],cset->data[pos]);
+ // wxFprintf(stderr,wxT("char %02x mapped to %04x (%c)\n"),pos,cset->data[pos],cset->data[pos]);
}
}
}
#ifdef __UNIX__
// first, convert the character set name to standard form
wxString codeset;
- if (wxString(charset,3).CmpNoCase(T("ISO")) == 0) {
+ if (wxString(charset,3).CmpNoCase(wxT("ISO")) == 0) {
// make sure it's represented in the standard form: ISO_8859-1
- codeset = T("ISO_");
+ codeset = wxT("ISO_");
charset += 3;
- if ((*charset == T('-')) || (*charset == T('_'))) charset++;
+ if ((*charset == wxT('-')) || (*charset == wxT('_'))) charset++;
if (wxStrlen(charset)>4) {
- if (wxString(charset,4) == T("8859")) {
- codeset << T("8859-");
- if (*charset == T('-')) charset++;
+ if (wxString(charset,4) == wxT("8859")) {
+ codeset << wxT("8859-");
+ if (*charset == wxT('-')) charset++;
}
}
}
void wxCSConv::LoadNow()
{
-// wxPrintf(T("Conversion request\n"));
+// wxPrintf(wxT("Conversion request\n"));
if (m_deferred) {
if (!m_name) {
#ifdef __UNIX__
- wxChar *lang = wxGetenv(T("LANG"));
- wxChar *dot = lang ? wxStrchr(lang, T('.')) : (wxChar *)NULL;
+ wxChar *lang = wxGetenv(wxT("LANG"));
+ wxChar *dot = lang ? wxStrchr(lang, wxT('.')) : (wxChar *)NULL;
if (dot) SetName(dot+1);
#endif
}
{
wxStringData data;
wxChar dummy;
-} g_strEmpty = { {-1, 0, 0}, T('\0') };
+} g_strEmpty = { {-1, 0, 0}, wxT('\0') };
// empty C style string: points to 'string data' byte of g_strEmpty
extern const wxChar WXDLLEXPORT *wxEmptyString = &g_strEmpty.dummy;
pData->nDataLength = nLen;
pData->nAllocLength = nLen + EXTRA_ALLOC;
m_pchData = pData->data(); // data starts after wxStringData
- m_pchData[nLen] = T('\0');
+ m_pchData[nLen] = wxT('\0');
}
// must be called before changing this string
pData->nDataLength = 0;
pData->nAllocLength = nLen;
m_pchData = pData->data(); // data starts after wxStringData
- m_pchData[0u] = T('\0');
+ m_pchData[0u] = wxT('\0');
}
else if ( pData->IsShared() ) {
pData->Unlock(); // memory not freed because shared
AllocBeforeWrite(nSrcLen);
memcpy(m_pchData, pszSrcData, nSrcLen*sizeof(wxChar));
GetStringData()->nDataLength = nSrcLen;
- m_pchData[nSrcLen] = T('\0');
+ m_pchData[nSrcLen] = wxT('\0');
}
}
// fast concatenation - all is done in our buffer
memcpy(m_pchData + nLen, pszSrcData, nSrcLen*sizeof(wxChar));
- m_pchData[nNewLen] = T('\0'); // put terminating '\0'
+ m_pchData[nNewLen] = wxT('\0'); // put terminating '\0'
GetStringData()->nDataLength = nNewLen; // and fix the length
}
//else: the string to append was empty
wxString wxString::BeforeFirst(wxChar ch) const
{
wxString str;
- for ( const wxChar *pc = m_pchData; *pc != T('\0') && *pc != ch; pc++ )
+ for ( const wxChar *pc = m_pchData; *pc != wxT('\0') && *pc != ch; pc++ )
str += *pc;
return str;
wxString strTemp;
const wxChar *pCurrent = m_pchData;
const wxChar *pSubstr;
- while ( *pCurrent != T('\0') ) {
+ while ( *pCurrent != wxT('\0') ) {
pSubstr = wxStrstr(pCurrent, szOld);
if ( pSubstr == NULL ) {
// strTemp is unused if no replacements were made, so avoid the copy
psz--;
// truncate at trailing space start
- *++psz = T('\0');
+ *++psz = wxT('\0');
GetStringData()->nDataLength = psz - m_pchData;
}
else
if ( uiLen < Len() ) {
CopyBeforeWrite();
- *(m_pchData + uiLen) = T('\0');
+ *(m_pchData + uiLen) = wxT('\0');
GetStringData()->nDataLength = uiLen;
}
//else: nothing to do, string is already short enough
wxString& wxString::operator<<(int i)
{
wxString res;
- res.Printf(T("%d"), i);
+ res.Printf(wxT("%d"), i);
return (*this) << res;
}
wxString& wxString::operator<<(float f)
{
wxString res;
- res.Printf(T("%f"), f);
+ res.Printf(wxT("%f"), f);
return (*this) << res;
}
wxString& wxString::operator<<(double d)
{
wxString res;
- res.Printf(T("%g"), d);
+ res.Printf(wxT("%g"), d);
return (*this) << res;
}
Reinit();
for (size_t n = 0; pszFormat[n]; n++)
- if (pszFormat[n] == T('%')) {
+ if (pszFormat[n] == wxT('%')) {
static char s_szFlags[256] = "%";
size_t flagofs = 1;
bool adj_left = FALSE, in_prec = FALSE,
do {
#define CHECK_PREC if (in_prec && !prec_dot) { s_szFlags[flagofs++] = '.'; prec_dot = TRUE; }
switch (pszFormat[++n]) {
- case T('\0'):
+ case wxT('\0'):
done = TRUE;
break;
- case T('%'):
- *this += T('%');
+ case wxT('%'):
+ *this += wxT('%');
done = TRUE;
break;
- case T('#'):
- case T('0'):
- case T(' '):
- case T('+'):
- case T('\''):
+ case wxT('#'):
+ case wxT('0'):
+ case wxT(' '):
+ case wxT('+'):
+ case wxT('\''):
CHECK_PREC
s_szFlags[flagofs++] = pszFormat[n];
break;
- case T('-'):
+ case wxT('-'):
CHECK_PREC
adj_left = TRUE;
s_szFlags[flagofs++] = pszFormat[n];
break;
- case T('.'):
+ case wxT('.'):
CHECK_PREC
in_prec = TRUE;
prec_dot = FALSE;
max_width = 0;
// dot will be auto-added to s_szFlags if non-negative number follows
break;
- case T('h'):
+ case wxT('h'):
ilen = -1;
CHECK_PREC
s_szFlags[flagofs++] = pszFormat[n];
break;
- case T('l'):
+ case wxT('l'):
ilen = 1;
CHECK_PREC
s_szFlags[flagofs++] = pszFormat[n];
break;
- case T('q'):
- case T('L'):
+ case wxT('q'):
+ case wxT('L'):
ilen = 2;
CHECK_PREC
s_szFlags[flagofs++] = pszFormat[n];
break;
- case T('Z'):
+ case wxT('Z'):
ilen = 3;
CHECK_PREC
s_szFlags[flagofs++] = pszFormat[n];
break;
- case T('*'):
+ case wxT('*'):
{
int len = va_arg(argptr, int);
if (in_prec) {
flagofs += ::sprintf(s_szFlags+flagofs,"%d",len);
}
break;
- case T('1'): case T('2'): case T('3'):
- case T('4'): case T('5'): case T('6'):
- case T('7'): case T('8'): case T('9'):
+ case wxT('1'): case wxT('2'): case wxT('3'):
+ case wxT('4'): case wxT('5'): case wxT('6'):
+ case wxT('7'): case wxT('8'): case wxT('9'):
{
int len = 0;
CHECK_PREC
- while ((pszFormat[n]>=T('0')) && (pszFormat[n]<=T('9'))) {
+ while ((pszFormat[n]>=wxT('0')) && (pszFormat[n]<=wxT('9'))) {
s_szFlags[flagofs++] = pszFormat[n];
- len = len*10 + (pszFormat[n] - T('0'));
+ len = len*10 + (pszFormat[n] - wxT('0'));
n++;
}
if (in_prec) max_width = len;
n--; // the main loop pre-increments n again
}
break;
- case T('d'):
- case T('i'):
- case T('o'):
- case T('u'):
- case T('x'):
- case T('X'):
+ case wxT('d'):
+ case wxT('i'):
+ case wxT('o'):
+ case wxT('u'):
+ case wxT('x'):
+ case wxT('X'):
CHECK_PREC
s_szFlags[flagofs++] = pszFormat[n];
s_szFlags[flagofs] = '\0';
*this += wxString(s_szScratch);
done = TRUE;
break;
- case T('e'):
- case T('E'):
- case T('f'):
- case T('g'):
- case T('G'):
+ case wxT('e'):
+ case wxT('E'):
+ case wxT('f'):
+ case wxT('g'):
+ case wxT('G'):
CHECK_PREC
s_szFlags[flagofs++] = pszFormat[n];
s_szFlags[flagofs] = '\0';
*this += wxString(s_szScratch);
done = TRUE;
break;
- case T('p'):
+ case wxT('p'):
{
void *val = va_arg(argptr, void *);
CHECK_PREC
done = TRUE;
}
break;
- case T('c'):
+ case wxT('c'):
{
wxChar val = va_arg(argptr, int);
// we don't need to honor padding here, do we?
done = TRUE;
}
break;
- case T('s'):
+ case wxT('s'):
if (ilen == -1) {
// wx extension: we'll let %hs mean non-Unicode strings
char *val = va_arg(argptr, char *);
size_t len = wxSTRING_MAXLEN;
if (val) {
for (len = 0; val[len] && (len<max_width); len++);
- } else val = T("(null)");
+ } else val = wxT("(null)");
wxString s(val, len);
#endif
if (s.Len() < min_width)
- s.Pad(min_width - s.Len(), T(' '), adj_left);
+ s.Pad(min_width - s.Len(), wxT(' '), adj_left);
*this += s;
} else {
wxChar *val = va_arg(argptr, wxChar *);
size_t len = wxSTRING_MAXLEN;
if (val) {
for (len = 0; val[len] && (len<max_width); len++);
- } else val = T("(null)");
+ } else val = wxT("(null)");
wxString s(val, len);
if (s.Len() < min_width)
- s.Pad(min_width - s.Len(), T(' '), adj_left);
+ s.Pad(min_width - s.Len(), wxT(' '), adj_left);
*this += s;
}
done = TRUE;
break;
- case T('n'):
+ case wxT('n'):
if (ilen == 0) {
int *val = va_arg(argptr, int *);
*val = Len();
s_szFlags[flagofs++] = pszFormat[n];
else {
// bad format
- *this += T('%'); // just to pass the glibc tst-printf.c
+ *this += wxT('%'); // just to pass the glibc tst-printf.c
n--;
done = TRUE;
}
{
// check char by char
const wxChar *pszTxt;
- for ( pszTxt = c_str(); *pszMask != T('\0'); pszMask++, pszTxt++ ) {
+ for ( pszTxt = c_str(); *pszMask != wxT('\0'); pszMask++, pszTxt++ ) {
switch ( *pszMask ) {
- case T('?'):
- if ( *pszTxt == T('\0') )
+ case wxT('?'):
+ if ( *pszTxt == wxT('\0') )
return FALSE;
// pszText and pszMask will be incremented in the loop statement
break;
- case T('*'):
+ case wxT('*'):
{
// ignore special chars immediately following this one
- while ( *pszMask == T('*') || *pszMask == T('?') )
+ while ( *pszMask == wxT('*') || *pszMask == wxT('?') )
pszMask++;
// if there is nothing more, match
- if ( *pszMask == T('\0') )
+ if ( *pszMask == wxT('\0') )
return TRUE;
// are there any other metacharacters in the mask?
size_t uiLenMask;
- const wxChar *pEndMask = wxStrpbrk(pszMask, T("*?"));
+ const wxChar *pEndMask = wxStrpbrk(pszMask, wxT("*?"));
if ( pEndMask != NULL ) {
// we have to match the string between two metachars
}
// match only if nothing left
- return *pszTxt == T('\0');
+ return *pszTxt == wxT('\0');
}
// Count the number of chars
if ( !filenameToUse )
{
// what kind of message to give? is it an error or a program bug?
- wxLogDebug(T("Can't save textctrl to file without filename."));
+ wxLogDebug(wxT("Can't save textctrl to file without filename."));
return FALSE;
}
wxTextCtrl& wxTextCtrlBase::operator<<(float f)
{
wxString str;
- str.Printf(T("%.2f"), f);
+ str.Printf(wxT("%.2f"), f);
AppendText(str);
return *TEXTCTRL(this);
}
wxTextCtrl& wxTextCtrlBase::operator<<(double d)
{
wxString str;
- str.Printf(T("%.2f"), d);
+ str.Printf(wxT("%.2f"), d);
AppendText(str);
return *TEXTCTRL(this);
}
wxTextCtrl& wxTextCtrlBase::operator<<(int i)
{
wxString str;
- str.Printf(T("%d"), i);
+ str.Printf(wxT("%d"), i);
AppendText(str);
return *TEXTCTRL(this);
}
wxTextCtrl& wxTextCtrlBase::operator<<(long i)
{
wxString str;
- str.Printf(T("%ld"), i);
+ str.Printf(wxT("%ld"), i);
AppendText(str);
return *TEXTCTRL(this);
}
{
switch ( type ) {
default:
- wxFAIL_MSG(T("bad file type in wxTextFile::GetEOL."));
+ wxFAIL_MSG(wxT("bad file type in wxTextFile::GetEOL."));
// fall through nevertheless - we must return something...
- case wxTextFileType_None: return T("");
- case wxTextFileType_Unix: return T("\n");
- case wxTextFileType_Dos: return T("\r\n");
- case wxTextFileType_Mac: return T("\r");
+ case wxTextFileType_None: return wxT("");
+ case wxTextFileType_Unix: return wxT("\n");
+ case wxTextFileType_Dos: return wxT("\r\n");
+ case wxTextFileType_Mac: return wxT("\r");
}
}
switch (Precision) {
case wxStdMinSec:
- wxSprintf(timeBuf,T("%2d:%02d:%02d"),hh,GetMinute(),GetSecond());
+ wxSprintf(timeBuf,wxT("%2d:%02d:%02d"),hh,GetMinute(),GetSecond());
break;
case wxStdMin:
- wxSprintf(timeBuf,T("%2d:%02d"),hh,GetMinute());
+ wxSprintf(timeBuf,wxT("%2d:%02d"),hh,GetMinute());
break;
}
c = m_input->GetC();
if (!m_input) return (wxChar) 0;
- if (c != T('\n') &&
- c != T('\r') &&
- c != T('\t') &&
- c != T(' '))
+ if (c != wxT('\n') &&
+ c != wxT('\r') &&
+ c != wxT('\t') &&
+ c != wxT(' '))
{
return c;
}
void wxTextInputStream::SkipIfEndOfLine( wxChar c )
{
- if (c == T('\n'))
+ if (c == wxT('\n'))
{
// eat on UNIX
return;
}
- if (c == T('\r'))
+ if (c == wxT('\r'))
{
// eat on both Mac and DOS
wxChar c2 = m_input->GetC();
if (!m_input) return;
- if (c2 == T('\n'))
+ if (c2 == wxT('\n'))
{
// eat on DOS
return;
if (!m_input) return 0;
i = 0;
- if (! (c == T('-') || c == T('+') || isdigit(c)) )
+ if (! (c == wxT('-') || c == wxT('+') || isdigit(c)) )
{
m_input->Ungetch(c);
return 0;
}
- if (c == T('-'))
+ if (c == wxT('-'))
{
sign = -1;
c = m_input->GetC();
} else
- if (c == T('+'))
+ if (c == wxT('+'))
{
sign = 1;
c = m_input->GetC();
while (isdigit(c))
{
- i = i*10 + (c - (int)T('0'));
+ i = i*10 + (c - (int)wxT('0'));
c = m_input->GetC();
}
if (!m_input) return 0.0;
f = 0.0;
- if (! (c == T('.') || c == T('-') || c == T('+') || isdigit(c)) )
+ if (! (c == wxT('.') || c == wxT('-') || c == wxT('+') || isdigit(c)) )
{
m_input->Ungetch(c);
return 0.0;
}
- if (c == T('-'))
+ if (c == wxT('-'))
{
sign = -1;
c = m_input->GetC();
} else
- if (c == T('+'))
+ if (c == wxT('+'))
{
sign = 1;
c = m_input->GetC();
while (isdigit(c))
{
- f = f*10 + (c - T('0'));
+ f = f*10 + (c - wxT('0'));
c = m_input->GetC();
}
- if (c == T('.'))
+ if (c == wxT('.'))
{
double f_multiplicator = (double) 0.1;
while (isdigit(c))
{
- f += (c-T('0'))*f_multiplicator;
+ f += (c-wxT('0'))*f_multiplicator;
f_multiplicator /= 10;
c = m_input->GetC();
}
- if (c == T('e'))
+ if (c == wxT('e'))
{
double f_multiplicator = 0.0;
int i, e;
switch (c)
{
- case T('-'): f_multiplicator = 0.1; break;
- case T('+'): f_multiplicator = 10.0; break;
+ case wxT('-'): f_multiplicator = 0.1; break;
+ case wxT('+'): f_multiplicator = 10.0; break;
}
e = Read8(); // why only max 256 ?
c = m_input->GetC();
if (!m_input) break;
- if (c == T('\n'))
+ if (c == wxT('\n'))
{
// eat on UNIX
break;
}
- if (c == T('\r'))
+ if (c == wxT('\r'))
{
// eat on both Mac and DOS
wxChar c2 = m_input->GetC();
if (!m_input) break;
- if (c2 == T('\n'))
+ if (c2 == wxT('\n'))
{
// eat on DOS
break;
return *this;
}
- if (c1 == T('\r'))
+ if (c1 == wxT('\r'))
{
- c = T('\n');
+ c = wxT('\n');
wxChar c2 = m_input->GetC();
if (!m_input) return *this;
- if (c2 != T('\n'))
+ if (c2 != wxT('\n'))
{
// we are on a Mac
m_input->Ungetch( c2 );
void wxTextOutputStream::Write32(wxUint32 i)
{
wxString str;
- str.Printf(T("%u"), i);
+ str.Printf(wxT("%u"), i);
WriteString(str);
}
void wxTextOutputStream::Write16(wxUint16 i)
{
wxString str;
- str.Printf(T("%u"), i);
+ str.Printf(wxT("%u"), i);
WriteString(str);
}
void wxTextOutputStream::Write8(wxUint8 i)
{
wxString str;
- str.Printf(T("%u"), i);
+ str.Printf(wxT("%u"), i);
WriteString(str);
}
{
wxString str;
- str.Printf(T("%f"), d);
+ str.Printf(wxT("%f"), d);
WriteString(str);
}
for (size_t i = 0; i < string.Len(); i++)
{
wxChar c = string[i];
- if (c == T('\n'))
+ if (c == wxT('\n'))
{
#if defined(__WINDOWS__)
- c = T('\r');
+ c = wxT('\r');
m_output->Write( (const void*)(&c), sizeof(wxChar) );
- c = T('\n');
+ c = wxT('\n');
m_output->Write( (const void*)(&c), sizeof(wxChar) );
#elif defined(__UNIX__)
- c = T('\n');
+ c = wxT('\n');
m_output->Write( (const void*)(&c), sizeof(wxChar) );
#elif defined(__WXMAC__)
- c = T('\r');
+ c = wxT('\r');
m_output->Write( (const void*)(&c), sizeof(wxChar) );
#elif defined(__OS2__)
- c = T('\r');
+ c = wxT('\r');
m_output->Write( (const void*)(&c), sizeof(wxChar) );
- c = T('\n');
+ c = wxT('\n');
m_output->Write( (const void*)(&c), sizeof(wxChar) );
#else
#error "wxTextOutputStream: unsupported platform."
wxTextOutputStream &endl( wxTextOutputStream &stream )
{
- return stream << T('\n');
+ return stream << wxT('\n');
}
#endif
CleanData();
// Third, we rebuild the URL.
- m_url = m_protoname + T(":");
+ m_url = m_protoname + wxT(":");
if (m_protoinfo->m_needhost)
- m_url = m_url + T("//") + m_hostname;
+ m_url = m_url + wxT("//") + m_hostname;
m_url += m_path;
int pos;
// Find end
- pos = url.Find(T(':'));
+ pos = url.Find(wxT(':'));
if (pos == -1)
return FALSE;
url = url(2, url.Length());
- pos = url.Find(T('/'));
+ pos = url.Find(wxT('/'));
if (pos == -1)
pos = url.Length();
return FALSE;
temp_url = url(0, pos);
- url = url(url.Find(T('/')), url.Length());
+ url = url(url.Find(wxT('/')), url.Length());
// Retrieve service number
- pos2 = temp_url.Find(T(':'), TRUE);
+ pos2 = temp_url.Find(wxT(':'), TRUE);
if (pos2 != -1 && pos2 < pos) {
m_servname = temp_url(pos2+1, pos);
if (!m_servname.IsNumber())
}
// Retrieve user and password.
- pos2 = temp_url.Find(T('@'));
+ pos2 = temp_url.Find(wxT('@'));
// Even if pos2 equals -1, this code is right.
m_hostname = temp_url(pos2+1, temp_url.Length());
- m_user = T("");
- m_password = T("");
+ m_user = wxT("");
+ m_password = wxT("");
if (pos2 == -1)
return TRUE;
temp_url = temp_url(0, pos2);
- pos2 = temp_url.Find(T(':'));
+ pos2 = temp_url.Find(wxT(':'));
if (pos2 == -1)
return FALSE;
if (url.Length() != 0)
m_path = ConvertToValidURI(url);
else
- m_path = T("/");
+ m_path = wxT("/");
return TRUE;
}
}
m_error = wxURL_NOERR;
- if (m_user != T("")) {
+ if (m_user != wxT("")) {
m_protocol->SetUser(m_user);
m_protocol->SetPassword(m_password);
}
}
wxString tmp_str = url_proxy;
- int pos = tmp_str.Find(T(':'));
+ int pos = tmp_str.Find(wxT(':'));
if (pos == -1)
return;
wxIPV4address addr;
tmp_str = url_proxy;
- pos = tmp_str.Find(T(':'));
+ pos = tmp_str.Find(wxT(':'));
// This is an invalid proxy name.
if (pos == -1)
return;
for (i=0;i<uri.Len();i++) {
wxChar c = uri.GetChar(i);
- if (c == T(' '))
- out_str += T('+');
+ if (c == wxT(' '))
+ out_str += wxT('+');
else {
- if (!isalpha(c) && c != T('.') && c != T('+') && c != T('/')) {
- hexa_code.Printf(T("%%%02X"), c);
+ if (!isalpha(c) && c != wxT('.') && c != wxT('+') && c != wxT('/')) {
+ hexa_code.Printf(wxT("%%%02X"), c);
out_str += hexa_code;
} else
out_str += c;
size_t i = 0;
while (i<uri.Len()) {
int code;
- if (uri[i] == T('%')) {
+ if (uri[i] == wxT('%')) {
i++;
- if (uri[i] >= T('A') && uri[i] <= T('F'))
- code = (uri[i] - T('A') + 10) * 16;
+ if (uri[i] >= wxT('A') && uri[i] <= wxT('F'))
+ code = (uri[i] - wxT('A') + 10) * 16;
else
- code = (uri[i] - T('0')) * 16;
+ code = (uri[i] - wxT('0')) * 16;
i++;
- if (uri[i] >= T('A') && uri[i] <= T('F'))
- code += (uri[i] - T('A')) + 10;
+ if (uri[i] >= wxT('A') && uri[i] <= wxT('F'))
+ code += (uri[i] - wxT('A')) + 10;
else
- code += (uri[i] - T('0'));
+ code += (uri[i] - wxT('0'));
i++;
new_uri += (wxChar)code;
continue;
wxChar *
copystring (const wxChar *s)
{
- if (s == NULL) s = T("");
+ if (s == NULL) s = wxT("");
size_t len = wxStrlen (s) + 1;
wxChar *news = new wxChar[len];
{
static wxChar buf[20];
- wxSprintf (buf, T("%d"), number);
+ wxSprintf (buf, wxT("%d"), number);
return buf;
}
{
static wxChar buf[20];
- wxSprintf (buf, T("%ld"), number);
+ wxSprintf (buf, wxT("%ld"), number);
return buf;
}
// Array used in DecToHex conversion routine.
-static wxChar hexArray[] = T("0123456789ABCDEF");
+static wxChar hexArray[] = wxT("0123456789ABCDEF");
// Convert 2-digit hex number to decimal
int wxHexToDec(const wxString& buf)
{
int firstDigit, secondDigit;
- if (buf.GetChar(0) >= T('A'))
- firstDigit = buf.GetChar(0) - T('A') + 10;
+ if (buf.GetChar(0) >= wxT('A'))
+ firstDigit = buf.GetChar(0) - wxT('A') + 10;
else
- firstDigit = buf.GetChar(0) - T('0');
+ firstDigit = buf.GetChar(0) - wxT('0');
- if (buf.GetChar(1) >= T('A'))
- secondDigit = buf.GetChar(1) - T('A') + 10;
+ if (buf.GetChar(1) >= wxT('A'))
+ secondDigit = buf.GetChar(1) - wxT('A') + 10;
else
- secondDigit = buf.GetChar(1) - T('0');
+ secondDigit = buf.GetChar(1) - wxT('0');
return firstDigit * 16 + secondDigit;
}
while (*in)
{
- if (*in == T('&'))
+ if (*in == wxT('&'))
{
// Check && -> &, &x -> x
- if (*++in == T('&'))
+ if (*++in == wxT('&'))
*out++ = *in++;
}
- else if (*in == T('\t'))
+ else if (*in == wxT('\t'))
{
// Remove all stuff after \t in X mode, and let the stuff as is
// in Windows mode.
*out++ = *in++;
} // while
- *out = T('\0');
+ *out = wxT('\0');
return tmpOut;
}
return FALSE;
wxStrncpy(address, email, maxSize - 1);
- address[maxSize - 1] = T('\0');
+ address[maxSize - 1] = wxT('\0');
return TRUE;
}
if ( !!user )
{
wxString email(user);
- email << T('@') << host;
+ email << wxT('@') << host;
}
}
#endif
// wxUSE_VALIDATORS
-
\ No newline at end of file
virtual bool Read(istream& str);
#endif
virtual bool Read(wxString& str);
- virtual wxString GetType() const { return T("list"); };
+ virtual wxString GetType() const { return wxT("list"); };
void Clear();
void wxVariantDataList::Copy(wxVariantData& data)
{
- wxASSERT_MSG( (data.GetType() == T("list")), T("wxVariantDataList::Copy: Can't copy to this type of data") );
+ wxASSERT_MSG( (data.GetType() == wxT("list")), wxT("wxVariantDataList::Copy: Can't copy to this type of data") );
wxVariantDataList& listData = (wxVariantDataList&) data;
bool wxVariantDataList::Eq(wxVariantData& data) const
{
- wxASSERT_MSG( (data.GetType() == T("list")), T("wxVariantDataList::Eq: argument mismatch") );
+ wxASSERT_MSG( (data.GetType() == wxT("list")), wxT("wxVariantDataList::Eq: argument mismatch") );
wxVariantDataList& listData = (wxVariantDataList&) data;
wxNode* node1 = m_value.First();
bool wxVariantDataList::Write(wxString& str) const
{
- str = T("");
+ str = wxT("");
wxNode* node = m_value.First();
while (node)
{
wxVariant* var = (wxVariant*) node->Data();
if (node != m_value.First())
- str += T(" ");
+ str += wxT(" ");
wxString str1;
str += var->MakeString();
node = node->Next();
#if wxUSE_STD_IOSTREAM
bool wxVariantDataList::Read(istream& WXUNUSED(str))
{
- wxFAIL_MSG(T("Unimplemented"));
+ wxFAIL_MSG(wxT("Unimplemented"));
// TODO
return FALSE;
}
bool wxVariantDataList::Read(wxString& WXUNUSED(str))
{
- wxFAIL_MSG(T("Unimplemented"));
+ wxFAIL_MSG(wxT("Unimplemented"));
// TODO
return FALSE;
}
virtual bool Read(istream& str);
#endif
virtual bool Read(wxString& str);
- virtual wxString GetType() const { return T("stringlist"); };
+ virtual wxString GetType() const { return wxT("stringlist"); };
protected:
wxStringList m_value;
void wxVariantDataStringList::Copy(wxVariantData& data)
{
- wxASSERT_MSG( (data.GetType() == T("stringlist")), T("wxVariantDataStringList::Copy: Can't copy to this type of data") );
+ wxASSERT_MSG( (data.GetType() == wxT("stringlist")), wxT("wxVariantDataStringList::Copy: Can't copy to this type of data") );
wxVariantDataStringList& listData = (wxVariantDataStringList&) data;
bool wxVariantDataStringList::Eq(wxVariantData& data) const
{
- wxASSERT_MSG( (data.GetType() == T("stringlist")), T("wxVariantDataStringList::Eq: argument mismatch") );
+ wxASSERT_MSG( (data.GetType() == wxT("stringlist")), wxT("wxVariantDataStringList::Eq: argument mismatch") );
wxVariantDataStringList& listData = (wxVariantDataStringList&) data;
wxNode* node1 = m_value.First();
bool wxVariantDataStringList::Write(wxString& str) const
{
- str = T("");
+ str = wxT("");
wxNode* node = m_value.First();
while (node)
{
wxChar* s = (wxChar*) node->Data();
if (node != m_value.First())
- str += T(" ");
+ str += wxT(" ");
str += s;
node = node->Next();
}
#if wxUSE_STD_IOSTREAM
bool wxVariantDataStringList::Read(istream& WXUNUSED(str))
{
- wxFAIL_MSG(T("Unimplemented"));
+ wxFAIL_MSG(wxT("Unimplemented"));
// TODO
return FALSE;
}
bool wxVariantDataStringList::Read(wxString& WXUNUSED(str))
{
- wxFAIL_MSG(T("Unimplemented"));
+ wxFAIL_MSG(wxT("Unimplemented"));
// TODO
return FALSE;
}
virtual bool Write(wxOutputStream &str) const;
#endif // wxUSE_STREAMS
- virtual wxString GetType() const { return T("long"); };
+ virtual wxString GetType() const { return wxT("long"); };
protected:
long m_value;
void wxVariantDataLong::Copy(wxVariantData& data)
{
- wxASSERT_MSG( (data.GetType() == T("long")), T("wxVariantDataLong::Copy: Can't copy to this type of data") );
+ wxASSERT_MSG( (data.GetType() == wxT("long")), wxT("wxVariantDataLong::Copy: Can't copy to this type of data") );
wxVariantDataLong& otherData = (wxVariantDataLong&) data;
bool wxVariantDataLong::Eq(wxVariantData& data) const
{
- wxASSERT_MSG( (data.GetType() == T("long")), T("wxVariantDataLong::Eq: argument mismatch") );
+ wxASSERT_MSG( (data.GetType() == wxT("long")), wxT("wxVariantDataLong::Eq: argument mismatch") );
wxVariantDataLong& otherData = (wxVariantDataLong&) data;
bool wxVariantDataLong::Write(wxString& str) const
{
- str.Printf(T("%ld"), m_value);
+ str.Printf(wxT("%ld"), m_value);
return TRUE;
}
virtual bool Read(wxInputStream& str);
virtual bool Write(wxOutputStream &str) const;
#endif // wxUSE_STREAMS
- virtual wxString GetType() const { return T("double"); };
+ virtual wxString GetType() const { return wxT("double"); };
protected:
double m_value;
void wxVariantDataReal::Copy(wxVariantData& data)
{
- wxASSERT_MSG( (data.GetType() == T("double")), T("wxVariantDataReal::Copy: Can't copy to this type of data") );
+ wxASSERT_MSG( (data.GetType() == wxT("double")), wxT("wxVariantDataReal::Copy: Can't copy to this type of data") );
wxVariantDataReal& otherData = (wxVariantDataReal&) data;
bool wxVariantDataReal::Eq(wxVariantData& data) const
{
- wxASSERT_MSG( (data.GetType() == T("double")), T("wxVariantDataReal::Eq: argument mismatch") );
+ wxASSERT_MSG( (data.GetType() == wxT("double")), wxT("wxVariantDataReal::Eq: argument mismatch") );
wxVariantDataReal& otherData = (wxVariantDataReal&) data;
bool wxVariantDataReal::Write(wxString& str) const
{
- str.Printf(T("%.4f"), m_value);
+ str.Printf(wxT("%.4f"), m_value);
return TRUE;
}
virtual bool Read(wxInputStream& str);
virtual bool Write(wxOutputStream& str) const;
#endif // wxUSE_STREAMS
- virtual wxString GetType() const { return T("bool"); };
+ virtual wxString GetType() const { return wxT("bool"); };
protected:
bool m_value;
void wxVariantDataBool::Copy(wxVariantData& data)
{
- wxASSERT_MSG( (data.GetType() == T("bool")), T("wxVariantDataBool::Copy: Can't copy to this type of data") );
+ wxASSERT_MSG( (data.GetType() == wxT("bool")), wxT("wxVariantDataBool::Copy: Can't copy to this type of data") );
wxVariantDataBool& otherData = (wxVariantDataBool&) data;
bool wxVariantDataBool::Eq(wxVariantData& data) const
{
- wxASSERT_MSG( (data.GetType() == T("bool")), T("wxVariantDataBool::Eq: argument mismatch") );
+ wxASSERT_MSG( (data.GetType() == wxT("bool")), wxT("wxVariantDataBool::Eq: argument mismatch") );
wxVariantDataBool& otherData = (wxVariantDataBool&) data;
bool wxVariantDataBool::Write(wxString& str) const
{
- str.Printf(T("%d"), (int) m_value);
+ str.Printf(wxT("%d"), (int) m_value);
return TRUE;
}
#if wxUSE_STD_IOSTREAM
bool wxVariantDataBool::Read(istream& WXUNUSED(str))
{
- wxFAIL_MSG(T("Unimplemented"));
+ wxFAIL_MSG(wxT("Unimplemented"));
// str >> (long) m_value;
return FALSE;
}
virtual bool Read(wxInputStream& str);
virtual bool Write(wxOutputStream& str) const;
#endif // wxUSE_STREAMS
- virtual wxString GetType() const { return T("char"); };
+ virtual wxString GetType() const { return wxT("char"); };
protected:
char m_value;
void wxVariantDataChar::Copy(wxVariantData& data)
{
- wxASSERT_MSG( (data.GetType() == T("char")), T("wxVariantDataChar::Copy: Can't copy to this type of data") );
+ wxASSERT_MSG( (data.GetType() == wxT("char")), wxT("wxVariantDataChar::Copy: Can't copy to this type of data") );
wxVariantDataChar& otherData = (wxVariantDataChar&) data;
bool wxVariantDataChar::Eq(wxVariantData& data) const
{
- wxASSERT_MSG( (data.GetType() == T("char")), T("wxVariantDataChar::Eq: argument mismatch") );
+ wxASSERT_MSG( (data.GetType() == wxT("char")), wxT("wxVariantDataChar::Eq: argument mismatch") );
wxVariantDataChar& otherData = (wxVariantDataChar&) data;
bool wxVariantDataChar::Write(wxString& str) const
{
- str.Printf(T("%c"), m_value);
+ str.Printf(wxT("%c"), m_value);
return TRUE;
}
#if wxUSE_STD_IOSTREAM
bool wxVariantDataChar::Read(istream& WXUNUSED(str))
{
- wxFAIL_MSG(T("Unimplemented"));
+ wxFAIL_MSG(wxT("Unimplemented"));
// str >> m_value;
return FALSE;
}
virtual bool Read(wxInputStream& str);
virtual bool Write(wxOutputStream& str) const;
#endif // wxUSE_STREAMS
- virtual wxString GetType() const { return T("string"); };
+ virtual wxString GetType() const { return wxT("string"); };
protected:
wxString m_value;
void wxVariantDataString::Copy(wxVariantData& data)
{
- wxASSERT_MSG( (data.GetType() == T("string")), T("wxVariantDataString::Copy: Can't copy to this type of data") );
+ wxASSERT_MSG( (data.GetType() == wxT("string")), wxT("wxVariantDataString::Copy: Can't copy to this type of data") );
wxVariantDataString& otherData = (wxVariantDataString&) data;
bool wxVariantDataString::Eq(wxVariantData& data) const
{
- wxASSERT_MSG( (data.GetType() == T("string")), T("wxVariantDataString::Eq: argument mismatch") );
+ wxASSERT_MSG( (data.GetType() == wxT("string")), wxT("wxVariantDataString::Eq: argument mismatch") );
wxVariantDataString& otherData = (wxVariantDataString&) data;
virtual bool Read(istream& str);
#endif
virtual bool Read(wxString& str);
- virtual wxString GetType() const { return T("time"); };
+ virtual wxString GetType() const { return wxT("time"); };
virtual wxVariantData* Clone() { return new wxVariantDataTime; }
protected:
void wxVariantDataTime::Copy(wxVariantData& data)
{
- wxASSERT_MSG( (data.GetType() == T("time")), T("wxVariantDataTime::Copy: Can't copy to this type of data") );
+ wxASSERT_MSG( (data.GetType() == wxT("time")), wxT("wxVariantDataTime::Copy: Can't copy to this type of data") );
wxVariantDataTime& otherData = (wxVariantDataTime&) data;
bool wxVariantDataTime::Eq(wxVariantData& data) const
{
- wxASSERT_MSG( (data.GetType() == T("time")), T("wxVariantDataTime::Eq: argument mismatch") );
+ wxASSERT_MSG( (data.GetType() == wxT("time")), wxT("wxVariantDataTime::Eq: argument mismatch") );
wxVariantDataTime& otherData = (wxVariantDataTime&) data;
virtual bool Read(istream& str);
#endif
virtual bool Read(wxString& str);
- virtual wxString GetType() const { return T("date"); };
+ virtual wxString GetType() const { return wxT("date"); };
virtual wxVariantData* Clone() { return new wxVariantDataDate; }
protected:
void wxVariantDataDate::Copy(wxVariantData& data)
{
- wxASSERT_MSG( (data.GetType() == T("date")), T("wxVariantDataDate::Copy: Can't copy to this type of data") );
+ wxASSERT_MSG( (data.GetType() == wxT("date")), wxT("wxVariantDataDate::Copy: Can't copy to this type of data") );
wxVariantDataDate& otherData = (wxVariantDataDate&) data;
bool wxVariantDataDate::Eq(wxVariantData& data) const
{
- wxASSERT_MSG( (data.GetType() == T("date")), T("wxVariantDataDate::Eq: argument mismatch") );
+ wxASSERT_MSG( (data.GetType() == wxT("date")), wxT("wxVariantDataDate::Eq: argument mismatch") );
wxVariantDataDate& otherData = (wxVariantDataDate&) data;
virtual bool Read(istream& str);
#endif
virtual bool Read(wxString& str);
- virtual wxString GetType() const { return T("void*"); };
+ virtual wxString GetType() const { return wxT("void*"); };
virtual wxVariantData* Clone() { return new wxVariantDataVoidPtr; }
protected:
void wxVariantDataVoidPtr::Copy(wxVariantData& data)
{
- wxASSERT_MSG( (data.GetType() == T("void*")), T("wxVariantDataVoidPtr::Copy: Can't copy to this type of data") );
+ wxASSERT_MSG( (data.GetType() == wxT("void*")), wxT("wxVariantDataVoidPtr::Copy: Can't copy to this type of data") );
wxVariantDataVoidPtr& otherData = (wxVariantDataVoidPtr&) data;
bool wxVariantDataVoidPtr::Eq(wxVariantData& data) const
{
- wxASSERT_MSG( (data.GetType() == T("void*")), T("wxVariantDataVoidPtr::Eq: argument mismatch") );
+ wxASSERT_MSG( (data.GetType() == wxT("void*")), wxT("wxVariantDataVoidPtr::Eq: argument mismatch") );
wxVariantDataVoidPtr& otherData = (wxVariantDataVoidPtr&) data;
bool wxVariantDataVoidPtr::Write(wxString& str) const
{
- str.Printf(T("%ld"), (long) m_value);
+ str.Printf(wxT("%ld"), (long) m_value);
return TRUE;
}
void wxVariant::operator= (double value)
{
- if (GetType() == T("double"))
+ if (GetType() == wxT("double"))
{
((wxVariantDataReal*)GetData())->SetValue(value);
}
void wxVariant::operator= (long value)
{
- if (GetType() == T("long"))
+ if (GetType() == wxT("long"))
{
((wxVariantDataLong*)GetData())->SetValue(value);
}
void wxVariant::operator= (char value)
{
- if (GetType() == T("char"))
+ if (GetType() == wxT("char"))
{
((wxVariantDataChar*)GetData())->SetValue(value);
}
void wxVariant::operator= (bool value)
{
- if (GetType() == T("bool"))
+ if (GetType() == wxT("bool"))
{
((wxVariantDataBool*)GetData())->SetValue(value);
}
void wxVariant::operator= (const wxString& value)
{
- if (GetType() == T("string"))
+ if (GetType() == wxT("string"))
{
((wxVariantDataString*)GetData())->SetValue(value);
}
void wxVariant::operator= (const wxChar* value)
{
- if (GetType() == T("string"))
+ if (GetType() == wxT("string"))
{
((wxVariantDataString*)GetData())->SetValue(wxString(value));
}
bool wxVariant::operator== (const wxStringList& value) const
{
- wxASSERT_MSG( (GetType() == T("stringlist")), T("Invalid type for == operator") );
+ wxASSERT_MSG( (GetType() == wxT("stringlist")), wxT("Invalid type for == operator") );
wxVariantDataStringList other(value);
return (m_data->Eq(other));
void wxVariant::operator= (const wxStringList& value)
{
- if (GetType() == T("stringlist"))
+ if (GetType() == wxT("stringlist"))
{
((wxVariantDataStringList*)GetData())->SetValue(value);
}
bool wxVariant::operator== (const wxList& value) const
{
- wxASSERT_MSG( (GetType() == T("list")), T("Invalid type for == operator") );
+ wxASSERT_MSG( (GetType() == wxT("list")), wxT("Invalid type for == operator") );
wxVariantDataList other(value);
return (m_data->Eq(other));
void wxVariant::operator= (const wxList& value)
{
- if (GetType() == T("list"))
+ if (GetType() == wxT("list"))
{
((wxVariantDataList*)GetData())->SetValue(value);
}
void wxVariant::operator= (const wxTime& value)
{
- if (GetType() == T("time"))
+ if (GetType() == wxT("time"))
{
((wxVariantDataTime*)GetData())->SetValue(value);
}
void wxVariant::operator= (const wxDate& value)
{
- if (GetType() == T("date"))
+ if (GetType() == wxT("date"))
{
((wxVariantDataTime*)GetData())->SetValue(value);
}
void wxVariant::operator= (void* value)
{
- if (GetType() == T("void*"))
+ if (GetType() == wxT("void*"))
{
((wxVariantDataVoidPtr*)GetData())->SetValue(value);
}
// Treat a list variant as an array
wxVariant wxVariant::operator[] (size_t idx) const
{
- wxASSERT_MSG( (GetType() == T("list") || GetType() == T("stringlist")), T("Invalid type for array operator") );
+ wxASSERT_MSG( (GetType() == wxT("list") || GetType() == wxT("stringlist")), wxT("Invalid type for array operator") );
- if (GetType() == T("list"))
+ if (GetType() == wxT("list"))
{
wxVariantDataList* data = (wxVariantDataList*) m_data;
- wxASSERT_MSG( (idx < (size_t) data->GetValue().Number()), T("Invalid index for array") );
+ wxASSERT_MSG( (idx < (size_t) data->GetValue().Number()), wxT("Invalid index for array") );
return * (wxVariant*) (data->GetValue().Nth(idx)->Data());
}
- else if (GetType() == T("stringlist"))
+ else if (GetType() == wxT("stringlist"))
{
wxVariantDataStringList* data = (wxVariantDataStringList*) m_data;
- wxASSERT_MSG( (idx < (size_t) data->GetValue().Number()), T("Invalid index for array") );
+ wxASSERT_MSG( (idx < (size_t) data->GetValue().Number()), wxT("Invalid index for array") );
wxVariant variant( wxString( (wxChar*) (data->GetValue().Nth(idx)->Data()) ));
return variant;
// We can't return a reference to a variant for a string list, since the string
// is actually stored as a char*, not a variant.
- wxASSERT_MSG( (GetType() == T("list")), T("Invalid type for array operator") );
+ wxASSERT_MSG( (GetType() == wxT("list")), wxT("Invalid type for array operator") );
wxVariantDataList* data = (wxVariantDataList*) m_data;
- wxASSERT_MSG( (idx < (size_t) data->GetValue().Number()), T("Invalid index for array") );
+ wxASSERT_MSG( (idx < (size_t) data->GetValue().Number()), wxT("Invalid index for array") );
return * (wxVariant*) (data->GetValue().Nth(idx)->Data());
}
// Return the number of elements in a list
int wxVariant::GetCount() const
{
- wxASSERT_MSG( (GetType() == T("list") || GetType() == T("stringlist")), T("Invalid type for GetCount()") );
+ wxASSERT_MSG( (GetType() == wxT("list") || GetType() == wxT("stringlist")), wxT("Invalid type for GetCount()") );
- if (GetType() == T("list"))
+ if (GetType() == wxT("list"))
{
wxVariantDataList* data = (wxVariantDataList*) m_data;
return data->GetValue().Number();
}
- else if (GetType() == T("stringlist"))
+ else if (GetType() == wxT("stringlist"))
{
wxVariantDataStringList* data = (wxVariantDataStringList*) m_data;
return data->GetValue().Number();
if (GetData()->Write(str))
return str;
}
- return wxString(T(""));
+ return wxString(wxT(""));
}
// Accessors
wxString wxVariant::GetType() const
{
if (IsNull())
- return wxString(T("null"));
+ return wxString(wxT("null"));
else
return m_data->GetType();
}
return value;
else
{
- wxFAIL_MSG(T("Could not convert to a real number"));
+ wxFAIL_MSG(wxT("Could not convert to a real number"));
return 0.0;
}
}
return value;
else
{
- wxFAIL_MSG(T("Could not convert to an integer"));
+ wxFAIL_MSG(wxT("Could not convert to an integer"));
return 0;
}
}
return value;
else
{
- wxFAIL_MSG(T("Could not convert to a char"));
+ wxFAIL_MSG(wxT("Could not convert to a char"));
return 0;
}
}
return value;
else
{
- wxFAIL_MSG(T("Could not convert to a bool"));
+ wxFAIL_MSG(wxT("Could not convert to a bool"));
return 0;
}
}
return value;
else
{
- wxFAIL_MSG(T("Could not convert to a string"));
+ wxFAIL_MSG(wxT("Could not convert to a string"));
return wxString("");
}
}
return value;
else
{
- wxFAIL_MSG(T("Could not convert to a time"));
+ wxFAIL_MSG(wxT("Could not convert to a time"));
return wxTime();
}
}
return value;
else
{
- wxFAIL_MSG(T("Could not convert to a date"));
+ wxFAIL_MSG(wxT("Could not convert to a date"));
return wxDate();
}
}
void* wxVariant::GetVoidPtr() const
{
- wxASSERT( (GetType() == T("void*")) );
+ wxASSERT( (GetType() == wxT("void*")) );
return (void*) ((wxVariantDataVoidPtr*) m_data)->GetValue();
}
wxList& wxVariant::GetList() const
{
- wxASSERT( (GetType() == T("list")) );
+ wxASSERT( (GetType() == wxT("list")) );
return (wxList&) ((wxVariantDataList*) m_data)->GetValue();
}
wxStringList& wxVariant::GetStringList() const
{
- wxASSERT( (GetType() == T("stringlist")) );
+ wxASSERT( (GetType() == wxT("stringlist")) );
return (wxStringList&) ((wxVariantDataStringList*) m_data)->GetValue();
}
{
wxList& list = GetList();
- wxASSERT_MSG( (item < list.Number()), T("Invalid index to Delete") );
+ wxASSERT_MSG( (item < list.Number()), wxT("Invalid index to Delete") );
wxNode* node = list.Nth(item);
wxVariant* variant = (wxVariant*) node->Data();
delete variant;
// Clear list
void wxVariant::ClearList()
{
- if (!IsNull() && (GetType() == T("list")))
+ if (!IsNull() && (GetType() == wxT("list")))
{
((wxVariantDataList*) m_data)->Clear();
}
else
{
- if (GetType() != T("list"))
+ if (GetType() != wxT("list"))
{
delete m_data;
m_data = NULL;
bool wxVariant::Convert(long* value) const
{
wxString type(GetType());
- if (type == T("double"))
+ if (type == wxT("double"))
*value = (long) (((wxVariantDataReal*)GetData())->GetValue());
- else if (type == T("long"))
+ else if (type == wxT("long"))
*value = ((wxVariantDataLong*)GetData())->GetValue();
#ifdef HAVE_BOOL
- else if (type == T("bool"))
+ else if (type == wxT("bool"))
*value = (long) (((wxVariantDataBool*)GetData())->GetValue());
#endif
- else if (type == T("string"))
+ else if (type == wxT("string"))
*value = wxAtol((const wxChar*) ((wxVariantDataString*)GetData())->GetValue());
else
return FALSE;
bool wxVariant::Convert(bool* value) const
{
wxString type(GetType());
- if (type == T("double"))
+ if (type == wxT("double"))
*value = ((int) (((wxVariantDataReal*)GetData())->GetValue()) != 0);
- else if (type == T("long"))
+ else if (type == wxT("long"))
*value = (((wxVariantDataLong*)GetData())->GetValue() != 0);
#ifdef HAVE_BOOL
- else if (type == T("bool"))
+ else if (type == wxT("bool"))
*value = ((wxVariantDataBool*)GetData())->GetValue();
#endif
- else if (type == T("string"))
+ else if (type == wxT("string"))
{
wxString val(((wxVariantDataString*)GetData())->GetValue());
val.MakeLower();
- if (val == T("true") || val == T("yes"))
+ if (val == wxT("true") || val == wxT("yes"))
*value = TRUE;
- else if (val == T("false") || val == T("no"))
+ else if (val == wxT("false") || val == wxT("no"))
*value = FALSE;
else
return FALSE;
bool wxVariant::Convert(double* value) const
{
wxString type(GetType());
- if (type == T("double"))
+ if (type == wxT("double"))
*value = ((wxVariantDataReal*)GetData())->GetValue();
- else if (type == T("long"))
+ else if (type == wxT("long"))
*value = (double) (((wxVariantDataLong*)GetData())->GetValue());
#ifdef HAVE_BOOL
- else if (type == T("bool"))
+ else if (type == wxT("bool"))
*value = (double) (((wxVariantDataBool*)GetData())->GetValue());
#endif
- else if (type == T("string"))
+ else if (type == wxT("string"))
*value = (double) wxAtof((const wxChar*) ((wxVariantDataString*)GetData())->GetValue());
else
return FALSE;
bool wxVariant::Convert(char* value) const
{
wxString type(GetType());
- if (type == T("char"))
+ if (type == wxT("char"))
*value = ((wxVariantDataChar*)GetData())->GetValue();
- else if (type == T("long"))
+ else if (type == wxT("long"))
*value = (char) (((wxVariantDataLong*)GetData())->GetValue());
#ifdef HAVE_BOOL
- else if (type == T("bool"))
+ else if (type == wxT("bool"))
*value = (char) (((wxVariantDataBool*)GetData())->GetValue());
#endif
else
bool wxVariant::Convert(wxTime* value) const
{
wxString type(GetType());
- if (type == T("time"))
+ if (type == wxT("time"))
*value = ((wxVariantDataTime*)GetData())->GetValue();
- else if (type == T("date"))
+ else if (type == wxT("date"))
*value = wxTime(((wxVariantDataDate*)GetData())->GetValue());
else
return FALSE;
bool wxVariant::Convert(wxDate* value) const
{
wxString type(GetType());
- if (type == T("date"))
+ if (type == wxT("date"))
*value = ((wxVariantDataDate*)GetData())->GetValue();
else
return FALSE;
// m_isWindow is set to TRUE in wxWindowBase::Init() as well as many other
// member variables - check that it has been called (will catch the case
// when a new ctor is added which doesn't call InitWindow)
- wxASSERT_MSG( m_isWindow, T("Init() must have been called before!") );
+ wxASSERT_MSG( m_isWindow, wxT("Init() must have been called before!") );
// generate a new id if the user doesn't care about it
m_windowId = id == -1 ? NewControlId() : id;
// we weren't a dialog class
wxTopLevelWindows.DeleteObject(this);
- wxASSERT_MSG( GetChildren().GetCount() == 0, T("children not destroyed") );
+ wxASSERT_MSG( GetChildren().GetCount() == 0, wxT("children not destroyed") );
// make sure that there are no dangling pointers left pointing to us
wxPanel *panel = wxDynamicCast(GetParent(), wxPanel);
wxWindow *child = node->GetData();
- wxASSERT_MSG( child, T("children list contains empty nodes") );
+ wxASSERT_MSG( child, wxT("children list contains empty nodes") );
delete child;
wxASSERT_MSG( !GetChildren().Find(child),
- T("child didn't remove itself using RemoveChild()") );
+ wxT("child didn't remove itself using RemoveChild()") );
}
return TRUE;
if ( !(direction & wxCENTRE_ON_SCREEN) || wxDynamicCast(this, wxControl) )
{
// theo nly chance to get this is to have a wxControl without parent
- wxCHECK_RET( parent, T("a control must have a parent") );
+ wxCHECK_RET( parent, wxT("a control must have a parent") );
// adjust to the parents client area origin
wxPoint posParent = parent->ClientToScreen(wxPoint(0, 0));
void wxWindowBase::AddChild(wxWindowBase *child)
{
- wxCHECK_RET( child, T("can't add a NULL child") );
+ wxCHECK_RET( child, wxT("can't add a NULL child") );
GetChildren().Append(child);
child->SetParent(this);
void wxWindowBase::RemoveChild(wxWindowBase *child)
{
- wxCHECK_RET( child, T("can't remove a NULL child") );
+ wxCHECK_RET( child, wxT("can't remove a NULL child") );
GetChildren().DeleteObject(child);
child->SetParent((wxWindow *)NULL);
if ( m_caret )
{
wxASSERT_MSG( m_caret->GetWindow() == this,
- T("caret should be created associated to this window") );
+ wxT("caret should be created associated to this window") );
}
}
#endif // wxUSE_CARET
wxChar *windowClass = GetClassInfo()->GetClassName();
wxString winName;
- if ( GetName() == T("") )
- winName = T("unnamed");
+ if ( GetName() == wxT("") )
+ winName = wxT("unnamed");
else
winName = GetName();
- wxLogDebug( T("Constraint(s) not satisfied for window of type %s, name %s:\n"),
+ wxLogDebug( wxT("Constraint(s) not satisfied for window of type %s, name %s:\n"),
(const wxChar *)windowClass,
(const wxChar *)winName);
- if ( !constr->left.GetDone()) wxLogDebug( T(" unsatisfied 'left' constraint.\n") );
- if ( !constr->right.GetDone()) wxLogDebug( T(" unsatisfied 'right' constraint.\n") );
- if ( !constr->width.GetDone()) wxLogDebug( T(" unsatisfied 'width' constraint.\n") );
- if ( !constr->height.GetDone()) wxLogDebug( T(" unsatisfied 'height' constraint.\n") );
- wxLogDebug( T("Please check constraints: try adding AsIs() constraints.\n") );
+ if ( !constr->left.GetDone()) wxLogDebug( wxT(" unsatisfied 'left' constraint.\n") );
+ if ( !constr->right.GetDone()) wxLogDebug( wxT(" unsatisfied 'right' constraint.\n") );
+ if ( !constr->width.GetDone()) wxLogDebug( wxT(" unsatisfied 'width' constraint.\n") );
+ if ( !constr->height.GetDone()) wxLogDebug( wxT(" unsatisfied 'height' constraint.\n") );
+ wxLogDebug( wxT("Please check constraints: try adding AsIs() constraints.\n") );
}
if ( recurse )
void wxWindowBase::DoSetClientObject( wxClientData *data )
{
wxASSERT_MSG( m_clientDataType != ClientData_Void,
- T("can't have both object and void client data") );
+ wxT("can't have both object and void client data") );
if ( m_clientObject )
delete m_clientObject;
wxClientData *wxWindowBase::DoGetClientObject() const
{
wxASSERT_MSG( m_clientDataType == ClientData_Object,
- T("this window doesn't have object client data") );
+ wxT("this window doesn't have object client data") );
return m_clientObject;
}
void wxWindowBase::DoSetClientData( void *data )
{
wxASSERT_MSG( m_clientDataType != ClientData_Object,
- T("can't have both object and void client data") );
+ wxT("can't have both object and void client data") );
m_clientData = data;
m_clientDataType = ClientData_Void;
void *wxWindowBase::DoGetClientData() const
{
wxASSERT_MSG( m_clientDataType == ClientData_Void,
- T("this window doesn't have void client data") );
+ wxT("this window doesn't have void client data") );
return m_clientData;
}
{
if (buf) {
if (!n || !*psz) {
- if (n) *buf = T('\0');
+ if (n) *buf = wxT('\0');
return 0;
}
return mbstowcs(buf, psz, n);
psz = wxStrpbrk(psz, delim);
if (!psz) *save_ptr = (wxChar*)NULL;
else {
- *psz = T('\0');
+ *psz = wxT('\0');
*save_ptr = psz + 1;
}
return ret;
// FIXME: only correct for C locale
while (wxIsspace(*nptr)) nptr++;
- if (*nptr == T('+') || *nptr == T('-')) nptr++;
+ if (*nptr == wxT('+') || *nptr == wxT('-')) nptr++;
while (wxIsdigit(*nptr)) nptr++;
- if (*nptr == T('.')) {
+ if (*nptr == wxT('.')) {
nptr++;
while (wxIsdigit(*nptr)) nptr++;
}
- if (*nptr == T('E') || *nptr == T('e')) {
+ if (*nptr == wxT('E') || *nptr == wxT('e')) {
nptr++;
- if (*nptr == T('+') || *nptr == T('-')) nptr++;
+ if (*nptr == wxT('+') || *nptr == wxT('-')) nptr++;
while (wxIsdigit(*nptr)) nptr++;
}
// FIXME: only correct for C locale
while (wxIsspace(*nptr)) nptr++;
- if (*nptr == T('+') || *nptr == T('-')) nptr++;
+ if (*nptr == wxT('+') || *nptr == wxT('-')) nptr++;
if (((base == 0) || (base == 16)) &&
- (nptr[0] == T('0') && nptr[1] == T('x'))) {
+ (nptr[0] == wxT('0') && nptr[1] == wxT('x'))) {
nptr += 2;
base = 16;
}
- else if ((base == 0) && (nptr[0] == T('0'))) base = 8;
+ else if ((base == 0) && (nptr[0] == wxT('0'))) base = 8;
else if (base == 0) base = 10;
- while ((wxIsdigit(*nptr) && (*nptr - T('0') < base)) ||
- (wxIsalpha(*nptr) && (wxToupper(*nptr) - T('A') + 10 < base))) nptr++;
+ while ((wxIsdigit(*nptr) && (*nptr - wxT('0') < base)) ||
+ (wxIsalpha(*nptr) && (wxToupper(*nptr) - wxT('A') + 10 < base))) nptr++;
wxString data(nptr, nptr-start);
wxWX2MBbuf dat = data.mb_str(wxConvLibc);
wxString wxExpr::Functor(void) const // Use only for a clause
{
if ((type != wxExprList) || !value.first)
- return wxString(T(""));
+ return wxString(wxT(""));
if (value.first->type == wxExprWord)
return wxString(value.first->value.word);
else
- return wxString(T(""));
+ return wxString(wxT(""));
}
bool wxExpr::IsFunctor(const wxString& f) const // Use only for a clause
// DeleteAttributeValue(attribute);
wxExpr *patt = new wxExpr(wxExprWord, attribute);
- wxExpr *pequals = new wxExpr(wxExprWord, T("="));
+ wxExpr *pequals = new wxExpr(wxExprWord, wxT("="));
wxExpr *listExpr = new wxExpr(wxExprList);
wxExpr *patt = new wxExpr(wxExprWord, attribute);
wxExpr *pval = new wxExpr(val);
- wxExpr *pequals = new wxExpr(wxExprWord, T("="));
+ wxExpr *pequals = new wxExpr(wxExprWord, wxT("="));
wxExpr *listExpr = new wxExpr(wxExprList);
// DeleteAttributeValue(attribute);
wxExpr *patt = new wxExpr(wxExprWord, attribute);
wxExpr *pval = new wxExpr(val);
- wxExpr *pequals = new wxExpr(wxExprWord, T("="));
+ wxExpr *pequals = new wxExpr(wxExprWord, wxT("="));
wxExpr *listExpr = new wxExpr(wxExprList);
wxExpr *patt = new wxExpr(wxExprWord, attribute);
wxExpr *pval = new wxExpr(wxExprString, val);
- wxExpr *pequals = new wxExpr(wxExprWord, T("="));
+ wxExpr *pequals = new wxExpr(wxExprWord, wxT("="));
wxExpr *listExpr = new wxExpr(wxExprList);
wxExpr *patt = new wxExpr(wxExprWord, attribute);
wxExpr *pval = new wxExpr(wxExprWord, val);
- wxExpr *pequals = new wxExpr(wxExprWord, T("="));
+ wxExpr *pequals = new wxExpr(wxExprWord, wxT("="));
wxExpr *listExpr = new wxExpr(wxExprList);
wxExpr *patt = new wxExpr(wxExprWord, attribute);
wxExpr *pval = new wxExpr(val);
- wxExpr *pequals = new wxExpr(wxExprWord, T("="));
+ wxExpr *pequals = new wxExpr(wxExprWord, wxT("="));
wxExpr *listExpr = new wxExpr(wxExprList);
// Now make an (=, Att, Value) triple
wxExpr *patt = new wxExpr(wxExprWord, attribute);
- wxExpr *pequals = new wxExpr(wxExprWord, T("="));
+ wxExpr *pequals = new wxExpr(wxExprWord, wxT("="));
wxExpr *listExpr2 = new wxExpr(wxExprList);
{
wxExpr *expr = value.first;
- if ((expr->Type() == wxExprWord) && (wxStrcmp(expr->WordValue(), T("=")) == 0))
+ if ((expr->Type() == wxExprWord) && (wxStrcmp(expr->WordValue(), wxT("=")) == 0))
{
wxExpr *arg1 = expr->next;
wxExpr *arg2 = arg1->next;
t = s;
for(i=1; i<len; i++) // 1 since we want to skip leading quote
{
- if (sbuf[i] == T('\\') && sbuf[i+1] == T('"'))
+ if (sbuf[i] == wxT('\\') && sbuf[i+1] == wxT('"'))
{
- *t++ = T('"');
+ *t++ = wxT('"');
i ++;
}
- else if (sbuf[i] == T('\\') && sbuf[i+1] == T('\\'))
+ else if (sbuf[i] == wxT('\\') && sbuf[i+1] == wxT('\\'))
{
- *t++ = T('\\');
+ *t++ = wxT('\\');
i ++;
}
else
*t++ = sbuf[i];
}
- *t = T('\0');
+ *t = wxT('\0');
wxExpr *x = new wxExpr(wxExprString, s, FALSE);
return (char *)x;
err = deflate(m_deflate, Z_FINISH);
if (err != Z_STREAM_END)
{
- wxLogDebug( T("wxZlibOutputStream: an error occured while closing the stream.\n") );
+ wxLogDebug( wxT("wxZlibOutputStream: an error occured while closing the stream.\n") );
return;
}
if ( dialog.ShowModal() == wxID_OK )
return dialog.GetStringSelection();
else
- return T("");
+ return wxT("");
}
// Overloaded for backward compatibility
{
m_selection = 0;
m_clientData = NULL;
- m_stringSelection = T("");
+ m_stringSelection = wxT("");
m_dialogStyle = style;
*/
#define NUM_COLS 48
-static wxString wxColourDialogNames[NUM_COLS]={T("ORANGE"),
- T("GOLDENROD"),
- T("WHEAT"),
- T("SPRING GREEN"),
- T("SKY BLUE"),
- T("SLATE BLUE"),
- T("MEDIUM VIOLET RED"),
- T("PURPLE"),
-
- T("RED"),
- T("YELLOW"),
- T("MEDIUM SPRING GREEN"),
- T("PALE GREEN"),
- T("CYAN"),
- T("LIGHT STEEL BLUE"),
- T("ORCHID"),
- T("LIGHT MAGENTA"),
-
- T("BROWN"),
- T("YELLOW"),
- T("GREEN"),
- T("CADET BLUE"),
- T("MEDIUM BLUE"),
- T("MAGENTA"),
- T("MAROON"),
- T("ORANGE RED"),
-
- T("FIREBRICK"),
- T("CORAL"),
- T("FOREST GREEN"),
- T("AQUAMARINE"),
- T("BLUE"),
- T("NAVY"),
- T("THISTLE"),
- T("MEDIUM VIOLET RED"),
-
- T("INDIAN RED"),
- T("GOLD"),
- T("MEDIUM SEA GREEN"),
- T("MEDIUM BLUE"),
- T("MIDNIGHT BLUE"),
- T("GREY"),
- T("PURPLE"),
- T("KHAKI"),
-
- T("BLACK"),
- T("MEDIUM FOREST GREEN"),
- T("KHAKI"),
- T("DARK GREY"),
- T("SEA GREEN"),
- T("LIGHT GREY"),
- T("MEDIUM SLATE BLUE"),
- T("WHITE")
+static wxString wxColourDialogNames[NUM_COLS]={wxT("ORANGE"),
+ wxT("GOLDENROD"),
+ wxT("WHEAT"),
+ wxT("SPRING GREEN"),
+ wxT("SKY BLUE"),
+ wxT("SLATE BLUE"),
+ wxT("MEDIUM VIOLET RED"),
+ wxT("PURPLE"),
+
+ wxT("RED"),
+ wxT("YELLOW"),
+ wxT("MEDIUM SPRING GREEN"),
+ wxT("PALE GREEN"),
+ wxT("CYAN"),
+ wxT("LIGHT STEEL BLUE"),
+ wxT("ORCHID"),
+ wxT("LIGHT MAGENTA"),
+
+ wxT("BROWN"),
+ wxT("YELLOW"),
+ wxT("GREEN"),
+ wxT("CADET BLUE"),
+ wxT("MEDIUM BLUE"),
+ wxT("MAGENTA"),
+ wxT("MAROON"),
+ wxT("ORANGE RED"),
+
+ wxT("FIREBRICK"),
+ wxT("CORAL"),
+ wxT("FOREST GREEN"),
+ wxT("AQUAMARINE"),
+ wxT("BLUE"),
+ wxT("NAVY"),
+ wxT("THISTLE"),
+ wxT("MEDIUM VIOLET RED"),
+
+ wxT("INDIAN RED"),
+ wxT("GOLD"),
+ wxT("MEDIUM SEA GREEN"),
+ wxT("MEDIUM BLUE"),
+ wxT("MIDNIGHT BLUE"),
+ wxT("GREY"),
+ wxT("PURPLE"),
+ wxT("KHAKI"),
+
+ wxT("BLACK"),
+ wxT("MEDIUM FOREST GREEN"),
+ wxT("KHAKI"),
+ wxT("DARK GREY"),
+ wxT("SEA GREEN"),
+ wxT("LIGHT GREY"),
+ wxT("MEDIUM SLATE BLUE"),
+ wxT("WHITE")
};
wxGenericColourDialog::wxGenericColourDialog()
wxChar userId[256];
wxGetUserId (userId, sizeof (userId) / sizeof (char));
wxChar tmp[256];
- wxStrcpy (tmp, T("/tmp/preview_"));
+ wxStrcpy (tmp, wxT("/tmp/preview_"));
wxStrcat (tmp, userId);
m_printData.SetFilename(tmp);
#endif
wxChar tmp2[256];
wxStrcpy(tmp2, m_printData.GetFilename());
- wxStrcat (tmp2, T(".ps"));
+ wxStrcat (tmp2, wxT(".ps"));
m_printData.SetFilename(tmp2);
}
- else if ((m_printData.GetFilename() == T("")) && (m_printData.GetPrintMode() == wxPRINT_MODE_FILE))
+ else if ((m_printData.GetFilename() == wxT("")) && (m_printData.GetPrintMode() == wxPRINT_MODE_FILE))
{
- wxString file = wxSaveFileSelector (_("PostScript"), T("ps"));
+ wxString file = wxSaveFileSelector (_("PostScript"), wxT("ps"));
if ( file.IsEmpty() )
{
m_ok = FALSE;
void wxPostScriptDC::SetClippingRegion (long x, long y, long w, long h)
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
if (m_clipping) return;
void wxPostScriptDC::SetClippingRegion( const wxRegion &WXUNUSED(region) )
{
- wxFAIL_MSG( T("wxPostScriptDC::SetClippingRegion not implemented.") );
+ wxFAIL_MSG( wxT("wxPostScriptDC::SetClippingRegion not implemented.") );
}
void wxPostScriptDC::DestroyClippingRegion()
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
wxDC::DestroyClippingRegion();
void wxPostScriptDC::Clear()
{
- wxFAIL_MSG( T("wxPostScriptDC::Clear not implemented.") );
+ wxFAIL_MSG( wxT("wxPostScriptDC::Clear not implemented.") );
}
void wxPostScriptDC::DoFloodFill (long WXUNUSED(x), long WXUNUSED(y), const wxColour &WXUNUSED(col), int WXUNUSED(style))
{
- wxFAIL_MSG( T("wxPostScriptDC::FloodFill not implemented.") );
+ wxFAIL_MSG( wxT("wxPostScriptDC::FloodFill not implemented.") );
}
bool wxPostScriptDC::DoGetPixel (long WXUNUSED(x), long WXUNUSED(y), wxColour * WXUNUSED(col)) const
{
- wxFAIL_MSG( T("wxPostScriptDC::GetPixel not implemented.") );
+ wxFAIL_MSG( wxT("wxPostScriptDC::GetPixel not implemented.") );
return FALSE;
}
void wxPostScriptDC::DoCrossHair (long WXUNUSED(x), long WXUNUSED(y))
{
- wxFAIL_MSG( T("wxPostScriptDC::CrossHair not implemented.") );
+ wxFAIL_MSG( wxT("wxPostScriptDC::CrossHair not implemented.") );
}
void wxPostScriptDC::DoDrawLine (long x1, long y1, long x2, long y2)
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
if (m_pen.GetStyle() == wxTRANSPARENT) return;
void wxPostScriptDC::DoDrawArc (long x1, long y1, long x2, long y2, long xc, long yc)
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
long dx = x1 - xc;
long dy = y1 - yc;
void wxPostScriptDC::DoDrawEllipticArc(long x,long y,long w,long h,double sa,double ea)
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
if (sa>=360 || sa<=-360) sa=sa-int(sa/360)*360;
if (ea>=360 || ea<=-360) ea=ea-int(ea/360)*360;
void wxPostScriptDC::DoDrawPoint (long x, long y)
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
if (m_pen.GetStyle() == wxTRANSPARENT) return;
void wxPostScriptDC::DoDrawPolygon (int n, wxPoint points[], long xoffset, long yoffset, int WXUNUSED(fillStyle))
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
if (n <= 0) return;
void wxPostScriptDC::DoDrawLines (int n, wxPoint points[], long xoffset, long yoffset)
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
if (m_pen.GetStyle() == wxTRANSPARENT) return;
void wxPostScriptDC::DoDrawRectangle (long x, long y, long width, long height)
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
if (m_brush.GetStyle () != wxTRANSPARENT)
{
void wxPostScriptDC::DoDrawRoundedRectangle (long x, long y, long width, long height, double radius)
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
if (radius < 0.0)
{
void wxPostScriptDC::DoDrawEllipse (long x, long y, long width, long height)
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
if (m_brush.GetStyle () != wxTRANSPARENT)
{
void wxPostScriptDC::DoDrawBitmap( const wxBitmap& bitmap, long x, long y, bool WXUNUSED(useMask) )
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
if (!bitmap.Ok()) return;
void wxPostScriptDC::SetFont( const wxFont& font )
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
if (!font.Ok()) return;
void wxPostScriptDC::SetPen( const wxPen& pen )
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
if (!pen.Ok()) return;
void wxPostScriptDC::SetBrush( const wxBrush& brush )
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
if (!brush.Ok()) return;
void wxPostScriptDC::DoDrawText( const wxString& text, long x, long y )
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
SetFont( m_font );
void wxPostScriptDC::SetLogicalFunction (int WXUNUSED(function))
{
- wxFAIL_MSG( T("wxPostScriptDC::SetLogicalFunction not implemented.") );
+ wxFAIL_MSG( wxT("wxPostScriptDC::SetLogicalFunction not implemented.") );
}
void wxPostScriptDC::DoDrawSpline( wxList *points )
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
SetPen( m_pen );
void wxPostScriptDC::SetAxisOrientation( bool xLeftRight, bool yBottomUp )
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
m_signX = (xLeftRight ? 1 : -1);
m_signY = (yBottomUp ? 1 : -1);
void wxPostScriptDC::SetDeviceOrigin( long x, long y )
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
int h = 0;
int w = 0;
bool wxPostScriptDC::StartDoc( const wxString& message )
{
- wxCHECK_MSG( m_ok, FALSE, T("invalid postscript dc") );
+ wxCHECK_MSG( m_ok, FALSE, wxT("invalid postscript dc") );
if (m_printData.GetFilename() == "")
{
void wxPostScriptDC::EndDoc ()
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
if (m_clipping)
{
void wxPostScriptDC::StartPage()
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
fprintf( m_pstream, "%%%%Page: %d\n", wxPageNumber++ );
void wxPostScriptDC::EndPage ()
{
- wxCHECK_RET( m_ok && m_pstream, T("invalid postscript dc") );
+ wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
fprintf( m_pstream, "showpage\n" );
}
long xsrc, long ysrc,
int rop, bool WXUNUSED(useMask) )
{
- wxCHECK_MSG( m_ok && m_pstream, FALSE, T("invalid postscript dc") );
+ wxCHECK_MSG( m_ok && m_pstream, FALSE, wxT("invalid postscript dc") );
- wxCHECK_MSG( source, FALSE, T("invalid source dc") );
+ wxCHECK_MSG( source, FALSE, wxT("invalid source dc") );
/* blit into a bitmap */
wxBitmap bitmap( (int)fwidth, (int)fheight );
if (!fontToUse) fontToUse = (wxFont*) &m_font;
- wxCHECK_RET( fontToUse, T("GetTextExtent: no font defined") );
- wxCHECK_RET( x, T("GetTextExtent: x == NULL") );
- wxCHECK_RET( y, T("GetTextExtent: y == NULL") );
+ wxCHECK_RET( fontToUse, wxT("GetTextExtent: no font defined") );
+ wxCHECK_RET( x, wxT("GetTextExtent: x == NULL") );
+ wxCHECK_RET( y, wxT("GetTextExtent: y == NULL") );
const wxWX2MBbuf strbuf = string.mb_str();
m_names.Clear();
#ifdef __WXMSW__
// better than nothing
- ADD_SECTION(T("c:\\"), _("My Harddisk") )
+ ADD_SECTION(wxT("c:\\"), _("My Harddisk") )
#else
- ADD_SECTION(T("/"), _("The Computer") )
+ ADD_SECTION(wxT("/"), _("The Computer") )
wxGetHomeDir(&home);
ADD_SECTION(home, _("My Home") )
- ADD_SECTION(T("/mnt"), _("Mounted Devices") )
- ADD_SECTION(T("/usr"), _("User") )
- ADD_SECTION(T("/usr/local"), _("User Local") )
- ADD_SECTION(T("/var"), _("Variables") )
- ADD_SECTION(T("/etc"), _("Etcetera") )
- ADD_SECTION(T("/tmp"), _("Temporary") )
+ ADD_SECTION(wxT("/mnt"), _("Mounted Devices") )
+ ADD_SECTION(wxT("/usr"), _("User") )
+ ADD_SECTION(wxT("/usr/local"), _("User Local") )
+ ADD_SECTION(wxT("/var"), _("Variables") )
+ ADD_SECTION(wxT("/etc"), _("Etcetera") )
+ ADD_SECTION(wxT("/tmp"), _("Temporary") )
#endif
}
#undef ADD_SECTION
if ((event.GetLabel().IsEmpty()) ||
(event.GetLabel() == _(".")) ||
(event.GetLabel() == _("..")) ||
- (event.GetLabel().First( T("/") ) != wxNOT_FOUND))
+ (event.GetLabel().First( wxT("/") ) != wxNOT_FOUND))
{
wxMessageDialog dialog(this, _("Illegal directory name."), _("Error"), wxOK | wxICON_ERROR );
dialog.ShowModal();
wxASSERT( data );
wxString new_name( wxPathOnly( data->m_path ) );
- new_name += T("/");
+ new_name += wxT("/");
new_name += event.GetLabel();
wxLogNull log;
wxDirItemData *data = (wxDirItemData*)m_dir->GetItemData( parent );
wxASSERT( data );
- wxString new_name( T("NewName") );
+ wxString new_name( wxT("NewName") );
wxString path( data->m_path );
- path += T("/");
+ path += wxT("/");
path += new_name;
if (wxFileExists(path))
{
// try NewName0, NewName1 etc.
int i = 0;
do {
- new_name = T("NewName");
+ new_name = wxT("NewName");
wxString num;
num.Printf( "%d", i );
new_name += num;
path = data->m_path;
- path += T("/");
+ path += wxT("/");
path += new_name;
i++;
} while (wxFileExists(path));
{
wxFileData *fd1 = (wxFileData*)data1 ;
wxFileData *fd2 = (wxFileData*)data2 ;
- if (fd1->GetName() == T("..")) return -1;
- if (fd2->GetName() == T("..")) return 1;
+ if (fd1->GetName() == wxT("..")) return -1;
+ if (fd2->GetName() == wxT("..")) return 1;
if (fd1->IsDir() && !fd2->IsDir()) return -1;
if (fd2->IsDir() && !fd1->IsDir()) return 1;
return strcmp( fd1->GetName(), fd2->GetName() );
s += _(" bytes ");
}
s += IntToString( m_day );
- s += T(".");
+ s += wxT(".");
s += IntToString( m_month );
- s += T(".");
+ s += wxT(".");
s += IntToString( m_year );
- s += T(" ");
+ s += wxT(" ");
s += IntToString( m_hour );
- s += T(":");
+ s += wxT(":");
s += IntToString( m_minute );
- s += T(" ");
+ s += wxT(" ");
s += m_permissions;
return s;
};
else s = LongToString( m_size );
break;
case 2:
- if (m_day < 10) s = T("0"); else s = T("");
+ if (m_day < 10) s = wxT("0"); else s = wxT("");
s += IntToString( m_day );
- s += T(".");
- if (m_month < 10) s += T("0");
+ s += wxT(".");
+ if (m_month < 10) s += wxT("0");
s += IntToString( m_month );
- s += T(".");
- if (m_year < 10) s += T("0"); // this should happen real soon...
+ s += wxT(".");
+ if (m_year < 10) s += wxT("0"); // this should happen real soon...
s += IntToString( m_year );
break;
case 3:
- if (m_hour < 10) s = T("0"); else s = T("");
+ if (m_hour < 10) s = wxT("0"); else s = wxT("");
s += IntToString( m_hour );
- s += T(":");
- if (m_minute < 10) s += T("0");
+ s += wxT(":");
+ if (m_minute < 10) s += wxT("0");
s += IntToString( m_minute );
break;
case 4:
s = m_permissions;
break;
default:
- s = T("No entry");
+ s = wxT("No entry");
break;
}
return s;
wxFileCtrl::wxFileCtrl()
{
- m_dirName = T("/");
+ m_dirName = wxT("/");
m_showHidden = FALSE;
}
item.m_itemId = 0;
item.m_col = 0;
- if (m_dirName != T("/"))
+ if (m_dirName != wxT("/"))
{
wxString p( wxPathOnly(m_dirName) );
- if (p.IsEmpty()) p = T("/");
- fd = new wxFileData( T(".."), p );
+ if (p.IsEmpty()) p = wxT("/");
+ fd = new wxFileData( wxT(".."), p );
Add( fd, item );
item.m_itemId++;
}
- wxString res = m_dirName + T("/*");
+ wxString res = m_dirName + wxT("/*");
wxString f( wxFindFirstFile( res.GetData(), wxDIR ) );
while (!f.IsEmpty())
{
res = wxFileNameFromPath( f );
fd = new wxFileData( res, f );
wxString s = fd->GetName();
- if (m_showHidden || (s[0] != T('.')))
+ if (m_showHidden || (s[0] != wxT('.')))
{
Add( fd, item );
item.m_itemId++;
f = wxFindNextFile();
}
- res = m_dirName + T("/") + m_wild;
+ res = m_dirName + wxT("/") + m_wild;
f = wxFindFirstFile( res.GetData(), wxFILE );
while (!f.IsEmpty())
{
res = wxFileNameFromPath( f );
fd = new wxFileData( res, f );
wxString s = fd->GetName();
- if (m_showHidden || (s[0] != T('.')))
+ if (m_showHidden || (s[0] != wxT('.')))
{
Add( fd, item );
item.m_itemId++;
void wxFileCtrl::MakeDir()
{
- wxString new_name( T("NewName") );
+ wxString new_name( wxT("NewName") );
wxString path( m_dirName );
- path += T("/");
+ path += wxT("/");
path += new_name;
if (wxFileExists(path))
{
do {
new_name = _("NewName");
wxString num;
- num.Printf( T("%d"), i );
+ num.Printf( wxT("%d"), i );
new_name += num;
path = m_dirName;
- path += T("/");
+ path += wxT("/");
path += new_name;
i++;
} while (wxFileExists(path));
void wxFileCtrl::GoToParentDir()
{
- if (m_dirName != T("/"))
+ if (m_dirName != wxT("/"))
{
wxString fname( wxFileNameFromPath(m_dirName) );
m_dirName = wxPathOnly( m_dirName );
- if (m_dirName.IsEmpty()) m_dirName = T("/");
+ if (m_dirName.IsEmpty()) m_dirName = wxT("/");
Update();
int id = FindItem( 0, fname );
if (id != -1)
if ((event.GetLabel().IsEmpty()) ||
(event.GetLabel() == _(".")) ||
(event.GetLabel() == _("..")) ||
- (event.GetLabel().First( T("/") ) != wxNOT_FOUND))
+ (event.GetLabel().First( wxT("/") ) != wxNOT_FOUND))
{
wxMessageDialog dialog(this, _("Illegal directory name."), _("Error"), wxOK | wxICON_ERROR );
dialog.ShowModal();
}
wxString new_name( wxPathOnly( fd->GetFullName() ) );
- new_name += T("/");
+ new_name += wxT("/");
new_name += event.GetLabel();
wxLogNull log;
m_dir = getcwd( buf, sizeof(buf) );
}
m_path = defaultDir;
- m_path += T("/");
+ m_path += wxT("/");
m_path += defaultFile;
m_fileName = defaultFile;
m_wildCard = wildCard;
if (m_wildCard.IsEmpty())
m_wildCard = _("All files (*)|*");
- wxStringTokenizer tokens( m_wildCard, T("|") );
+ wxStringTokenizer tokens( m_wildCard, wxT("|") );
wxString firstWild;
wxString firstWildText;
if (tokens.CountTokens() == 1)
}
else
{
- wxASSERT_MSG( tokens.CountTokens() % 2 == 0, T("Wrong file type descripition") );
+ wxASSERT_MSG( tokens.CountTokens() % 2 == 0, wxT("Wrong file type descripition") );
firstWildText = tokens.GetNextToken();
firstWild = tokens.GetNextToken();
}
if (FindFocus() != m_list) return;
wxString filename( event.m_item.m_text );
- if (filename == T("..")) return;
+ if (filename == wxT("..")) return;
wxString dir;
m_list->GetDir( dir );
- if (dir != T("/")) dir += T("/");
+ if (dir != wxT("/")) dir += wxT("/");
dir += filename;
if (wxDirExists(dir)) return;
wxString dir;
m_list->GetDir( dir );
if (filename.IsEmpty()) return;
- if (filename == T(".")) return;
+ if (filename == wxT(".")) return;
- if (filename == T(".."))
+ if (filename == wxT(".."))
{
m_list->GoToParentDir();
m_list->SetFocus();
return;
}
- if (filename == T("~"))
+ if (filename == wxT("~"))
{
m_list->GoToHomeDir();
m_list->SetFocus();
return;
}
- if (filename[0] == T('~'))
+ if (filename[0] == wxT('~'))
{
filename.Remove( 0, 1 );
wxString tmp( wxGetUserHome() );
- tmp += T('/');
+ tmp += wxT('/');
tmp += filename;
filename = tmp;
}
- if ((filename.Find(T('*')) != wxNOT_FOUND) ||
- (filename.Find(T('?')) != wxNOT_FOUND))
+ if ((filename.Find(wxT('*')) != wxNOT_FOUND) ||
+ (filename.Find(wxT('?')) != wxNOT_FOUND))
{
- if (filename.Find(T('/')) != wxNOT_FOUND)
+ if (filename.Find(wxT('/')) != wxNOT_FOUND)
{
wxMessageBox(_("Illegal file specification."), _("Error"), wxOK | wxICON_ERROR );
return;
return;
}
- if (dir != T("/")) dir += T("/");
- if (filename[0] != T('/'))
+ if (dir != wxT("/")) dir += wxT("/");
+ if (filename[0] != wxT('/'))
{
dir += filename;
filename = dir;
wxSplitPath(path, &m_dir, &m_fileName, &ext);
if (!ext.IsEmpty())
{
- m_fileName += T(".");
+ m_fileName += wxT(".");
m_fileName += ext;
}
}
int x, int y)
{
// TODO: implement this somehow
- return wxFileSelector(message, default_path, default_filename, T(""),
+ return wxFileSelector(message, default_path, default_filename, wxT(""),
wildcard, flags, parent, x, y);
}
{
wxString filter2;
if ( defaultExtension && !filter )
- filter2 = wxString(T("*.")) + wxString(defaultExtension) ;
+ filter2 = wxString(wxT("*.")) + wxString(defaultExtension) ;
else if ( filter )
filter2 = filter;
wxString str = _("Load %s file");
wxSprintf(prompt, str, what);
- if (*ext == T('.')) ext++;
+ if (*ext == wxT('.')) ext++;
wxChar wild[60];
- wxSprintf(wild, T("*.%s"), ext);
+ wxSprintf(wild, wxT("*.%s"), ext);
return wxFileSelector (prompt, (const wxChar *) NULL, default_name, ext, wild, 0, parent);
}
wxString str = _("Save %s file");
wxSprintf(prompt, str, what);
- if (*ext == T('.')) ext++;
+ if (*ext == wxT('.')) ext++;
wxChar wild[60];
- wxSprintf(wild, T("*.%s"), ext);
+ wxSprintf(wild, wxT("*.%s"), ext);
return wxFileSelector (prompt, (const wxChar *) NULL, default_name, ext, wild, 0, parent);
}
#endif
#define NUM_COLS 48
-static wxString wxColourDialogNames[NUM_COLS]={T("ORANGE"),
- T("GOLDENROD"),
- T("WHEAT"),
- T("SPRING GREEN"),
- T("SKY BLUE"),
- T("SLATE BLUE"),
- T("MEDIUM VIOLET RED"),
- T("PURPLE"),
-
- T("RED"),
- T("YELLOW"),
- T("MEDIUM SPRING GREEN"),
- T("PALE GREEN"),
- T("CYAN"),
- T("LIGHT STEEL BLUE"),
- T("ORCHID"),
- T("LIGHT MAGENTA"),
-
- T("BROWN"),
- T("YELLOW"),
- T("GREEN"),
- T("CADET BLUE"),
- T("MEDIUM BLUE"),
- T("MAGENTA"),
- T("MAROON"),
- T("ORANGE RED"),
-
- T("FIREBRICK"),
- T("CORAL"),
- T("FOREST GREEN"),
- T("AQUARAMINE"),
- T("BLUE"),
- T("NAVY"),
- T("THISTLE"),
- T("MEDIUM VIOLET RED"),
-
- T("INDIAN RED"),
- T("GOLD"),
- T("MEDIUM SEA GREEN"),
- T("MEDIUM BLUE"),
- T("MIDNIGHT BLUE"),
- T("GREY"),
- T("PURPLE"),
- T("KHAKI"),
-
- T("BLACK"),
- T("MEDIUM FOREST GREEN"),
- T("KHAKI"),
- T("DARK GREY"),
- T("SEA GREEN"),
- T("LIGHT GREY"),
- T("MEDIUM SLATE BLUE"),
- T("WHITE")
+static wxString wxColourDialogNames[NUM_COLS]={wxT("ORANGE"),
+ wxT("GOLDENROD"),
+ wxT("WHEAT"),
+ wxT("SPRING GREEN"),
+ wxT("SKY BLUE"),
+ wxT("SLATE BLUE"),
+ wxT("MEDIUM VIOLET RED"),
+ wxT("PURPLE"),
+
+ wxT("RED"),
+ wxT("YELLOW"),
+ wxT("MEDIUM SPRING GREEN"),
+ wxT("PALE GREEN"),
+ wxT("CYAN"),
+ wxT("LIGHT STEEL BLUE"),
+ wxT("ORCHID"),
+ wxT("LIGHT MAGENTA"),
+
+ wxT("BROWN"),
+ wxT("YELLOW"),
+ wxT("GREEN"),
+ wxT("CADET BLUE"),
+ wxT("MEDIUM BLUE"),
+ wxT("MAGENTA"),
+ wxT("MAROON"),
+ wxT("ORANGE RED"),
+
+ wxT("FIREBRICK"),
+ wxT("CORAL"),
+ wxT("FOREST GREEN"),
+ wxT("AQUARAMINE"),
+ wxT("BLUE"),
+ wxT("NAVY"),
+ wxT("THISTLE"),
+ wxT("MEDIUM VIOLET RED"),
+
+ wxT("INDIAN RED"),
+ wxT("GOLD"),
+ wxT("MEDIUM SEA GREEN"),
+ wxT("MEDIUM BLUE"),
+ wxT("MIDNIGHT BLUE"),
+ wxT("GREY"),
+ wxT("PURPLE"),
+ wxT("KHAKI"),
+
+ wxT("BLACK"),
+ wxT("MEDIUM FOREST GREEN"),
+ wxT("KHAKI"),
+ wxT("DARK GREY"),
+ wxT("SEA GREEN"),
+ wxT("LIGHT GREY"),
+ wxT("MEDIUM SLATE BLUE"),
+ wxT("WHITE")
};
/*
int fontUnderline = underLineCheckBox->GetValue();
dialogFont = wxFont(fontSize, fontFamily, fontStyle, fontWeight, (fontUnderline != 0));
- if (colourChoice->GetStringSelection() != T(""))
+ if (colourChoice->GetStringSelection() != wxT(""))
{
wxColour *col = (wxColour*) NULL;
col = wxTheColourDatabase->FindColour(colourChoice->GetStringSelection());
switch (weight)
{
case wxLIGHT:
- return T("Light");
+ return wxT("Light");
case wxBOLD:
- return T("Bold");
+ return wxT("Bold");
case wxNORMAL:
default:
- return T("Normal");
+ return wxT("Normal");
}
- return T("Normal");
+ return wxT("Normal");
}
wxChar *wxFontStyleIntToString(int style)
switch (style)
{
case wxITALIC:
- return T("Italic");
+ return wxT("Italic");
case wxSLANT:
- return T("Slant");
+ return wxT("Slant");
case wxNORMAL:
default:
- return T("Normal");
+ return wxT("Normal");
}
- return T("Normal");
+ return wxT("Normal");
}
wxChar *wxFontFamilyIntToString(int family)
switch (family)
{
case wxROMAN:
- return T("Roman");
+ return wxT("Roman");
case wxDECORATIVE:
- return T("Decorative");
+ return wxT("Decorative");
case wxMODERN:
- return T("Modern");
+ return wxT("Modern");
case wxSCRIPT:
- return T("Script");
+ return wxT("Script");
case wxTELETYPE:
- return T("Teletype");
+ return wxT("Teletype");
case wxSWISS:
default:
- return T("Swiss");
+ return wxT("Swiss");
}
- return T("Swiss");
+ return wxT("Swiss");
}
int wxFontFamilyStringToInt(wxChar *family)
if (!family)
return wxSWISS;
- if (wxStrcmp(family, T("Roman")) == 0)
+ if (wxStrcmp(family, wxT("Roman")) == 0)
return wxROMAN;
- else if (wxStrcmp(family, T("Decorative")) == 0)
+ else if (wxStrcmp(family, wxT("Decorative")) == 0)
return wxDECORATIVE;
- else if (wxStrcmp(family, T("Modern")) == 0)
+ else if (wxStrcmp(family, wxT("Modern")) == 0)
return wxMODERN;
- else if (wxStrcmp(family, T("Script")) == 0)
+ else if (wxStrcmp(family, wxT("Script")) == 0)
return wxSCRIPT;
- else if (wxStrcmp(family, T("Teletype")) == 0)
+ else if (wxStrcmp(family, wxT("Teletype")) == 0)
return wxTELETYPE;
else return wxSWISS;
}
{
if (!style)
return wxNORMAL;
- if (wxStrcmp(style, T("Italic")) == 0)
+ if (wxStrcmp(style, wxT("Italic")) == 0)
return wxITALIC;
- else if (wxStrcmp(style, T("Slant")) == 0)
+ else if (wxStrcmp(style, wxT("Slant")) == 0)
return wxSLANT;
else
return wxNORMAL;
{
if (!weight)
return wxNORMAL;
- if (wxStrcmp(weight, T("Bold")) == 0)
+ if (wxStrcmp(weight, wxT("Bold")) == 0)
return wxBOLD;
- else if (wxStrcmp(weight, T("Light")) == 0)
+ else if (wxStrcmp(weight, wxT("Light")) == 0)
return wxLIGHT;
else
return wxNORMAL;
// this is a magic incantation which must be done!
#include <wx/arrimpl.cpp>
-WX_DEFINE_OBJARRAY(wxGridStringArray);
+WX_DEFINE_OBJARRAY(wxGridStringArray)
IMPLEMENT_DYNAMIC_CLASS( wxGridStringTable, wxGridTableBase )
{
wxString lockfile;
wxGetHomeDir(&lockfile);
- lockfile << WXEXTHELP_SEPARATOR << T(".netscape/lock");
+ lockfile << WXEXTHELP_SEPARATOR << wxT(".netscape/lock");
struct stat statbuf;
if(lstat(lockfile.fn_str(), &statbuf) == 0)
// cannot use wxFileExists, because it's a link pointing to a
// non-existing location if(wxFileExists(lockfile))
{
long success;
- command << m_BrowserName << T(" -remote openURL(")
- << T("file://") << m_MapFile
- << WXEXTHELP_SEPARATOR << relativeURL << T(")");
+ command << m_BrowserName << wxT(" -remote openURL(")
+ << wxT("file://") << m_MapFile
+ << WXEXTHELP_SEPARATOR << relativeURL << wxT(")");
success = wxExecute(command);
if(success != 0 ) // returns PID on success
return TRUE;
}
}
command = m_BrowserName;
- command << T(" file://")
+ command << wxT(" file://")
<< m_MapFile << WXEXTHELP_SEPARATOR << relativeURL;
return wxExecute(command) != 0;
#endif
{
newfile = WXEXTHELP_SEPARATOR;
const wxChar *cptr = wxGetLocale()->GetName().c_str();
- while(*cptr && *cptr != T('_'))
+ while(*cptr && *cptr != wxT('_'))
newfile << *(cptr++);
if(wxDirExists(newfile))
file = newfile;
bool rc = FALSE;
wxString file;
file << m_MapFile << WXEXTHELP_SEPARATOR << contents;
- if(file.Contains(T('#')))
- file = file.BeforeLast(T('#'));
+ if(file.Contains(wxT('#')))
+ file = file.BeforeLast(wxT('#'));
if(contents.Length() && wxFileExists(file))
rc = DisplaySection(CONTENTS_ID);
// if not found, open homemade toc:
- return rc ? TRUE : KeywordSearch(T(""));
+ return rc ? TRUE : KeywordSearch(wxT(""));
}
bool
{
wxNode *node = m_images.Nth( index );
- wxCHECK_MSG( node, (wxBitmap *) NULL, T("wrong index in image list") );
+ wxCHECK_MSG( node, (wxBitmap *) NULL, wxT("wrong index in image list") );
return (wxBitmap*)node->Data();
}
{
wxNode *node = m_images.Nth( index );
- wxCHECK_MSG( node, FALSE, T("wrong index in image list") );
+ wxCHECK_MSG( node, FALSE, wxT("wrong index in image list") );
wxBitmap* newBitmap = NULL;
if (bitmap.IsKindOf(CLASSINFO(wxIcon)))
{
wxNode *node = m_images.Nth( index );
- wxCHECK_MSG( node, FALSE, T("wrong index in image list") );
+ wxCHECK_MSG( node, FALSE, wxT("wrong index in image list") );
m_images.DeleteNode( node );
wxNode *node = m_images.Nth( index );
- wxCHECK_MSG( node, FALSE, T("wrong index in image list") );
+ wxCHECK_MSG( node, FALSE, wxT("wrong index in image list") );
wxBitmap *bm = (wxBitmap*)node->Data();
width = bm->GetWidth();
{
wxNode *node = m_images.Nth( index );
- wxCHECK_MSG( node, FALSE, T("wrong index in image list") );
+ wxCHECK_MSG( node, FALSE, wxT("wrong index in image list") );
wxBitmap *bm = (wxBitmap*)node->Data();
wxListItemData *item = (wxListItemData*)node->Data();
wxString s;
item->GetText( s );
- if (s.IsEmpty()) s = T("H");
+ if (s.IsEmpty()) s = wxT("H");
long lw,lh;
dc->GetTextExtent( s, &lw, &lh );
m_bound_label.width = lw;
void wxListMainWindow::EditLabel( long item )
{
wxNode *node = m_lines.Nth( item );
- wxCHECK_RET( node, T("wrong index in wxListCtrl::Edit()") );
+ wxCHECK_RET( node, wxT("wrong index in wxListCtrl::Edit()") );
m_currentEdit = (wxListLineData*) node->Data();
void wxListMainWindow::OnRenameTimer()
{
- wxCHECK_RET( m_current, T("invalid m_current") );
+ wxCHECK_RET( m_current, wxT("invalid m_current") );
Edit( m_lines.IndexOf( m_current ) );
}
void wxListMainWindow::DeleteColumn( int col )
{
wxCHECK_RET( col < (int)m_columns.GetCount(),
- T("attempting to delete inexistent column in wxListView") );
+ wxT("attempting to delete inexistent column in wxListView") );
m_dirty = TRUE;
wxNode *node = m_columns.Nth( col );
{
wxString msg;
TimeStamp(&msg);
- msg << szString << T('\n');
+ msg << szString << wxT('\n');
m_pTextCtrl->AppendText(msg);
}
if ( nLines > 25 ) // don't put too many lines in message box
break;
- str << m_aMessages[n - 1] << T("\n");
+ str << m_aMessages[n - 1] << wxT("\n");
}
const wxChar *title;
// debug window anyhow, but do put a timestamp
wxString str;
TimeStamp(&str);
- str << szString << T("\n\r");
+ str << szString << wxT("\n\r");
OutputDebugString(str);
#else
// send them to stderr
- wxFprintf(stderr, T("%s: %s\n"),
- level == wxLOG_Trace ? T("Trace")
- : T("Debug"),
+ wxFprintf(stderr, wxT("%s: %s\n"),
+ level == wxLOG_Trace ? wxT("Trace")
+ : wxT("Debug"),
szString);
fflush(stderr);
#endif
{
// get the file name
// -----------------
- const wxChar *szFileName = wxSaveFileSelector(T("log"), T("txt"), T("log.txt"));
+ const wxChar *szFileName = wxSaveFileSelector(wxT("log"), wxT("txt"), wxT("log.txt"));
if ( szFileName == NULL ) {
// cancelled
return;
wxString msg;
TimeStamp(&msg);
- msg << szString << T('\n');
+ msg << szString << wxT('\n');
pText->AppendText(msg);
inputsizer->Add( new wxStaticText( this, -1, prompt ), 0, wxCENTER | wxLEFT, 10 );
// spin ctrl
wxString valStr;
- valStr.Printf(T("%lu"), m_value);
+ valStr.Printf(wxT("%lu"), m_value);
m_spinctrl = new wxTextCtrl(this, -1, valStr, wxDefaultPosition, wxSize( 140, -1 ) );
inputsizer->Add( m_spinctrl, 1, wxCENTER | wxLEFT | wxRIGHT, 10 );
// add both
void wxNumberEntryDialog::OnOK(wxCommandEvent& WXUNUSED(event))
{
- if ( (wxSscanf(m_spinctrl->GetValue(), T("%lu"), &m_value) != 1) ||
+ if ( (wxSscanf(m_spinctrl->GetValue(), wxT("%lu"), &m_value) != 1) ||
(m_value < m_min) || (m_value > m_max) )
{
// not a number or out of range
wxString f = wxFileSelector(_("PostScript file"),
wxPathOnly(wxThePrintSetupData->GetPrinterFile()),
wxFileNameFromPath(wxThePrintSetupData->GetPrinterFile()),
- T("ps"), T("*.ps"), 0, this);
+ wxT("ps"), wxT("*.ps"), 0, this);
if ( f.IsEmpty() )
return;
{
nTimeLabels++;
- m_elapsed = CreateLabel(T("Elapsed time : "), &lastWindow);
+ m_elapsed = CreateLabel(wxT("Elapsed time : "), &lastWindow);
}
if ( style & wxPD_ESTIMATED_TIME )
{
nTimeLabels++;
- m_estimated = CreateLabel(T("Estimated time : "), &lastWindow);
+ m_estimated = CreateLabel(wxT("Estimated time : "), &lastWindow);
}
if ( style & wxPD_REMAINING_TIME )
{
nTimeLabels++;
- m_remaining = CreateLabel(T("Remaining time : "), &lastWindow);
+ m_remaining = CreateLabel(wxT("Remaining time : "), &lastWindow);
}
if ( nTimeLabels > 0 )
{
wxLayoutConstraints *c;
- wxStaticText *label = new wxStaticText(this, -1, T("unknown"));
+ wxStaticText *label = new wxStaticText(this, -1, wxT("unknown"));
c = new wxLayoutConstraints;
// VZ: I like the labels be centered - if the others don't mind, you may
bool
wxProgressDialog::Update(int value, const wxString& newmsg)
{
- wxASSERT_MSG( value == -1 || m_gauge, T("cannot update non existent dialog") );
- wxASSERT_MSG( value <= m_maximum, T("invalid progress value") );
+ wxASSERT_MSG( value == -1 || m_gauge, wxT("cannot update non existent dialog") );
+ wxASSERT_MSG( value <= m_maximum, wxT("invalid progress value") );
if( m_gauge )
unsigned long hours = val / 3600;
unsigned long minutes = (val % 3600) / 60;
unsigned long seconds = val % 60;
- s.Printf(T("%lu:%02lu:%02lu"), hours, minutes, seconds);
+ s.Printf(wxT("%lu:%02lu:%02lu"), hours, minutes, seconds);
if ( s != label->GetLabel() )
label->SetLabel(s);
return new wxPropertyValue(m_value.stringPtr);
case wxPropertyValueNull:
- wxFAIL_MSG( T("Should never get here!\n" ) );
+ wxFAIL_MSG( wxT("Should never get here!\n" ) );
break;
}
return NULL;
return;
}
case wxPropertyValueNull:
- wxFAIL_MSG( T("Should never get here!\n" ) );
+ wxFAIL_MSG( wxT("Should never get here!\n" ) );
break;
}
}
if (node)
{
node->WritePropertyType(stream);
- stream.Append( T("(") );
+ stream.Append( wxT("(") );
node = node->m_next;
bool first = TRUE;
while (node)
{
if (!first)
- stream.Append( T(" ") );
+ stream.Append( wxT(" ") );
node->WritePropertyType(stream);
node = node->m_next;
if (node)
- stream.Append( T(",\n" ) );
+ stream.Append( wxT(",\n" ) );
first = FALSE;
}
- stream.Append( T(").\n\n") );
+ stream.Append( wxT(").\n\n") );
}
}
{
case wxPropertyValueInteger:
{
- tmp.Printf( T("%ld"), m_value.integer );
+ tmp.Printf( wxT("%ld"), m_value.integer );
stream.Append( tmp );
break;
}
case wxPropertyValueIntegerPtr:
{
- tmp.Printf( T("%ld"), *m_value.integerPtr );
+ tmp.Printf( wxT("%ld"), *m_value.integerPtr );
stream.Append( tmp );
break;
}
case wxPropertyValuebool:
{
if (m_value.integer)
- stream.Append( T("True") );
+ stream.Append( wxT("True") );
else
- stream.Append( T("False") );
+ stream.Append( wxT("False") );
break;
}
case wxPropertyValueboolPtr:
{
if (*m_value.integerPtr)
- stream.Append( T("True") );
+ stream.Append( wxT("True") );
else
- stream.Append( T("False") );
+ stream.Append( wxT("False") );
break;
}
case wxPropertyValueReal:
{
double d = m_value.real;
- tmp.Printf( T("%.6g"), d );
+ tmp.Printf( wxT("%.6g"), d );
stream.Append( tmp );
break;
}
case wxPropertyValueRealPtr:
{
double d = *m_value.realPtr;
- tmp.Printf( T("%.6g"), d );
+ tmp.Printf( wxT("%.6g"), d );
stream.Append( tmp );
break;
}
}
case wxPropertyValueStringPtr:
{
- wxFAIL_MSG( T("wxPropertyValue::WritePropertyType( wxPropertyValueStringPtr ) not implemented") );
+ wxFAIL_MSG( wxT("wxPropertyValue::WritePropertyType( wxPropertyValueStringPtr ) not implemented") );
/*
int i;
int len = strlen(*(m_value.stringPtr));
case wxPropertyValueList:
{
if (!m_value.first)
- stream.Append( T("[]") );
+ stream.Append( wxT("[]") );
else
{
wxPropertyValue *expr = m_value.first;
- stream.Append( T("[") );
+ stream.Append( wxT("[") );
while (expr)
{
expr->WritePropertyType(stream);
expr = expr->m_next;
if (expr)
- stream.Append( T(", ") );
+ stream.Append( wxT(", ") );
}
- stream.Append( T("]") );
+ stream.Append( wxT("]") );
}
break;
}
wxChar *wxPropertyValidator::FloatToString (float number) {
static wxChar buf[20];
- wxSprintf (buf, T("%.6g"), number);
+ wxSprintf (buf, wxT("%.6g"), number);
return buf;
}
wxChar *wxPropertyValidator::DoubleToString (double number) {
static wxChar buf[20];
- wxSprintf (buf, T("%.6g"), number);
+ wxSprintf (buf, wxT("%.6g"), number);
return buf;
}
while (node)
{
wxWindow *win = (wxWindow *)node->Data();
- if (win->GetName() != T(""))
+ if (win->GetName() != wxT(""))
{
wxProperty *prop = m_propertySheet->GetProperty(win->GetName());
if (prop)
if (!m_propertySheet)
return;
- if (win.GetName() == T(""))
+ if (win.GetName() == wxT(""))
return;
- if (wxStrcmp(win.GetName(), T("ok")) == 0)
+ if (wxStrcmp(win.GetName(), wxT("ok")) == 0)
OnOk(event);
- else if (wxStrcmp(win.GetName(), T("cancel")) == 0)
+ else if (wxStrcmp(win.GetName(), wxT("cancel")) == 0)
OnCancel(event);
- else if (wxStrcmp(win.GetName(), T("help")) == 0)
+ else if (wxStrcmp(win.GetName(), wxT("help")) == 0)
OnHelp(event);
- else if (wxStrcmp(win.GetName(), T("update")) == 0)
+ else if (wxStrcmp(win.GetName(), wxT("update")) == 0)
OnUpdate(event);
- else if (wxStrcmp(win.GetName(), T("revert")) == 0)
+ else if (wxStrcmp(win.GetName(), wxT("revert")) == 0)
OnRevert(event);
else
{
if (!StringToFloat(WXSTRINGCAST value, &val))
{
wxChar buf[200];
- wxSprintf(buf, T("Value %s is not a valid real number!"), (const wxChar *)value);
- wxMessageBox(buf, T("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
+ wxSprintf(buf, wxT("Value %s is not a valid real number!"), (const wxChar *)value);
+ wxMessageBox(buf, wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
return FALSE;
}
if (val < m_realMin || val > m_realMax)
{
wxChar buf[200];
- wxSprintf(buf, T("Value must be a real number between %.2f and %.2f!"), m_realMin, m_realMax);
- wxMessageBox(buf, T("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
+ wxSprintf(buf, wxT("Value must be a real number between %.2f and %.2f!"), m_realMin, m_realMax);
+ wxMessageBox(buf, wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
return FALSE;
}
return TRUE;
if (!StringToLong(WXSTRINGCAST value, &val))
{
wxChar buf[200];
- wxSprintf(buf, T("Value %s is not a valid integer!"), (const wxChar *)value);
- wxMessageBox(buf, T("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
+ wxSprintf(buf, wxT("Value %s is not a valid integer!"), (const wxChar *)value);
+ wxMessageBox(buf, wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
return FALSE;
}
}
bool wxPropertyListValidator::OnValueListSelect(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow))
{
wxString s(view->GetValueList()->GetStringSelection());
- if (s != T(""))
+ if (s != wxT(""))
{
view->GetValueText()->SetValue(s);
view->RetrieveProperty(property);
if (!StringToFloat(WXSTRINGCAST value, &val))
{
wxChar buf[200];
- wxSprintf(buf, T("Value %s is not a valid real number!"), value.GetData());
- wxMessageBox(buf, T("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
+ wxSprintf(buf, wxT("Value %s is not a valid real number!"), value.GetData());
+ wxMessageBox(buf, wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
return FALSE;
}
if (!StringToLong(WXSTRINGCAST value, &val))
{
wxChar buf[200];
- wxSprintf(buf, T("Value %s is not a valid integer!"), value.GetData());
- wxMessageBox(buf, T("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
+ wxSprintf(buf, wxT("Value %s is not a valid integer!"), value.GetData());
+ wxMessageBox(buf, wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
return FALSE;
}
if (val < m_integerMin || val > m_integerMax)
{
wxChar buf[200];
- wxSprintf(buf, T("Value must be an integer between %ld and %ld!"), m_integerMin, m_integerMax);
- wxMessageBox(buf, T("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
+ wxSprintf(buf, wxT("Value must be an integer between %ld and %ld!"), m_integerMin, m_integerMax);
+ wxMessageBox(buf, wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
return FALSE;
}
return TRUE;
if (!view->GetValueText())
return FALSE;
wxString value(view->GetValueText()->GetValue());
- if (value != T("True") && value != T("False"))
+ if (value != wxT("True") && value != wxT("False"))
{
- wxMessageBox(T("Value must be True or False!"), T("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
+ wxMessageBox(wxT("Value must be True or False!"), wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
return FALSE;
}
return TRUE;
wxString value(view->GetValueText()->GetValue());
bool boolValue = FALSE;
- if (value == T("True"))
+ if (value == wxT("True"))
boolValue = TRUE;
else
boolValue = FALSE;
view->ShowListBoxControl(TRUE);
view->GetValueList()->Enable(TRUE);
- view->GetValueList()->Append(T("True"));
- view->GetValueList()->Append(T("False"));
+ view->GetValueList()->Append(wxT("True"));
+ view->GetValueList()->Append(wxT("False"));
wxChar *currentString = copystring(view->GetValueText()->GetValue());
view->GetValueList()->SetStringSelection(currentString);
delete[] currentString;
m_filenameWildCard.GetData(),
0,
parentWindow);
- if (s != T(""))
+ if (s != wxT(""))
{
property->GetValue() = s;
view->DisplayProperty(property);
expr = expr->GetNext();
}
- wxString title(T("Editing "));
+ wxString title(wxT("Editing "));
title += property->GetName();
if (EditStringList(parentWindow, stringList, title.GetData()))
{
SaveCurrentSelection();
- wxChar *initialText = T("");
+ wxChar *initialText = wxT("");
wxNode *node = m_stringList->Add(initialText);
m_listBox->Append(initialText, (void *)node);
m_currentSelection = m_stringList->Number() - 1;
if ( dialog )
iconized = dialog->IsIconized();
else
- wxFAIL_MSG(T("should have a top level frame or dialog parent!"));
+ wxFAIL_MSG(wxT("should have a top level frame or dialog parent!"));
}
if ( iconized )
}
else
{
- wxFAIL_MSG(T("splitter: attempt to remove a non-existent window"));
+ wxFAIL_MSG(wxT("splitter: attempt to remove a non-existent window"));
return FALSE;
}
// Replace a window with another one
bool wxSplitterWindow::ReplaceWindow(wxWindow *winOld, wxWindow *winNew)
{
- wxCHECK_MSG( winOld, FALSE, T("use one of Split() functions instead") );
- wxCHECK_MSG( winNew, FALSE, T("use Unsplit() functions instead") );
+ wxCHECK_MSG( winOld, FALSE, wxT("use one of Split() functions instead") );
+ wxCHECK_MSG( winNew, FALSE, wxT("use Unsplit() functions instead") );
if ( winOld == m_windowTwo )
{
}
else
{
- wxFAIL_MSG(T("splitter: attempt to replace a non-existent window"));
+ wxFAIL_MSG(wxT("splitter: attempt to replace a non-existent window"));
return FALSE;
}
wxSize sizeReal = AdjustSize(size);
- m_statbox = new wxStaticBox(parent, id, T(""), pos, sizeReal, style, name);
+ m_statbox = new wxStaticBox(parent, id, wxT(""), pos, sizeReal, style, name);
return TRUE;
}
//
// text->SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_BTNFACE));
- m_text = new wxTextCtrl(this, -1, T(""),
+ m_text = new wxTextCtrl(this, -1, wxT(""),
wxDefaultPosition, wxSize(200, 160),
wxTE_MULTILINE | wxTE_READONLY | wxSUNKEN_BORDER);
m_text->SetFont(wxFont(14, wxROMAN, wxNORMAL, wxNORMAL));
delete m_data;
wxASSERT_MSG( m_children.IsEmpty(),
- T("please call DeleteChildren() before deleting the item") );
+ wxT("please call DeleteChildren() before deleting the item") );
}
void wxGenericTreeItem::DeleteChildren(wxTreeCtrl *tree)
size_t wxTreeCtrl::GetChildrenCount(const wxTreeItemId& item, bool recursively)
{
- wxCHECK_MSG( item.IsOk(), 0u, T("invalid tree item") );
+ wxCHECK_MSG( item.IsOk(), 0u, wxT("invalid tree item") );
return item.m_pItem->GetChildrenCount(recursively);
}
wxString wxTreeCtrl::GetItemText(const wxTreeItemId& item) const
{
- wxCHECK_MSG( item.IsOk(), T(""), T("invalid tree item") );
+ wxCHECK_MSG( item.IsOk(), wxT(""), wxT("invalid tree item") );
return item.m_pItem->GetText();
}
int wxTreeCtrl::GetItemImage(const wxTreeItemId& item,
wxTreeItemIcon which) const
{
- wxCHECK_MSG( item.IsOk(), -1, T("invalid tree item") );
+ wxCHECK_MSG( item.IsOk(), -1, wxT("invalid tree item") );
return item.m_pItem->GetImage(which);
}
wxTreeItemData *wxTreeCtrl::GetItemData(const wxTreeItemId& item) const
{
- wxCHECK_MSG( item.IsOk(), NULL, T("invalid tree item") );
+ wxCHECK_MSG( item.IsOk(), NULL, wxT("invalid tree item") );
return item.m_pItem->GetData();
}
void wxTreeCtrl::SetItemText(const wxTreeItemId& item, const wxString& text)
{
- wxCHECK_RET( item.IsOk(), T("invalid tree item") );
+ wxCHECK_RET( item.IsOk(), wxT("invalid tree item") );
wxClientDC dc(this);
wxGenericTreeItem *pItem = item.m_pItem;
int image,
wxTreeItemIcon which)
{
- wxCHECK_RET( item.IsOk(), T("invalid tree item") );
+ wxCHECK_RET( item.IsOk(), wxT("invalid tree item") );
wxGenericTreeItem *pItem = item.m_pItem;
pItem->SetImage(image, which);
void wxTreeCtrl::SetItemData(const wxTreeItemId& item, wxTreeItemData *data)
{
- wxCHECK_RET( item.IsOk(), T("invalid tree item") );
+ wxCHECK_RET( item.IsOk(), wxT("invalid tree item") );
item.m_pItem->SetData(data);
}
void wxTreeCtrl::SetItemHasChildren(const wxTreeItemId& item, bool has)
{
- wxCHECK_RET( item.IsOk(), T("invalid tree item") );
+ wxCHECK_RET( item.IsOk(), wxT("invalid tree item") );
wxGenericTreeItem *pItem = item.m_pItem;
pItem->SetHasPlus(has);
void wxTreeCtrl::SetItemBold(const wxTreeItemId& item, bool bold)
{
- wxCHECK_RET( item.IsOk(), T("invalid tree item") );
+ wxCHECK_RET( item.IsOk(), wxT("invalid tree item") );
// avoid redrawing the tree if no real change
wxGenericTreeItem *pItem = item.m_pItem;
bool wxTreeCtrl::IsVisible(const wxTreeItemId& WXUNUSED(item)) const
{
- wxFAIL_MSG(T("not implemented"));
+ wxFAIL_MSG(wxT("not implemented"));
return TRUE;
}
bool wxTreeCtrl::ItemHasChildren(const wxTreeItemId& item) const
{
- wxCHECK_MSG( item.IsOk(), FALSE, T("invalid tree item") );
+ wxCHECK_MSG( item.IsOk(), FALSE, wxT("invalid tree item") );
return !item.m_pItem->GetChildren().IsEmpty();
}
bool wxTreeCtrl::IsExpanded(const wxTreeItemId& item) const
{
- wxCHECK_MSG( item.IsOk(), FALSE, T("invalid tree item") );
+ wxCHECK_MSG( item.IsOk(), FALSE, wxT("invalid tree item") );
return item.m_pItem->IsExpanded();
}
bool wxTreeCtrl::IsSelected(const wxTreeItemId& item) const
{
- wxCHECK_MSG( item.IsOk(), FALSE, T("invalid tree item") );
+ wxCHECK_MSG( item.IsOk(), FALSE, wxT("invalid tree item") );
return item.m_pItem->IsSelected();
}
bool wxTreeCtrl::IsBold(const wxTreeItemId& item) const
{
- wxCHECK_MSG( item.IsOk(), FALSE, T("invalid tree item") );
+ wxCHECK_MSG( item.IsOk(), FALSE, wxT("invalid tree item") );
return item.m_pItem->IsBold();
}
wxTreeItemId wxTreeCtrl::GetParent(const wxTreeItemId& item) const
{
- wxCHECK_MSG( item.IsOk(), wxTreeItemId(), T("invalid tree item") );
+ wxCHECK_MSG( item.IsOk(), wxTreeItemId(), wxT("invalid tree item") );
return item.m_pItem->GetParent();
}
wxTreeItemId wxTreeCtrl::GetFirstChild(const wxTreeItemId& item, long& cookie) const
{
- wxCHECK_MSG( item.IsOk(), wxTreeItemId(), T("invalid tree item") );
+ wxCHECK_MSG( item.IsOk(), wxTreeItemId(), wxT("invalid tree item") );
cookie = 0;
return GetNextChild(item, cookie);
wxTreeItemId wxTreeCtrl::GetNextChild(const wxTreeItemId& item, long& cookie) const
{
- wxCHECK_MSG( item.IsOk(), wxTreeItemId(), T("invalid tree item") );
+ wxCHECK_MSG( item.IsOk(), wxTreeItemId(), wxT("invalid tree item") );
wxArrayGenericTreeItems& children = item.m_pItem->GetChildren();
if ( (size_t)cookie < children.Count() )
wxTreeItemId wxTreeCtrl::GetLastChild(const wxTreeItemId& item) const
{
- wxCHECK_MSG( item.IsOk(), wxTreeItemId(), T("invalid tree item") );
+ wxCHECK_MSG( item.IsOk(), wxTreeItemId(), wxT("invalid tree item") );
wxArrayGenericTreeItems& children = item.m_pItem->GetChildren();
return (children.IsEmpty() ? wxTreeItemId() : wxTreeItemId(children.Last()));
wxTreeItemId wxTreeCtrl::GetNextSibling(const wxTreeItemId& item) const
{
- wxCHECK_MSG( item.IsOk(), wxTreeItemId(), T("invalid tree item") );
+ wxCHECK_MSG( item.IsOk(), wxTreeItemId(), wxT("invalid tree item") );
wxGenericTreeItem *i = item.m_pItem;
wxGenericTreeItem *parent = i->GetParent();
wxTreeItemId wxTreeCtrl::GetPrevSibling(const wxTreeItemId& item) const
{
- wxCHECK_MSG( item.IsOk(), wxTreeItemId(), T("invalid tree item") );
+ wxCHECK_MSG( item.IsOk(), wxTreeItemId(), wxT("invalid tree item") );
wxGenericTreeItem *i = item.m_pItem;
wxGenericTreeItem *parent = i->GetParent();
wxTreeItemId wxTreeCtrl::GetFirstVisibleItem() const
{
- wxFAIL_MSG(T("not implemented"));
+ wxFAIL_MSG(wxT("not implemented"));
return wxTreeItemId();
}
wxTreeItemId wxTreeCtrl::GetNextVisible(const wxTreeItemId& item) const
{
- wxCHECK_MSG( item.IsOk(), wxTreeItemId(), T("invalid tree item") );
+ wxCHECK_MSG( item.IsOk(), wxTreeItemId(), wxT("invalid tree item") );
- wxFAIL_MSG(T("not implemented"));
+ wxFAIL_MSG(wxT("not implemented"));
return wxTreeItemId();
}
wxTreeItemId wxTreeCtrl::GetPrevVisible(const wxTreeItemId& item) const
{
- wxCHECK_MSG( item.IsOk(), wxTreeItemId(), T("invalid tree item") );
+ wxCHECK_MSG( item.IsOk(), wxTreeItemId(), wxT("invalid tree item") );
- wxFAIL_MSG(T("not implemented"));
+ wxFAIL_MSG(wxT("not implemented"));
return wxTreeItemId();
}
int image, int selImage,
wxTreeItemData *data)
{
- wxCHECK_MSG( !m_anchor, wxTreeItemId(), T("tree can have only one root") );
+ wxCHECK_MSG( !m_anchor, wxTreeItemId(), wxT("tree can have only one root") );
wxClientDC dc(this);
m_anchor = new wxGenericTreeItem((wxGenericTreeItem *)NULL, text, dc,
int index = parent->GetChildren().Index(idPrevious.m_pItem);
wxASSERT_MSG( index != wxNOT_FOUND,
- T("previous item in wxTreeCtrl::InsertItem() is not a sibling") );
+ wxT("previous item in wxTreeCtrl::InsertItem() is not a sibling") );
return DoInsertItem(parentId, (size_t)++index, text, image, selImage, data);
}
bool unselect_others,
bool extended_select)
{
- wxCHECK_RET( itemId.IsOk(), T("invalid tree item") );
+ wxCHECK_RET( itemId.IsOk(), wxT("invalid tree item") );
bool is_single=!(GetWindowStyleFlag() & wxTR_MULTIPLE);
wxGenericTreeItem *item = itemId.m_pItem;
//wxCHECK_RET( ( (!unselect_others) && is_single),
- // T("this is a single selection tree") );
+ // wxT("this is a single selection tree") );
// to keep going anyhow !!!
if (is_single)
static int tree_ctrl_compare_func(wxGenericTreeItem **item1,
wxGenericTreeItem **item2)
{
- wxCHECK_MSG( s_treeBeingSorted, 0, T("bug in wxTreeCtrl::SortChildren()") );
+ wxCHECK_MSG( s_treeBeingSorted, 0, wxT("bug in wxTreeCtrl::SortChildren()") );
return s_treeBeingSorted->OnCompareItems(*item1, *item2);
}
void wxTreeCtrl::SortChildren(const wxTreeItemId& itemId)
{
- wxCHECK_RET( itemId.IsOk(), T("invalid tree item") );
+ wxCHECK_RET( itemId.IsOk(), wxT("invalid tree item") );
wxGenericTreeItem *item = itemId.m_pItem;
wxCHECK_RET( !s_treeBeingSorted,
- T("wxTreeCtrl::SortChildren is not reentrant") );
+ wxT("wxTreeCtrl::SortChildren is not reentrant") );
wxArrayGenericTreeItems& children = item->GetChildren();
if ( children.Count() > 1 )
}
else
{
- wxFAIL_MSG(T("wxDC::GetFont() failed!"));
+ wxFAIL_MSG(wxT("wxDC::GetFont() failed!"));
}
}
}
else
{
- wxFAIL_MSG(T("wxDC::GetFont() failed!"));
+ wxFAIL_MSG(wxT("wxDC::GetFont() failed!"));
}
}
bool wxWizard::ShowPage(wxWizardPage *page, bool goingForward)
{
- wxASSERT_MSG( page != m_page, T("this is useless") );
+ wxASSERT_MSG( page != m_page, wxT("this is useless") );
// we'll use this to decide whether we have to change the label of this
// button or not (initially the label is "Next")
bool wxWizard::RunWizard(wxWizardPage *firstPage)
{
- wxCHECK_MSG( firstPage, FALSE, T("can't run empty wizard") );
+ wxCHECK_MSG( firstPage, FALSE, wxT("can't run empty wizard") );
// can't return FALSE here because there is no old page
(void)ShowPage(firstPage, TRUE /* forward */);
{
wxASSERT_MSG( (event.GetEventObject() == m_btnNext) ||
(event.GetEventObject() == m_btnPrev),
- T("unknown button") );
+ wxT("unknown button") );
bool forward = event.GetEventObject() == m_btnNext;
{
page = m_page->GetPrev();
- wxASSERT_MSG( page, T("\"<Back\" button should have been disabled") );
+ wxASSERT_MSG( page, wxT("\"<Back\" button should have been disabled") );
}
// just pass to the new page (or may be not - but we don't care here)
void wxapp_install_idle_handler()
{
- wxASSERT_MSG( wxTheApp->m_idleTag == 0, T("attempt to install idle handler twice") );
+ wxASSERT_MSG( wxTheApp->m_idleTag == 0, wxT("attempt to install idle handler twice") );
/* this routine gets called by all event handlers
indicating that the idle is over. */
index |= (g >> (5 - vis->green_prec)) << vis->green_shift;
index |= (b >> (5 - vis->blue_prec)) << vis->blue_shift;
#else
- wxFAIL_MSG( T("Unsupported graphics hardware") );
+ wxFAIL_MSG( wxT("Unsupported graphics hardware") );
#endif
}
m_colorCube[ (r*1024) + (g*32) + b ] = index;
#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT
if (wxDebugContext::CountObjectsLeft() > 0)
{
- wxLogDebug(T("There were memory leaks.\n"));
+ wxLogDebug(wxT("There were memory leaks.\n"));
wxDebugContext::Dump();
wxDebugContext::PrintStatistics();
}
if (!wxTheApp)
{
wxCHECK_MSG( wxApp::GetInitializerFunction(), -1,
- T("wxWindows error: No initializer - use IMPLEMENT_APP macro.\n") );
+ wxT("wxWindows error: No initializer - use IMPLEMENT_APP macro.\n") );
wxAppInitializerFunction app_ini = wxApp::GetInitializerFunction();
wxTheApp = (wxApp*) test_app;
}
- wxCHECK_MSG( wxTheApp, -1, T("wxWindows error: no application object") );
+ wxCHECK_MSG( wxTheApp, -1, wxT("wxWindows error: no application object") );
wxTheApp->argc = argc;
#if wxUSE_UNICODE
return wxIcon(warning_xpm);
default:
- wxFAIL_MSG(T("requested non existent standard icon"));
+ wxFAIL_MSG(wxT("requested non existent standard icon"));
// still fall through
case wxICON_HAND:
m_bitmap = (GdkBitmap*) NULL;
}
- wxFAIL_MSG( T("TODO") );
+ wxFAIL_MSG( wxT("TODO") );
return FALSE;
}
m_bitmap = (GdkBitmap*) NULL;
}
- wxFAIL_MSG( T("not implemented") );
+ wxFAIL_MSG( wxT("not implemented") );
return FALSE;
}
if (!bitmap.Ok()) return FALSE;
- wxCHECK_MSG( bitmap.GetBitmap(), FALSE, T("Cannot create mask from colour bitmap") );
+ wxCHECK_MSG( bitmap.GetBitmap(), FALSE, wxT("Cannot create mask from colour bitmap") );
m_bitmap = gdk_pixmap_new( (GdkWindow*) &gdk_root_parent, bitmap.GetWidth(), bitmap.GetHeight(), 1 );
wxBitmap::wxBitmap( int width, int height, int depth )
{
- wxCHECK_RET( (width > 0) && (height > 0), T("invalid bitmap size") )
+ wxCHECK_RET( (width > 0) && (height > 0), wxT("invalid bitmap size") )
GdkWindow *parent = (GdkWindow*) &gdk_root_parent;
if (depth == -1) depth = gdk_window_get_visual( parent )->depth;
wxCHECK_RET( (depth == gdk_window_get_visual( parent )->depth) ||
- (depth == 1), T("invalid bitmap depth") )
+ (depth == 1), wxT("invalid bitmap depth") )
m_refData = new wxBitmapRefData();
M_BMPDATA->m_mask = (wxMask *) NULL;
wxBitmap::wxBitmap( const char **bits )
{
- wxCHECK_RET( bits != NULL, T("invalid bitmap data") )
+ wxCHECK_RET( bits != NULL, wxT("invalid bitmap data") )
m_refData = new wxBitmapRefData();
wxBitmap::wxBitmap( char **bits )
{
- wxCHECK_RET( bits != NULL, T("invalid bitmap data") )
+ wxCHECK_RET( bits != NULL, wxT("invalid bitmap data") )
m_refData = new wxBitmapRefData();
M_BMPDATA->m_pixmap = gdk_pixmap_create_from_xpm_d( parent, &mask, NULL, (gchar **) bits );
- wxCHECK_RET( M_BMPDATA->m_pixmap, T("couldn't create pixmap") );
+ wxCHECK_RET( M_BMPDATA->m_pixmap, wxT("couldn't create pixmap") );
if (mask)
{
M_BMPDATA->m_height = height;
M_BMPDATA->m_bpp = 1;
- wxCHECK_RET( M_BMPDATA->m_bitmap, T("couldn't create bitmap") );
+ wxCHECK_RET( M_BMPDATA->m_bitmap, wxT("couldn't create bitmap") );
if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this);
}
int wxBitmap::GetHeight() const
{
- wxCHECK_MSG( Ok(), -1, T("invalid bitmap") );
+ wxCHECK_MSG( Ok(), -1, wxT("invalid bitmap") );
return M_BMPDATA->m_height;
}
int wxBitmap::GetWidth() const
{
- wxCHECK_MSG( Ok(), -1, T("invalid bitmap") );
+ wxCHECK_MSG( Ok(), -1, wxT("invalid bitmap") );
return M_BMPDATA->m_width;
}
int wxBitmap::GetDepth() const
{
- wxCHECK_MSG( Ok(), -1, T("invalid bitmap") );
+ wxCHECK_MSG( Ok(), -1, wxT("invalid bitmap") );
return M_BMPDATA->m_bpp;
}
wxMask *wxBitmap::GetMask() const
{
- wxCHECK_MSG( Ok(), (wxMask *) NULL, T("invalid bitmap") );
+ wxCHECK_MSG( Ok(), (wxMask *) NULL, wxT("invalid bitmap") );
return M_BMPDATA->m_mask;
}
void wxBitmap::SetMask( wxMask *mask )
{
- wxCHECK_RET( Ok(), T("invalid bitmap") );
+ wxCHECK_RET( Ok(), wxT("invalid bitmap") );
if (M_BMPDATA->m_mask) delete M_BMPDATA->m_mask;
bool wxBitmap::SaveFile( const wxString &name, int type, wxPalette *WXUNUSED(palette) )
{
- wxCHECK_MSG( Ok(), FALSE, T("invalid bitmap") );
+ wxCHECK_MSG( Ok(), FALSE, wxT("invalid bitmap") );
if (type == wxBITMAP_TYPE_PNG)
{
GdkPixmap *wxBitmap::GetPixmap() const
{
- wxCHECK_MSG( Ok(), (GdkPixmap *) NULL, T("invalid bitmap") );
+ wxCHECK_MSG( Ok(), (GdkPixmap *) NULL, wxT("invalid bitmap") );
return M_BMPDATA->m_pixmap;
}
GdkBitmap *wxBitmap::GetBitmap() const
{
- wxCHECK_MSG( Ok(), (GdkBitmap *) NULL, T("invalid bitmap") );
+ wxCHECK_MSG( Ok(), (GdkBitmap *) NULL, wxT("invalid bitmap") );
return M_BMPDATA->m_bitmap;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxBitmapButton creation failed") );
+ wxFAIL_MSG( wxT("wxBitmapButton creation failed") );
return FALSE;
}
void wxBitmapButton::SetLabel( const wxString &label )
{
- wxCHECK_RET( m_widget != NULL, T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
wxControl::SetLabel( label );
}
wxString wxBitmapButton::GetLabel() const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid button") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid button") );
return wxControl::GetLabel();
}
void wxBitmapButton::SetBitmap()
{
- wxCHECK_RET( m_widget != NULL, T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
wxBitmap the_one;
void wxBitmapButton::SetBitmapDisabled( const wxBitmap& bitmap )
{
- wxCHECK_RET( m_widget != NULL, T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
if ( ! m_disabled.Ok() ) return;
m_disabled = bitmap;
void wxBitmapButton::SetBitmapFocus( const wxBitmap& bitmap )
{
- wxCHECK_RET( m_widget != NULL, T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
if ( ! m_focus.Ok() ) return;
m_focus = bitmap;
void wxBitmapButton::SetBitmapLabel( const wxBitmap& bitmap )
{
- wxCHECK_RET( m_widget != NULL, T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
if (!m_bitmap.Ok()) return;
m_bitmap = bitmap;
void wxBitmapButton::SetBitmapSelected( const wxBitmap& bitmap )
{
- wxCHECK_RET( m_widget != NULL, T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
if ( ! m_selected.Ok() ) return;
m_selected = bitmap;
m_isSelected = FALSE;
SetBitmap();
}
+#endif
-#endif
\ No newline at end of file
{
if (m_refData == NULL)
{
- wxFAIL_MSG( T("invalid brush") );
+ wxFAIL_MSG( wxT("invalid brush") );
return 0;
}
{
if (m_refData == NULL)
{
- wxFAIL_MSG( T("invalid brush") );
+ wxFAIL_MSG( wxT("invalid brush") );
return wxNullColour;
}
{
if (m_refData == NULL)
{
- wxFAIL_MSG( T("invalid brush") );
+ wxFAIL_MSG( wxT("invalid brush") );
return &wxNullBitmap;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxButton creation failed") );
+ wxFAIL_MSG( wxT("wxButton creation failed") );
return FALSE;
}
void wxButton::SetLabel( const wxString &label )
{
- wxCHECK_RET( m_widget != NULL, T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
wxControl::SetLabel( label );
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxCheckBox creation failed") );
+ wxFAIL_MSG( wxT("wxCheckBox creation failed") );
return FALSE;
}
void wxCheckBox::SetValue( bool state )
{
- wxCHECK_RET( m_widgetCheckbox != NULL, T("invalid checkbox") );
+ wxCHECK_RET( m_widgetCheckbox != NULL, wxT("invalid checkbox") );
if (state == GetValue())
return;
bool wxCheckBox::GetValue() const
{
- wxCHECK_MSG( m_widgetCheckbox != NULL, FALSE, T("invalid checkbox") );
+ wxCHECK_MSG( m_widgetCheckbox != NULL, FALSE, wxT("invalid checkbox") );
return GTK_TOGGLE_BUTTON(m_widgetCheckbox)->active;
}
void wxCheckBox::SetLabel( const wxString& label )
{
- wxCHECK_RET( m_widgetLabel != NULL, T("invalid checkbox") );
+ wxCHECK_RET( m_widgetLabel != NULL, wxT("invalid checkbox") );
wxControl::SetLabel( label );
bool wxCheckListBox::IsChecked( int index ) const
{
- wxCHECK_MSG( m_list != NULL, FALSE, T("invalid checklistbox") );
+ wxCHECK_MSG( m_list != NULL, FALSE, wxT("invalid checklistbox") );
GList *child = g_list_nth( m_list->children, index );
if (child)
wxString str = wxString(label->label,*wxConvCurrent);
- return (str[1] == T('X'));
+ return (str[1] == wxT('X'));
}
- wxFAIL_MSG(T("wrong checklistbox index"));
+ wxFAIL_MSG(wxT("wrong checklistbox index"));
return FALSE;
}
void wxCheckListBox::Check( int index, bool check )
{
- wxCHECK_RET( m_list != NULL, T("invalid checklistbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid checklistbox") );
GList *child = g_list_nth( m_list->children, index );
if (child)
wxString str = wxString(label->label,*wxConvCurrent);
- if (check == (str[1] == T('X'))) return;
+ if (check == (str[1] == wxT('X'))) return;
if (check)
- str.SetChar( 1, T('X') );
+ str.SetChar( 1, wxT('X') );
else
- str.SetChar( 1, T('-') );
+ str.SetChar( 1, wxT('-') );
gtk_label_set( label, str.mbc_str() );
return;
}
- wxFAIL_MSG(T("wrong checklistbox index"));
+ wxFAIL_MSG(wxT("wrong checklistbox index"));
}
int wxCheckListBox::GetItemHeight() const
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxChoice creation failed") );
+ wxFAIL_MSG( wxT("wxChoice creation failed") );
return FALSE;
}
void wxChoice::AppendCommon( const wxString &item )
{
- wxCHECK_RET( m_widget != NULL, T("invalid choice") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid choice") );
GtkWidget *menu = gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) );
GtkWidget *menu_item = gtk_menu_item_new_with_label( item.mbc_str() );
void wxChoice::SetClientData( int n, void* clientData )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return;
void* wxChoice::GetClientData( int n )
{
- wxCHECK_MSG( m_widget != NULL, NULL, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return NULL;
void wxChoice::SetClientObject( int n, wxClientData* clientData )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxNode *node = m_clientObjectList.Nth( n );
if (!node) return;
wxClientData* wxChoice::GetClientObject( int n )
{
- wxCHECK_MSG( m_widget != NULL, (wxClientData*) NULL, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, (wxClientData*) NULL, wxT("invalid combobox") );
wxNode *node = m_clientObjectList.Nth( n );
if (!node) return (wxClientData*) NULL;
void wxChoice::Clear()
{
- wxCHECK_RET( m_widget != NULL, T("invalid choice") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid choice") );
gtk_option_menu_remove_menu( GTK_OPTION_MENU(m_widget) );
GtkWidget *menu = gtk_menu_new();
void wxChoice::Delete( int WXUNUSED(n) )
{
- wxFAIL_MSG( T("wxChoice:Delete not implemented") );
+ wxFAIL_MSG( wxT("wxChoice:Delete not implemented") );
}
int wxChoice::FindString( const wxString &string ) const
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid choice") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid choice") );
// If you read this code once and you think you understand
// it, then you are very wrong. Robert Roebling.
if (bin->child) label = GTK_LABEL(bin->child);
if (!label) label = GTK_LABEL( GTK_BUTTON(m_widget)->child );
- wxASSERT_MSG( label != NULL , T("wxChoice: invalid label") );
+ wxASSERT_MSG( label != NULL , wxT("wxChoice: invalid label") );
if (string == wxString(label->label,*wxConvCurrent))
return count;
int wxChoice::GetSelection()
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid choice") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid choice") );
GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) );
int count = 0;
wxString wxChoice::GetString( int n ) const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid choice") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid choice") );
GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) );
int count = 0;
if (bin->child) label = GTK_LABEL(bin->child);
if (!label) label = GTK_LABEL( GTK_BUTTON(m_widget)->child );
- wxASSERT_MSG( label != NULL , T("wxChoice: invalid label") );
+ wxASSERT_MSG( label != NULL , wxT("wxChoice: invalid label") );
return wxString(label->label,*wxConvCurrent);
}
count++;
}
- wxFAIL_MSG( T("wxChoice: invalid index in GetString()") );
+ wxFAIL_MSG( wxT("wxChoice: invalid index in GetString()") );
- return T("");
+ return wxT("");
}
wxString wxChoice::GetStringSelection() const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid choice") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid choice") );
GtkLabel *label = GTK_LABEL( GTK_BUTTON(m_widget)->child );
- wxASSERT_MSG( label != NULL , T("wxChoice: invalid label") );
+ wxASSERT_MSG( label != NULL , wxT("wxChoice: invalid label") );
return wxString(label->label,*wxConvCurrent);
}
int wxChoice::Number() const
{
- wxCHECK_MSG( m_widget != NULL, 0, T("invalid choice") );
+ wxCHECK_MSG( m_widget != NULL, 0, wxT("invalid choice") );
GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) );
int count = 0;
void wxChoice::SetSelection( int n )
{
- wxCHECK_RET( m_widget != NULL, T("invalid choice") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid choice") );
int tmp = n;
gtk_option_menu_set_history( GTK_OPTION_MENU(m_widget), (gint)tmp );
void wxChoice::SetStringSelection( const wxString &string )
{
- wxCHECK_RET( m_widget != NULL, T("invalid choice") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid choice") );
int n = FindString( string );
if (n != -1) SetSelection( n );
bool wxClipboard::Open()
{
- wxCHECK_MSG( !m_open, FALSE, T("clipboard already open") );
+ wxCHECK_MSG( !m_open, FALSE, wxT("clipboard already open") );
m_open = TRUE;
bool wxClipboard::SetData( wxDataObject *data )
{
- wxCHECK_MSG( m_open, FALSE, T("clipboard not open") );
+ wxCHECK_MSG( m_open, FALSE, wxT("clipboard not open") );
- wxCHECK_MSG( data, FALSE, T("data is invalid") );
+ wxCHECK_MSG( data, FALSE, wxT("data is invalid") );
Clear();
bool wxClipboard::AddData( wxDataObject *data )
{
- wxCHECK_MSG( m_open, FALSE, T("clipboard not open") );
+ wxCHECK_MSG( m_open, FALSE, wxT("clipboard not open") );
- wxCHECK_MSG( data, FALSE, T("data is invalid") );
+ wxCHECK_MSG( data, FALSE, wxT("data is invalid") );
/* if clipboard has been cleared before, create new data broker */
if (!m_dataBroker) m_dataBroker = new wxDataBroker();
/* get native format id of new data object */
GdkAtom format = data->GetFormat().GetAtom();
- wxCHECK_MSG( format, FALSE, T("data has invalid format") );
+ wxCHECK_MSG( format, FALSE, wxT("data has invalid format") );
/* This should happen automatically, but to be on the safe side */
m_ownsClipboard = FALSE;
void wxClipboard::Close()
{
- wxCHECK_RET( m_open, T("clipboard not open") );
+ wxCHECK_RET( m_open, wxT("clipboard not open") );
m_open = FALSE;
}
bool wxClipboard::IsSupported( wxDataFormat format )
{
- wxCHECK_MSG( m_open, FALSE, T("clipboard not open") );
+ wxCHECK_MSG( m_open, FALSE, wxT("clipboard not open") );
/* store requested format to be asked for by callbacks */
m_targetRequested = format.GetAtom();
- wxCHECK_MSG( m_targetRequested, FALSE, T("invalid clipboard format") );
+ wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") );
m_formatSupported = FALSE;
bool wxClipboard::GetData( wxDataObject *data )
{
- wxCHECK_MSG( m_open, FALSE, T("clipboard not open") );
+ wxCHECK_MSG( m_open, FALSE, wxT("clipboard not open") );
/* is data supported by clipboard ? */
m_targetRequested = data->GetFormat().GetAtom();
- wxCHECK_MSG( m_targetRequested, FALSE, T("invalid clipboard format") );
+ wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") );
/* start query */
/* this is a true error as we checked for the presence of such data before */
- wxCHECK_MSG( m_formatSupported, FALSE, T("error retrieving data from clipboard") );
+ wxCHECK_MSG( m_formatSupported, FALSE, wxT("error retrieving data from clipboard") );
return TRUE;
}
m_refData = new wxColourRefData();
if (!gdk_color_parse( colourName.mb_str(), &M_COLDATA->m_color ))
{
- wxFAIL_MSG( T("wxColour: couldn't find colour") );
- wxPrintf( T("Colourname %s.\n"), WXSTRINGCAST colourName );
+ wxFAIL_MSG( wxT("wxColour: couldn't find colour") );
+ wxPrintf( wxT("Colourname %s.\n"), WXSTRINGCAST colourName );
delete m_refData;
m_refData = (wxObjectRefData *) NULL;
unsigned char wxColour::Red() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid colour") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid colour") );
return (unsigned char)(M_COLDATA->m_color.red >> SHIFT);
}
unsigned char wxColour::Green() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid colour") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid colour") );
return (unsigned char)(M_COLDATA->m_color.green >> SHIFT);
}
unsigned char wxColour::Blue() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid colour") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid colour") );
return (unsigned char)(M_COLDATA->m_color.blue >> SHIFT);
}
int wxColour::GetPixel() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid colour") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid colour") );
return M_COLDATA->m_color.pixel;
}
GdkColor *wxColour::GetColor() const
{
- wxCHECK_MSG( Ok(), (GdkColor *) NULL, T("invalid colour") );
+ wxCHECK_MSG( Ok(), (GdkColor *) NULL, wxT("invalid colour") );
return &M_COLDATA->m_color;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxComboBox creation failed") );
+ wxFAIL_MSG( wxT("wxComboBox creation failed") );
return FALSE;
}
void wxComboBox::AppendCommon( const wxString &item )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
void wxComboBox::SetClientData( int n, void* clientData )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return;
void* wxComboBox::GetClientData( int n )
{
- wxCHECK_MSG( m_widget != NULL, NULL, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return NULL;
void wxComboBox::SetClientObject( int n, wxClientData* clientData )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxNode *node = m_clientObjectList.Nth( n );
if (!node) return;
wxClientData* wxComboBox::GetClientObject( int n )
{
- wxCHECK_MSG( m_widget != NULL, (wxClientData*)NULL, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, (wxClientData*)NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return (wxClientData*) NULL;
void wxComboBox::Clear()
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
gtk_list_clear_items( GTK_LIST(list), 0, Number() );
void wxComboBox::Delete( int n )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkList *listbox = GTK_LIST( GTK_COMBO(m_widget)->list );
if (!child)
{
- wxFAIL_MSG(T("wrong index"));
+ wxFAIL_MSG(wxT("wrong index"));
return;
}
int wxComboBox::FindString( const wxString &item )
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
int wxComboBox::GetSelection() const
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
wxString wxComboBox::GetString( int n ) const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
}
else
{
- wxFAIL_MSG( T("wxComboBox: wrong index") );
+ wxFAIL_MSG( wxT("wxComboBox: wrong index") );
}
return str;
wxString wxComboBox::GetStringSelection() const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
return tmp;
}
- wxFAIL_MSG( T("wxComboBox: no selection") );
+ wxFAIL_MSG( wxT("wxComboBox: no selection") );
- return T("");
+ return wxT("");
}
int wxComboBox::Number() const
{
- wxCHECK_MSG( m_widget != NULL, 0, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, 0, wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
void wxComboBox::SetSelection( int n )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
DisableEvents();
void wxComboBox::SetStringSelection( const wxString &string )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
int res = FindString( string );
if (res == -1) return;
void wxComboBox::SetValue( const wxString& value )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
- wxString tmp = T("");
+ wxString tmp = wxT("");
if (!value.IsNull()) tmp = value;
gtk_entry_set_text( GTK_ENTRY(entry), tmp.mbc_str() );
}
void wxComboBox::Copy()
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
#if (GTK_MINOR_VERSION > 0)
void wxComboBox::Cut()
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
#if (GTK_MINOR_VERSION > 0)
void wxComboBox::Paste()
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
#if (GTK_MINOR_VERSION > 0)
void wxComboBox::SetInsertionPoint( long pos )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
gtk_entry_set_position( GTK_ENTRY(entry), (int)pos );
void wxComboBox::SetInsertionPointEnd()
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
SetInsertionPoint( -1 );
}
void wxComboBox::Replace( long from, long to, const wxString& value )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
// FIXME: not quite sure how to do this method right in multibyte mode
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
void wxComboBox::Remove(long from, long to)
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
gtk_editable_delete_text( GTK_EDITABLE(entry), (gint)from, (gint)to );
void wxControl::SetLabel( const wxString &label )
{
m_label.Empty();
- for ( const wxChar *pc = label; *pc != T('\0'); pc++ )
+ for ( const wxChar *pc = label; *pc != wxT('\0'); pc++ )
{
- if ( *pc == T('&') )
+ if ( *pc == wxT('&') )
{
pc++; // skip it
#if 0 // it would be unused anyhow for now - kbd interface not done yet
- if ( *pc != T('&') ) m_chAccel = *pc;
+ if ( *pc != wxT('&') ) m_chAccel = *pc;
#endif
}
m_label << *pc;
case wxCURSOR_BASED_ARROW_DOWN: gdk_cur = GDK_BASED_ARROW_DOWN; break;
*/
default:
- wxFAIL_MSG(T("unsupported cursor type"));
+ wxFAIL_MSG(wxT("unsupported cursor type"));
// will use the standard one
case wxCURSOR_ARROW:
return;
wxASSERT_MSG( !gs_savedCursor.Ok(),
- T("forgot to call wxEndBusyCursor, will leak memory") );
+ wxT("forgot to call wxEndBusyCursor, will leak memory") );
gs_savedCursor = g_globalCursor;
wxPalette wxNullPalette;
/* Default window names */
-const wxChar *wxButtonNameStr = T("button");
-const wxChar *wxCanvasNameStr = T("canvas");
-const wxChar *wxCheckBoxNameStr = T("check");
-const wxChar *wxChoiceNameStr = T("choice");
-const wxChar *wxComboBoxNameStr = T("comboBox");
-const wxChar *wxDialogNameStr = T("dialog");
-const wxChar *wxFrameNameStr = T("frame");
-const wxChar *wxGaugeNameStr = T("gauge");
-const wxChar *wxStaticBoxNameStr = T("groupBox");
-const wxChar *wxListBoxNameStr = T("listBox");
-const wxChar *wxStaticTextNameStr = T("message");
-const wxChar *wxStaticBitmapNameStr = T("message");
-const wxChar *wxMultiTextNameStr = T("multitext");
-const wxChar *wxPanelNameStr = T("panel");
-const wxChar *wxRadioBoxNameStr = T("radioBox");
-const wxChar *wxRadioButtonNameStr = T("radioButton");
-const wxChar *wxBitmapRadioButtonNameStr = T("radioButton");
-const wxChar *wxScrollBarNameStr = T("scrollBar");
-const wxChar *wxSliderNameStr = T("slider");
-const wxChar *wxStaticNameStr = T("static");
-const wxChar *wxTextCtrlWindowNameStr = T("textWindow");
-const wxChar *wxTextCtrlNameStr = T("text");
-const wxChar *wxVirtListBoxNameStr = T("virtListBox");
-const wxChar *wxButtonBarNameStr = T("buttonbar");
-const wxChar *wxEnhDialogNameStr = T("Shell");
-const wxChar *wxToolBarNameStr = T("toolbar");
-const wxChar *wxStatusLineNameStr = T("status_line");
-const wxChar *wxGetTextFromUserPromptStr = T("Input Text");
-const wxChar *wxMessageBoxCaptionStr = T("Message");
-const wxChar *wxFileSelectorPromptStr = T("Select a file");
-const wxChar *wxFileSelectorDefaultWildcardStr = T("*");
-const wxChar *wxInternalErrorStr = T("wxWindows Internal Error");
-const wxChar *wxFatalErrorStr = T("wxWindows Fatal Error");
-const wxChar *wxDirDialogNameStr = T("wxDirCtrl");
-const wxChar *wxDirDialogDefaultFolderStr = T("/");
+const wxChar *wxButtonNameStr = wxT("button");
+const wxChar *wxCanvasNameStr = wxT("canvas");
+const wxChar *wxCheckBoxNameStr = wxT("check");
+const wxChar *wxChoiceNameStr = wxT("choice");
+const wxChar *wxComboBoxNameStr = wxT("comboBox");
+const wxChar *wxDialogNameStr = wxT("dialog");
+const wxChar *wxFrameNameStr = wxT("frame");
+const wxChar *wxGaugeNameStr = wxT("gauge");
+const wxChar *wxStaticBoxNameStr = wxT("groupBox");
+const wxChar *wxListBoxNameStr = wxT("listBox");
+const wxChar *wxStaticTextNameStr = wxT("message");
+const wxChar *wxStaticBitmapNameStr = wxT("message");
+const wxChar *wxMultiTextNameStr = wxT("multitext");
+const wxChar *wxPanelNameStr = wxT("panel");
+const wxChar *wxRadioBoxNameStr = wxT("radioBox");
+const wxChar *wxRadioButtonNameStr = wxT("radioButton");
+const wxChar *wxBitmapRadioButtonNameStr = wxT("radioButton");
+const wxChar *wxScrollBarNameStr = wxT("scrollBar");
+const wxChar *wxSliderNameStr = wxT("slider");
+const wxChar *wxStaticNameStr = wxT("static");
+const wxChar *wxTextCtrlWindowNameStr = wxT("textWindow");
+const wxChar *wxTextCtrlNameStr = wxT("text");
+const wxChar *wxVirtListBoxNameStr = wxT("virtListBox");
+const wxChar *wxButtonBarNameStr = wxT("buttonbar");
+const wxChar *wxEnhDialogNameStr = wxT("Shell");
+const wxChar *wxToolBarNameStr = wxT("toolbar");
+const wxChar *wxStatusLineNameStr = wxT("status_line");
+const wxChar *wxGetTextFromUserPromptStr = wxT("Input Text");
+const wxChar *wxMessageBoxCaptionStr = wxT("Message");
+const wxChar *wxFileSelectorPromptStr = wxT("Select a file");
+const wxChar *wxFileSelectorDefaultWildcardStr = wxT("*");
+const wxChar *wxInternalErrorStr = wxT("wxWindows Internal Error");
+const wxChar *wxFatalErrorStr = wxT("wxWindows Fatal Error");
+const wxChar *wxDirDialogNameStr = wxT("wxDirCtrl");
+const wxChar *wxDirDialogDefaultFolderStr = wxT("/");
/* See wx/utils.h */
-const wxChar *wxFloatToStringStr = T("%.2f");
-const wxChar *wxDoubleToStringStr = T("%.2f");
+const wxChar *wxFloatToStringStr = wxT("%.2f");
+const wxChar *wxDoubleToStringStr = wxT("%.2f");
/* Dafaults for wxWindow etc. */
const wxSize wxDefaultSize(-1, -1);
m_type = wxDF_PRIVATE;
m_id = gdk_atom_name( m_atom );
- if (m_id == T("file:ALL"))
+ if (m_id == wxT("file:ALL"))
{
m_type = wxDF_FILENAME;
}
if (m_type == wxDF_TEXT)
{
- m_id = T("STRING");
+ m_id = wxT("STRING");
}
else
if (m_type == wxDF_BITMAP)
{
- m_id = T("image/png");
+ m_id = wxT("image/png");
}
else
if (m_type == wxDF_FILENAME)
{
- m_id = T("file:ALL");
+ m_id = wxT("file:ALL");
}
else
{
- wxFAIL_MSG( T("invalid dataformat") );
+ wxFAIL_MSG( wxT("invalid dataformat") );
}
m_hasAtom = FALSE;
wxPrivateDataObject::wxPrivateDataObject()
{
- wxString id = T("application/");
+ wxString id = wxT("application/");
id += wxTheApp->GetAppName();
m_format.SetId( id );
m_isMemDC = FALSE;
m_font = window->GetFont();
- wxASSERT_MSG( window, T("DC needs a window") );
+ wxASSERT_MSG( window, wxT("DC needs a window") );
GtkWidget *widget = window->m_wxwindow;
- wxASSERT_MSG( widget, T("DC needs a widget") );
+ wxASSERT_MSG( widget, wxT("DC needs a widget") );
m_window = widget->window;
void wxWindowDC::DoFloodFill( long WXUNUSED(x), long WXUNUSED(y),
const wxColour &WXUNUSED(col), int WXUNUSED(style) )
{
- wxFAIL_MSG( T("wxWindowDC::DoFloodFill not implemented") );
+ wxFAIL_MSG( wxT("wxWindowDC::DoFloodFill not implemented") );
}
bool wxWindowDC::DoGetPixel( long WXUNUSED(x1), long WXUNUSED(y1), wxColour *WXUNUSED(col) ) const
{
- wxFAIL_MSG( T("wxWindowDC::DoGetPixel not implemented") );
+ wxFAIL_MSG( wxT("wxWindowDC::DoGetPixel not implemented") );
return FALSE;
}
void wxWindowDC::DoDrawLine( long x1, long y1, long x2, long y2 )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_pen.GetStyle() != wxTRANSPARENT)
{
void wxWindowDC::DoCrossHair( long x, long y )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_pen.GetStyle() != wxTRANSPARENT)
{
void wxWindowDC::DoDrawArc( long x1, long y1, long x2, long y2,
long xc, long yc )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
long xx1 = XLOG2DEV(x1);
long yy1 = YLOG2DEV(y1);
void wxWindowDC::DoDrawEllipticArc( long x, long y, long width, long height, double sa, double ea )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
long xx = XLOG2DEV(x);
long yy = YLOG2DEV(y);
void wxWindowDC::DoDrawPoint( long x, long y )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if ((m_pen.GetStyle() != wxTRANSPARENT) && m_window)
gdk_draw_point( m_window, m_penGC, XLOG2DEV(x), YLOG2DEV(y) );
void wxWindowDC::DoDrawLines( int n, wxPoint points[], long xoffset, long yoffset )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_pen.GetStyle() == wxTRANSPARENT) return;
if (n <= 0) return;
void wxWindowDC::DoDrawPolygon( int n, wxPoint points[], long xoffset, long yoffset, int WXUNUSED(fillStyle) )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (n <= 0) return;
void wxWindowDC::DoDrawRectangle( long x, long y, long width, long height )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
long xx = XLOG2DEV(x);
long yy = YLOG2DEV(y);
void wxWindowDC::DoDrawRoundedRectangle( long x, long y, long width, long height, double radius )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (radius < 0.0) radius = - radius * ((width < height) ? width : height);
void wxWindowDC::DoDrawEllipse( long x, long y, long width, long height )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
long xx = XLOG2DEV(x);
long yy = YLOG2DEV(y);
long x, long y,
bool useMask )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
- wxCHECK_RET( bitmap.Ok(), T("invalid bitmap") );
+ wxCHECK_RET( bitmap.Ok(), wxT("invalid bitmap") );
/* scale/translate size and position */
of the source dc, but scales correctly on the target dc and
knows about possible mask information in a memory dc. */
- wxCHECK_MSG( Ok(), FALSE, T("invalid window dc") );
+ wxCHECK_MSG( Ok(), FALSE, wxT("invalid window dc") );
- wxCHECK_MSG( source, FALSE, T("invalid source dc") );
+ wxCHECK_MSG( source, FALSE, wxT("invalid source dc") );
if (!m_window) return FALSE;
void wxWindowDC::DoDrawText( const wxString &text, long x, long y )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (!m_window) return;
void wxWindowDC::Clear()
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (!m_window) return;
void wxWindowDC::SetPen( const wxPen &pen )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_pen == pen) return;
void wxWindowDC::SetBrush( const wxBrush &brush )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_brush == brush) return;
/* CMB 21/7/98: Added SetBackground. Sets background brush
* for Clear() and bg colour for shapes filled with cross-hatch brush */
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_backgroundBrush == brush) return;
void wxWindowDC::SetLogicalFunction( int function )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_logicalFunction == function) return;
#endif
default:
{
- wxFAIL_MSG( T("unsupported logical function") );
+ wxFAIL_MSG( wxT("unsupported logical function") );
break;
}
}
void wxWindowDC::SetTextForeground( const wxColour &col )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_textForegroundColour == col) return;
void wxWindowDC::SetTextBackground( const wxColour &col )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_textBackgroundColour == col) return;
void wxWindowDC::SetBackgroundMode( int mode )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
m_backgroundMode = mode;
void wxWindowDC::SetPalette( const wxPalette& WXUNUSED(palette) )
{
- wxFAIL_MSG( T("wxWindowDC::SetPalette not implemented") );
+ wxFAIL_MSG( wxT("wxWindowDC::SetPalette not implemented") );
}
void wxWindowDC::DoSetClippingRegion( long x, long y, long width, long height )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
wxDC::DoSetClippingRegion( x, y, width, height );
void wxWindowDC::DoSetClippingRegionAsRegion( const wxRegion ®ion )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (region.Empty())
{
void wxWindowDC::DestroyClippingRegion()
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
wxDC::DestroyClippingRegion();
int wxWindowDC::GetDepth() const
{
- wxFAIL_MSG(T("not implemented"));
+ wxFAIL_MSG(wxT("not implemented"));
return -1;
}
void wxWindowDC::DoDrawSpline( wxList *points )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
wxPoint *p;
double cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4;
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxDialog creation failed") );
+ wxFAIL_MSG( wxT("wxDialog creation failed") );
return FALSE;
}
void wxDialog::SetTitle( const wxString& title )
{
m_title = title;
- if (m_title.IsNull()) m_title = T("");
+ if (m_title.IsNull()) m_title = wxT("");
gtk_window_set_title( GTK_WINDOW(m_widget), m_title.mbc_str() );
}
void wxDialog::OnSize( wxSizeEvent &WXUNUSED(event) )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid dialog") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid dialog") );
#if wxUSE_CONSTRAINTS
if (GetAutoLayout())
void wxDialog::DoSetSize( int x, int y, int width, int height, int sizeFlags )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid dialog") );
- wxASSERT_MSG( (m_wxwindow != NULL), T("invalid dialog") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid dialog") );
+ wxASSERT_MSG( (m_wxwindow != NULL), wxT("invalid dialog") );
if (m_resizing) return; /* I don't like recursions */
m_resizing = TRUE;
void wxDialog::Centre( int direction )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid dialog") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid dialog") );
int x = 0;
int y = 0;
else
if (m_windowStyle & wxDIALOG_MODAL) m_windowStyle -= wxDIALOG_MODAL;
*/
- wxFAIL_MSG( T("wxDialog:SetModal obsolete now") );
+ wxFAIL_MSG( wxT("wxDialog:SetModal obsolete now") );
}
int wxDialog::ShowModal()
{
if (IsModal())
{
- wxFAIL_MSG( T("wxDialog:ShowModal called twice") );
+ wxFAIL_MSG( wxT("wxDialog:ShowModal called twice") );
return GetReturnCode();
}
if (!IsModal())
{
- wxFAIL_MSG( T("wxDialog:EndModal called twice") );
+ wxFAIL_MSG( wxT("wxDialog:EndModal called twice") );
return;
}
if (!m_dragWidget) return FALSE;
/*
- wxPrintf( T("format: %s.\n"), format.GetId().c_str() );
- if (format.GetType() == wxDF_PRIVATE) wxPrintf( T("private data.\n") );
- if (format.GetType() == wxDF_TEXT) wxPrintf( T("text data.\n") );
+ wxPrintf( wxT("format: %s.\n"), format.GetId().c_str() );
+ if (format.GetType() == wxDF_PRIVATE) wxPrintf( wxT("private data.\n") );
+ if (format.GetType() == wxDF_TEXT) wxPrintf( wxT("text data.\n") );
*/
#if wxUSE_THREADS
void wxDropTarget::UnregisterWidget( GtkWidget *widget )
{
- wxCHECK_RET( widget != NULL, T("unregister widget is NULL") );
+ wxCHECK_RET( widget != NULL, wxT("unregister widget is NULL") );
gtk_drag_dest_unset( widget );
void wxDropTarget::RegisterWidget( GtkWidget *widget )
{
- wxCHECK_RET( widget != NULL, T("register widget is NULL") );
+ wxCHECK_RET( widget != NULL, wxT("register widget is NULL") );
/* gtk_drag_dest_set() determines what default behaviour we'd like
GTK to supply. we don't want to specify out targets (=formats)
wxDragResult wxDropSource::DoDragDrop( bool WXUNUSED(bAllowMove) )
{
- wxASSERT_MSG( m_data, T("wxDragSource: no data") );
+ wxASSERT_MSG( m_data, wxT("wxDragSource: no data") );
if (!m_data) return (wxDragResult) wxDragNone;
m_needParent = FALSE;
if (!PreCreation( parent, pos, wxDefaultSize ) ||
- !CreateBase( parent, -1, pos, wxDefaultSize, style | wxDIALOG_MODAL, wxDefaultValidator, T("filedialog") ))
+ !CreateBase( parent, -1, pos, wxDefaultSize, style | wxDIALOG_MODAL, wxDefaultValidator, wxT("filedialog") ))
{
- wxFAIL_MSG( T("wxXX creation failed") );
+ wxFAIL_MSG( wxT("wxXX creation failed") );
return;
}
m_message = message;
- m_path = T("");
+ m_path = wxT("");
m_fileName = defaultFileName;
m_dir = defaultDir;
m_wildCard = wildCard;
gtk_file_selection_hide_fileop_buttons( sel ); // they don't work anyway
m_path.Append(m_dir);
- if( ! m_path.IsEmpty() && m_path.Last()!=T('/') )
+ if( ! m_path.IsEmpty() && m_path.Last()!=wxT('/') )
m_path.Append('/');
m_path.Append(m_fileName);
wxSplitPath(path, &m_dir, &m_fileName, &ext);
if (!ext.IsEmpty())
{
- m_fileName += T(".");
+ m_fileName += wxT(".");
m_fileName += ext;
}
}
int x, int y)
{
// TODO: implement this somehow
- return wxFileSelector(message, default_path, default_filename, T(""),
+ return wxFileSelector(message, default_path, default_filename, wxT(""),
wildcard, flags, parent, x, y);
}
{
wxString filter2;
if ( defaultExtension && !filter )
- filter2 = wxString(T("*.")) + wxString(defaultExtension) ;
+ filter2 = wxString(wxT("*.")) + wxString(defaultExtension) ;
else if ( filter )
filter2 = filter;
wxString str = _("Load %s file");
wxSprintf(prompt, str, what);
- if (*ext == T('.')) ext++;
+ if (*ext == wxT('.')) ext++;
wxChar wild[60];
- wxSprintf(wild, T("*.%s"), ext);
+ wxSprintf(wild, wxT("*.%s"), ext);
return wxFileSelector (prompt, (const wxChar *) NULL, default_name, ext, wild, 0, parent);
}
wxString str = _("Save %s file");
wxSprintf(prompt, str, what);
- if (*ext == T('.')) ext++;
+ if (*ext == wxT('.')) ext++;
wxChar wild[60];
- wxSprintf(wild, T("*.%s"), ext);
+ wxSprintf(wild, wxT("*.%s"), ext);
return wxFileSelector (prompt, (const wxChar *) NULL, default_name, ext, wild, 0, parent);
}
wxString tmp;
wxString fontname( xFontName );
- wxStringTokenizer tn( fontname, T("-") );
+ wxStringTokenizer tn( fontname, wxT("-") );
tn.GetNextToken(); // foundry
M_FONTDATA->m_faceName = tn.GetNextToken(); // courier
tmp = tn.GetNextToken().MakeUpper();
- if (tmp == T("BOLD")) M_FONTDATA->m_weight = wxBOLD;
+ if (tmp == wxT("BOLD")) M_FONTDATA->m_weight = wxBOLD;
tmp = tn.GetNextToken().MakeUpper();
- if (tmp == T("I")) M_FONTDATA->m_style = wxITALIC;
- if (tmp == T("O")) M_FONTDATA->m_style = wxITALIC;
+ if (tmp == wxT("I")) M_FONTDATA->m_style = wxITALIC;
+ if (tmp == wxT("O")) M_FONTDATA->m_style = wxITALIC;
tn.GetNextToken(); // set width
tn.GetNextToken(); // ?
tn.GetNextToken(); // y-res
tmp = tn.GetNextToken().MakeUpper();
- if (tmp == T("M")) M_FONTDATA->m_family = wxMODERN;
- else if (M_FONTDATA->m_faceName == T("TIMES")) M_FONTDATA->m_family = wxROMAN;
- else if (M_FONTDATA->m_faceName == T("HELVETICA")) M_FONTDATA->m_family = wxSWISS;
- else if (M_FONTDATA->m_faceName == T("LUCIDATYPEWRITER")) M_FONTDATA->m_family = wxTELETYPE;
- else if (M_FONTDATA->m_faceName == T("LUCIDA")) M_FONTDATA->m_family = wxDECORATIVE;
- else if (M_FONTDATA->m_faceName == T("UTOPIA")) M_FONTDATA->m_family = wxSCRIPT;
+ if (tmp == wxT("M")) M_FONTDATA->m_family = wxMODERN;
+ else if (M_FONTDATA->m_faceName == wxT("TIMES")) M_FONTDATA->m_family = wxROMAN;
+ else if (M_FONTDATA->m_faceName == wxT("HELVETICA")) M_FONTDATA->m_family = wxSWISS;
+ else if (M_FONTDATA->m_faceName == wxT("LUCIDATYPEWRITER")) M_FONTDATA->m_family = wxTELETYPE;
+ else if (M_FONTDATA->m_faceName == wxT("LUCIDA")) M_FONTDATA->m_family = wxDECORATIVE;
+ else if (M_FONTDATA->m_faceName == wxT("UTOPIA")) M_FONTDATA->m_family = wxSCRIPT;
}
bool wxFont::Create( int pointSize,
int wxFont::GetPointSize() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid font") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
return M_FONTDATA->m_pointSize;
}
wxString wxFont::GetFaceName() const
{
- wxCHECK_MSG( Ok(), T(""), T("invalid font") );
+ wxCHECK_MSG( Ok(), wxT(""), wxT("invalid font") );
return M_FONTDATA->m_faceName;
}
int wxFont::GetFamily() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid font") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
return M_FONTDATA->m_family;
}
int wxFont::GetStyle() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid font") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
return M_FONTDATA->m_style;
}
int wxFont::GetWeight() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid font") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
return M_FONTDATA->m_weight;
}
bool wxFont::GetUnderlined() const
{
- wxCHECK_MSG( Ok(), FALSE, T("invalid font") );
+ wxCHECK_MSG( Ok(), FALSE, wxT("invalid font") );
return M_FONTDATA->m_underlined;
}
wxFontEncoding wxFont::GetEncoding() const
{
- wxCHECK_MSG( Ok(), wxFONTENCODING_DEFAULT, T("invalid font") );
+ wxCHECK_MSG( Ok(), wxFONTENCODING_DEFAULT, wxT("invalid font") );
return M_FONTDATA->m_encoding;
}
{
if (!Ok())
{
- wxFAIL_MSG( T("invalid font") );
+ wxFAIL_MSG( wxT("invalid font") );
return (GdkFont*) NULL;
}
if (!font)
{
- wxLogError(T("could not load any font"));
+ wxLogError(wxT("could not load any font"));
}
return font;
if (!PreCreation( parent, wxDefaultPosition, wxDefaultSize ) ||
!CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE,
- wxDefaultValidator, T("fontdialog") ))
+ wxDefaultValidator, wxT("fontdialog") ))
{
- wxFAIL_MSG( T("wxXX creation failed") );
+ wxFAIL_MSG( wxT("wxXX creation failed") );
return;
}
#ifndef __WXGTK12__
- wxFAIL_MSG( T("TODO") );
+ wxFAIL_MSG( wxT("TODO") );
#else // GTK+ 1.2
wxString m_message( _("Choose font") );
m_widget = gtk_font_selection_dialog_new( m_message.mbc_str() );
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxFrame creation failed") );
+ wxFAIL_MSG( wxT("wxFrame creation failed") );
return FALSE;
}
gtk_window_set_wmclass( GTK_WINDOW(m_widget), name.mb_str(), name.mb_str() );
#ifdef __WXDEBUG__
- debug_focus_in( m_widget, T("wxFrame::m_widget"), name );
+ debug_focus_in( m_widget, wxT("wxFrame::m_widget"), name );
#endif
gtk_window_set_title( GTK_WINDOW(m_widget), title.mbc_str() );
gtk_container_add( GTK_CONTAINER(m_widget), m_mainWidget );
#ifdef __WXDEBUG__
- debug_focus_in( m_mainWidget, T("wxFrame::m_mainWidget"), name );
+ debug_focus_in( m_mainWidget, wxT("wxFrame::m_mainWidget"), name );
#endif
/* m_wxwindow only represents the client area without toolbar and menubar */
gtk_container_add( GTK_CONTAINER(m_mainWidget), m_wxwindow );
#ifdef __WXDEBUG__
- debug_focus_in( m_wxwindow, T("wxFrame::m_wxwindow"), name );
+ debug_focus_in( m_wxwindow, wxT("wxFrame::m_wxwindow"), name );
#endif
/* we donm't allow the frame to get the focus as otherwise
bool wxFrame::Show( bool show )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
if (show && !m_sizeSet)
{
bool wxFrame::Destroy()
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
if (!wxPendingDelete.Member(this)) wxPendingDelete.Append(this);
void wxFrame::DoSetSize( int x, int y, int width, int height, int sizeFlags )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
/* this shouldn't happen: wxFrame, wxMDIParentFrame and wxMDIChildFrame have m_wxwindow */
- wxASSERT_MSG( (m_wxwindow != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_wxwindow != NULL), wxT("invalid frame") );
/* avoid recursions */
if (m_resizing) return;
void wxFrame::Centre( int direction )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
int x = 0;
int y = 0;
void wxFrame::DoGetClientSize( int *width, int *height ) const
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
wxWindow::DoGetClientSize( width, height );
if (height)
void wxFrame::DoSetClientSize( int width, int height )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
/* menu bar */
if (m_frameMenuBar)
m_resizing = TRUE;
/* this shouldn't happen: wxFrame, wxMDIParentFrame and wxMDIChildFrame have m_wxwindow */
- wxASSERT_MSG( (m_wxwindow != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_wxwindow != NULL), wxT("invalid frame") );
m_width = width;
m_height = height;
void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
#if wxUSE_CONSTRAINTS
if (GetAutoLayout())
void wxFrame::SetMenuBar( wxMenuBar *menuBar )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
- wxASSERT_MSG( (m_wxwindow != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
+ wxASSERT_MSG( (m_wxwindow != NULL), wxT("invalid frame") );
m_frameMenuBar = menuBar;
#if wxUSE_TOOLBAR
wxToolBar* wxFrame::CreateToolBar( long style, wxWindowID id, const wxString& name )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
- wxCHECK_MSG( m_frameToolBar == NULL, FALSE, T("recreating toolbar in wxFrame") );
+ wxCHECK_MSG( m_frameToolBar == NULL, FALSE, wxT("recreating toolbar in wxFrame") );
m_insertInClientArea = FALSE;
#if wxUSE_STATUSBAR
wxStatusBar* wxFrame::CreateStatusBar( int number, long style, wxWindowID id, const wxString& name )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
- wxCHECK_MSG( m_frameStatusBar == NULL, FALSE, T("recreating status bar in wxFrame") );
+ wxCHECK_MSG( m_frameStatusBar == NULL, FALSE, wxT("recreating status bar in wxFrame") );
m_frameStatusBar = OnCreateStatusBar( number, style, id, name );
void wxFrame::SetStatusText(const wxString& text, int number)
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
- wxCHECK_RET( m_frameStatusBar != NULL, T("no statusbar to set text for") );
+ wxCHECK_RET( m_frameStatusBar != NULL, wxT("no statusbar to set text for") );
m_frameStatusBar->SetStatusText(text, number);
}
void wxFrame::SetStatusWidths(int n, const int widths_field[] )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
- wxCHECK_RET( m_frameStatusBar != NULL, T("no statusbar to set widths for") );
+ wxCHECK_RET( m_frameStatusBar != NULL, wxT("no statusbar to set widths for") );
m_frameStatusBar->SetStatusWidths(n, widths_field);
}
void wxFrame::SetTitle( const wxString &title )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
m_title = title;
- if (m_title.IsNull()) m_title = T("");
+ if (m_title.IsNull()) m_title = wxT("");
gtk_window_set_title( GTK_WINDOW(m_widget), title.mbc_str() );
}
void wxFrame::SetIcon( const wxIcon &icon )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
m_icon = icon;
if (!icon.Ok()) return;
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxGauge creation failed") );
+ wxFAIL_MSG( wxT("wxGauge creation failed") );
return FALSE;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxListBox creation failed") );
+ wxFAIL_MSG( wxT("wxListBox creation failed") );
return FALSE;
}
void wxListBox::InsertItems(int nItems, const wxString items[], int pos)
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
GList *children = m_list->children;
int length = g_list_length(children);
- wxCHECK_RET( pos <= length, T("invalid index in wxListBox::InsertItems") );
+ wxCHECK_RET( pos <= length, wxT("invalid index in wxListBox::InsertItems") );
// VZ: it seems that GTK 1.0.6 doesn't has a function to insert an item
// into a listbox at the given position, this is why we first delete
void wxListBox::AppendCommon( const wxString &item )
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
GtkWidget *list_item;
void wxListBox::SetClientData( int n, void* clientData )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return;
void* wxListBox::GetClientData( int n )
{
- wxCHECK_MSG( m_widget != NULL, NULL, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return NULL;
void wxListBox::SetClientObject( int n, wxClientData* clientData )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxNode *node = m_clientObjectList.Nth( n );
if (!node) return;
wxClientData* wxListBox::GetClientObject( int n )
{
- wxCHECK_MSG( m_widget != NULL, (wxClientData*)NULL, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, (wxClientData*)NULL, wxT("invalid combobox") );
wxNode *node = m_clientObjectList.Nth( n );
if (!node) return (wxClientData*) NULL;
void wxListBox::Clear()
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
gtk_list_clear_items( m_list, 0, Number() );
void wxListBox::Delete( int n )
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
GList *child = g_list_nth( m_list->children, n );
- wxCHECK_RET( child, T("wrong listbox index") );
+ wxCHECK_RET( child, wxT("wrong listbox index") );
GList *list = g_list_append( (GList*) NULL, child->data );
gtk_list_remove_items( m_list, list );
void wxListBox::Deselect( int n )
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
DisableEvents();
int wxListBox::FindString( const wxString &item ) const
{
- wxCHECK_MSG( m_list != NULL, -1, T("invalid listbox") );
+ wxCHECK_MSG( m_list != NULL, -1, wxT("invalid listbox") );
GList *child = m_list->children;
int count = 0;
int wxListBox::GetSelection() const
{
- wxCHECK_MSG( m_list != NULL, -1, T("invalid listbox") );
+ wxCHECK_MSG( m_list != NULL, -1, wxT("invalid listbox") );
GList *child = m_list->children;
int count = 0;
int wxListBox::GetSelections( wxArrayInt& aSelections ) const
{
- wxCHECK_MSG( m_list != NULL, -1, T("invalid listbox") );
+ wxCHECK_MSG( m_list != NULL, -1, wxT("invalid listbox") );
// get the number of selected items first
GList *child = m_list->children;
wxString wxListBox::GetString( int n ) const
{
- wxCHECK_MSG( m_list != NULL, T(""), T("invalid listbox") );
+ wxCHECK_MSG( m_list != NULL, wxT(""), wxT("invalid listbox") );
GList *child = g_list_nth( m_list->children, n );
if (child)
return str;
}
- wxFAIL_MSG(T("wrong listbox index"));
+ wxFAIL_MSG(wxT("wrong listbox index"));
- return T("");
+ return wxT("");
}
wxString wxListBox::GetStringSelection() const
{
- wxCHECK_MSG( m_list != NULL, T(""), T("invalid listbox") );
+ wxCHECK_MSG( m_list != NULL, wxT(""), wxT("invalid listbox") );
GList *selection = m_list->selection;
if (selection)
return str;
}
- wxFAIL_MSG(T("no listbox selection available"));
- return T("");
+ wxFAIL_MSG(wxT("no listbox selection available"));
+ return wxT("");
}
int wxListBox::Number()
{
- wxCHECK_MSG( m_list != NULL, -1, T("invalid listbox") );
+ wxCHECK_MSG( m_list != NULL, -1, wxT("invalid listbox") );
GList *child = m_list->children;
int count = 0;
bool wxListBox::Selected( int n )
{
- wxCHECK_MSG( m_list != NULL, FALSE, T("invalid listbox") );
+ wxCHECK_MSG( m_list != NULL, FALSE, wxT("invalid listbox") );
GList *target = g_list_nth( m_list->children, n );
if (target)
child = child->next;
}
}
- wxFAIL_MSG(T("wrong listbox index"));
+ wxFAIL_MSG(wxT("wrong listbox index"));
return FALSE;
}
void wxListBox::Set( int WXUNUSED(n), const wxString *WXUNUSED(choices) )
{
- wxFAIL_MSG(T("wxListBox::Set not implemented"));
+ wxFAIL_MSG(wxT("wxListBox::Set not implemented"));
}
void wxListBox::SetFirstItem( int WXUNUSED(n) )
{
- wxFAIL_MSG(T("wxListBox::SetFirstItem not implemented"));
+ wxFAIL_MSG(wxT("wxListBox::SetFirstItem not implemented"));
}
void wxListBox::SetFirstItem( const wxString &WXUNUSED(item) )
{
- wxFAIL_MSG(T("wxListBox::SetFirstItem not implemented"));
+ wxFAIL_MSG(wxT("wxListBox::SetFirstItem not implemented"));
}
void wxListBox::SetSelection( int n, bool select )
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
DisableEvents();
void wxListBox::SetString( int n, const wxString &string )
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
GList *child = g_list_nth( m_list->children, n );
if (child)
}
else
{
- wxFAIL_MSG(T("wrong listbox index"));
+ wxFAIL_MSG(wxT("wrong listbox index"));
}
}
void wxListBox::SetStringSelection( const wxString &string, bool select )
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
SetSelection( FindString(string), select );
}
#if wxUSE_DRAG_AND_DROP
void wxListBox::SetDropTarget( wxDropTarget *dropTarget )
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
#ifndef NEW_GTK_DND_CODE
if (m_dropTarget)
void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar )
{
- wxASSERT_MSG( m_menuBar == NULL, T("Only one menubar allowed") );
+ wxASSERT_MSG( m_menuBar == NULL, wxT("Only one menubar allowed") );
m_menuBar = menu_bar;
m_insertCallback = (wxInsertChildFunction)wxInsertChildInMDI;
if (!PreCreation( parent, wxDefaultPosition, wxDefaultSize ) ||
- !CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, T("wxMDIClientWindow") ))
+ !CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, wxT("wxMDIClientWindow") ))
{
- wxFAIL_MSG( T("wxMDIClientWindow creation failed") );
+ wxFAIL_MSG( wxT("wxMDIClientWindow creation failed") );
return FALSE;
}
m_invokingWindow = (wxWindow*) NULL;
if (!PreCreation( (wxWindow*) NULL, wxDefaultPosition, wxDefaultSize ) ||
- !CreateBase( (wxWindow*) NULL, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, T("menubar") ))
+ !CreateBase( (wxWindow*) NULL, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, wxT("menubar") ))
{
- wxFAIL_MSG( T("wxMenuBar creation failed") );
+ wxFAIL_MSG( wxT("wxMenuBar creation failed") );
return;
}
m_invokingWindow = (wxWindow*) NULL;
if (!PreCreation( (wxWindow*) NULL, wxDefaultPosition, wxDefaultSize ) ||
- !CreateBase( (wxWindow*) NULL, -1, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, T("menubar") ))
+ !CreateBase( (wxWindow*) NULL, -1, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, wxT("menubar") ))
{
- wxFAIL_MSG( T("wxMenuBar creation failed") );
+ wxFAIL_MSG( wxT("wxMenuBar creation failed") );
return;
}
/* GTK 1.2 wants to have "_" instead of "&" for accelerators */
wxString str;
- for ( pc = title; *pc != T('\0'); pc++ )
+ for ( pc = title; *pc != wxT('\0'); pc++ )
{
- if (*pc == T('&'))
+ if (*pc == wxT('&'))
{
#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0)
- str << T('_');
+ str << wxT('_');
}
- else if (*pc == T('/'))
+ else if (*pc == wxT('/'))
{
- str << T('\\');
+ str << wxT('\\');
#endif
}
else
{
#if __WXGTK12__
- if ( *pc == T('_') )
+ if ( *pc == wxT('_') )
{
// underscores must be doubled to prevent them from being
// interpreted as accelerator character prefix by GTK
/* local buffer in multibyte form */
wxString buf;
- buf << T('/') << str.c_str();
+ buf << wxT('/') << str.c_str();
char *cbuf = new char[buf.Length()+1];
strcpy(cbuf, buf.mbc_str());
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
/* in order to get the pointer to the item we need the item text _without_ underscores */
- wxString tmp = T("<main>/");
- for ( pc = str; *pc != T('\0'); pc++ )
+ wxString tmp = wxT("<main>/");
+ for ( pc = str; *pc != wxT('\0'); pc++ )
{
// contrary to the common sense, we must throw out _all_ underscores,
// (i.e. "Hello__World" => "HelloWorld" and not "Hello_World" as we
// might naively think). IMHO it's a bug in GTK+ (VZ)
- while (*pc == T('_'))
+ while (*pc == wxT('_'))
pc++;
tmp << *pc;
}
{
wxMenuItem* item = FindMenuItemById( id );
- wxCHECK_RET( item, T("wxMenuBar::Check: no such item") );
+ wxCHECK_RET( item, wxT("wxMenuBar::Check: no such item") );
item->Check(check);
}
{
wxMenuItem* item = FindMenuItemById( id );
- wxCHECK_MSG( item, FALSE, T("wxMenuBar::IsChecked: no such item") );
+ wxCHECK_MSG( item, FALSE, wxT("wxMenuBar::IsChecked: no such item") );
return item->IsChecked();
}
{
wxMenuItem* item = FindMenuItemById( id );
- wxCHECK_RET( item, T("wxMenuBar::Enable: no such item") );
+ wxCHECK_RET( item, wxT("wxMenuBar::Enable: no such item") );
item->Enable(enable);
}
{
wxMenuItem* item = FindMenuItemById( id );
- wxCHECK_MSG( item, FALSE, T("wxMenuBar::IsEnabled: no such item") );
+ wxCHECK_MSG( item, FALSE, wxT("wxMenuBar::IsEnabled: no such item") );
return item->IsEnabled();
}
{
wxMenuItem* item = FindMenuItemById( id );
- wxCHECK_MSG( item, T(""), T("wxMenuBar::GetLabel: no such item") );
+ wxCHECK_MSG( item, wxT(""), wxT("wxMenuBar::GetLabel: no such item") );
return item->GetText();
}
{
wxMenuItem* item = FindMenuItemById( id );
- wxCHECK_RET( item, T("wxMenuBar::SetLabel: no such item") );
+ wxCHECK_RET( item, wxT("wxMenuBar::SetLabel: no such item") );
item->SetText( label );
}
{
wxNode *node = m_menus.Nth( pos );
- wxCHECK_RET( node, T("menu not found") );
+ wxCHECK_RET( node, wxT("menu not found") );
wxMenu* menu = (wxMenu*)node->Data();
{
wxNode *node = m_menus.Nth( pos );
- wxCHECK_MSG( node, T("invalid"), T("menu not found") );
+ wxCHECK_MSG( node, wxT("invalid"), wxT("menu not found") );
wxMenu* menu = (wxMenu*)node->Data();
{
wxNode *node = m_menus.Nth( pos );
- wxCHECK_RET( node, T("menu not found") );
+ wxCHECK_RET( node, wxT("menu not found") );
wxMenu* menu = (wxMenu*)node->Data();
{
wxMenuItem* item = FindMenuItemById( id );
- wxCHECK_RET( item, T("wxMenuBar::SetHelpString: no such item") );
+ wxCHECK_RET( item, wxT("wxMenuBar::SetHelpString: no such item") );
item->SetHelp( helpString );
}
{
wxMenuItem* item = FindMenuItemById( id );
- wxCHECK_MSG( item, T(""), T("wxMenuBar::GetHelpString: no such item") );
+ wxCHECK_MSG( item, wxT(""), wxT("wxMenuBar::GetHelpString: no such item") );
return item->GetHelp();
}
return;
wxMenuItem* item = menu->FindItem( id );
- wxCHECK_RET( item, T("error in menu item callback") );
+ wxCHECK_RET( item, wxT("error in menu item callback") );
if (item->IsCheckable())
{
void wxMenuItem::SetName( const wxString& str )
{
/* '\t' is the deliminator indicating a hot key */
- m_text = T("");
+ m_text = wxT("");
const wxChar *pc = str;
- for (; (*pc != T('\0')) && (*pc != T('\t')); pc++ )
+ for (; (*pc != wxT('\0')) && (*pc != wxT('\t')); pc++ )
{
- if (*pc == T('&'))
+ if (*pc == wxT('&'))
{
#if (GTK_MINOR_VERSION > 0)
- m_text << T('_');
+ m_text << wxT('_');
}
- else if ( *pc == T('_') ) // escape underscores
+ else if ( *pc == wxT('_') ) // escape underscores
{
- m_text << T("__");
+ m_text << wxT("__");
}
- else if (*pc == T('/')) /* we have to filter out slashes ... */
+ else if (*pc == wxT('/')) /* we have to filter out slashes ... */
{
- m_text << T('\\'); /* ... and replace them with back slashes */
+ m_text << wxT('\\'); /* ... and replace them with back slashes */
#endif
}
else
}
/* only GTK 1.2 knows about hot keys */
- m_hotKey = T("");
+ m_hotKey = wxT("");
#if (GTK_MINOR_VERSION > 0)
- if(*pc == T('\t'))
+ if(*pc == wxT('\t'))
{
pc++;
m_hotKey = pc;
void wxMenuItem::Check( bool check )
{
- wxCHECK_RET( m_menuItem, T("invalid menu item") );
+ wxCHECK_RET( m_menuItem, wxT("invalid menu item") );
- wxCHECK_RET( IsCheckable(), T("Can't check uncheckable item!") )
+ wxCHECK_RET( IsCheckable(), wxT("Can't check uncheckable item!") )
if (check == m_isChecked) return;
void wxMenuItem::Enable( bool enable )
{
- wxCHECK_RET( m_menuItem, T("invalid menu item") );
+ wxCHECK_RET( m_menuItem, wxT("invalid menu item") );
gtk_widget_set_sensitive( m_menuItem, enable );
m_isEnabled = enable;
bool wxMenuItem::IsChecked() const
{
- wxCHECK_MSG( m_menuItem, FALSE, T("invalid menu item") );
+ wxCHECK_MSG( m_menuItem, FALSE, wxT("invalid menu item") );
wxCHECK( IsCheckable(), FALSE ); // can't get state of uncheckable item!
m_eventHandler = this;
m_clientData = (void*) NULL;
- if (m_title.IsNull()) m_title = T("");
- if (m_title != T(""))
+ if (m_title.IsNull()) m_title = wxT("");
+ if (m_title != wxT(""))
{
Append(-2, m_title);
AppendSeparator();
switch (hotkey[0])
{
- case T('a'): /* Alt */
- case T('A'):
- case T('m'): /* Meta */
- case T('M'):
+ case wxT('a'): /* Alt */
+ case wxT('A'):
+ case wxT('m'): /* Meta */
+ case wxT('M'):
{
strcpy( hotbuf, "<alt>" );
wxString last = hotkey.Right(1);
strcat( hotbuf, last.mb_str() );
return hotbuf;
}
- case T('c'): /* Ctrl */
- case T('C'):
- case T('s'): /* Strg, yeah man, I'm German */
- case T('S'):
+ case wxT('c'): /* Ctrl */
+ case wxT('C'):
+ case wxT('s'): /* Strg, yeah man, I'm German */
+ case wxT('S'):
{
strcpy( hotbuf, "<control>" );
wxString last = hotkey.Right(1);
strcat( hotbuf, last.mb_str() );
return hotbuf;
}
- case T('F'): /* function keys */
+ case wxT('F'): /* function keys */
{
strcpy( hotbuf, hotkey.mb_str() );
return hotbuf;
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
/* in order to get the pointer to the item we need the item text _without_ underscores */
- wxString s = T("<main>/");
- for ( const wxChar *pc = text; *pc != T('\0'); pc++ )
+ wxString s = wxT("<main>/");
+ for ( const wxChar *pc = text; *pc != wxT('\0'); pc++ )
{
- while (*pc == T('_')) pc++; /* skip it */
+ while (*pc == wxT('_')) pc++; /* skip it */
s << *pc;
}
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
/* in order to get the pointer to the item we need the item text _without_ underscores */
- wxString s = T("<main>/");
- for ( const wxChar *pc = text; *pc != T('\0'); pc++ )
+ wxString s = wxT("<main>/");
+ for ( const wxChar *pc = text; *pc != wxT('\0'); pc++ )
{
- if (*pc == T('_')) pc++; /* skip it */
+ if (*pc == wxT('_')) pc++; /* skip it */
s << *pc;
}
int wxMenu::FindItem( const wxString itemString ) const
{
- wxString s = T("");
- for ( const wxChar *pc = itemString; *pc != T('\0'); pc++ )
+ wxString s = wxT("");
+ for ( const wxChar *pc = itemString; *pc != wxT('\0'); pc++ )
{
- if (*pc == T('&'))
+ if (*pc == wxT('&'))
{
pc++; /* skip it */
#if (GTK_MINOR_VERSION > 0)
- s << T('_');
+ s << wxT('_');
#endif
}
s << *pc;
{
wxMenuItem *item = FindItem(id);
- wxCHECK_RET( item, T("wxMenu::Enable: no such item") );
+ wxCHECK_RET( item, wxT("wxMenu::Enable: no such item") );
item->Enable(enable);
}
{
wxMenuItem *item = FindItem(id);
- wxCHECK_MSG( item, FALSE, T("wxMenu::IsEnabled: no such item") );
+ wxCHECK_MSG( item, FALSE, wxT("wxMenu::IsEnabled: no such item") );
return item->IsEnabled();
}
{
wxMenuItem *item = FindItem(id);
- wxCHECK_RET( item, T("wxMenu::Check: no such item") );
+ wxCHECK_RET( item, wxT("wxMenu::Check: no such item") );
item->Check(enable);
}
{
wxMenuItem *item = FindItem(id);
- wxCHECK_MSG( item, FALSE, T("wxMenu::IsChecked: no such item") );
+ wxCHECK_MSG( item, FALSE, wxT("wxMenu::IsChecked: no such item") );
return item->IsChecked();
}
{
wxMenuItem *item = FindItem(id);
- wxCHECK_RET( item, T("wxMenu::SetLabel: no such item") );
+ wxCHECK_RET( item, wxT("wxMenu::SetLabel: no such item") );
item->SetText(label);
}
{
wxMenuItem *item = FindItem(id);
- wxCHECK_MSG( item, T(""), T("wxMenu::GetLabel: no such item") );
+ wxCHECK_MSG( item, wxT(""), wxT("wxMenu::GetLabel: no such item") );
return item->GetText();
}
{
wxMenuItem *item = FindItem(id);
- wxCHECK_RET( item, T("wxMenu::SetHelpString: no such item") );
+ wxCHECK_RET( item, wxT("wxMenu::SetHelpString: no such item") );
item->SetHelp( helpString );
}
{
wxMenuItem *item = FindItem(id);
- wxCHECK_MSG( item, T(""), T("wxMenu::GetHelpString: no such item") );
+ wxCHECK_MSG( item, wxT(""), wxT("wxMenu::GetHelpString: no such item") );
return item->GetHelp();
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxNoteBook creation failed") );
+ wxFAIL_MSG( wxT("wxNoteBook creation failed") );
return FALSE;
}
m_widget = gtk_notebook_new();
#ifdef __WXDEBUG__
- debug_focus_in( m_widget, T("wxNotebook::m_widget"), name );
+ debug_focus_in( m_widget, wxT("wxNotebook::m_widget"), name );
#endif
gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 );
int wxNotebook::GetSelection() const
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid notebook") );
GList *pages = GTK_NOTEBOOK(m_widget)->children;
wxString wxNotebook::GetPageText( int page ) const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid notebook") );
wxNotebookPage* nb_page = GetNotebookPage(page);
if (nb_page)
return nb_page->m_text;
else
- return T("");
+ return wxT("");
}
int wxNotebook::GetPageImage( int page ) const
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid notebook") );
wxNotebookPage* nb_page = GetNotebookPage(page);
if (nb_page)
wxNotebookPage* wxNotebook::GetNotebookPage( int page ) const
{
- wxCHECK_MSG( m_widget != NULL, (wxNotebookPage*) NULL, T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, (wxNotebookPage*) NULL, wxT("invalid notebook") );
- wxCHECK_MSG( page < (int)m_pages.GetCount(), (wxNotebookPage*) NULL, T("invalid notebook index") );
+ wxCHECK_MSG( page < (int)m_pages.GetCount(), (wxNotebookPage*) NULL, wxT("invalid notebook index") );
wxNode *node = m_pages.Nth( page );
int wxNotebook::SetSelection( int page )
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid notebook") );
- wxCHECK_MSG( page < (int)m_pages.GetCount(), -1, T("invalid notebook index") );
+ wxCHECK_MSG( page < (int)m_pages.GetCount(), -1, wxT("invalid notebook index") );
int selOld = GetSelection();
void wxNotebook::AdvanceSelection( bool forward )
{
- wxCHECK_RET( m_widget != NULL, T("invalid notebook") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid notebook") );
int sel = GetSelection();
int max = GetPageCount();
bool wxNotebook::SetPageText( int page, const wxString &text )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid notebook") );
wxNotebookPage* nb_page = GetNotebookPage(page);
- wxCHECK_MSG( nb_page, FALSE, T("SetPageText: invalid page index") );
+ wxCHECK_MSG( nb_page, FALSE, wxT("SetPageText: invalid page index") );
nb_page->m_text = text;
void wxNotebook::SetPageSize( const wxSize &WXUNUSED(size) )
{
- wxFAIL_MSG( T("wxNotebook::SetPageSize not implemented") );
+ wxFAIL_MSG( wxT("wxNotebook::SetPageSize not implemented") );
}
void wxNotebook::SetPadding( const wxSize &WXUNUSED(padding) )
{
- wxFAIL_MSG( T("wxNotebook::SetPadding not implemented") );
+ wxFAIL_MSG( wxT("wxNotebook::SetPadding not implemented") );
}
void wxNotebook::SetTabSize(const wxSize& WXUNUSED(sz))
{
- wxFAIL_MSG( T("wxNotebook::SetTabSize not implemented") );
+ wxFAIL_MSG( wxT("wxNotebook::SetTabSize not implemented") );
}
bool wxNotebook::DeleteAllPages()
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid notebook") );
while (m_pages.GetCount() > 0)
DeletePage( m_pages.GetCount()-1 );
bool wxNotebook::InsertPage( int position, wxWindow* win, const wxString& text,
bool select, int imageId )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid notebook") );
wxCHECK_MSG( win->GetParent() == this, FALSE,
- T("Can't add a page whose parent is not the notebook!") );
+ wxT("Can't add a page whose parent is not the notebook!") );
/* don't receive switch page during addition */
gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget),
/* set the label text */
page->m_text = text;
- if (page->m_text.IsEmpty()) page->m_text = T("");
+ if (page->m_text.IsEmpty()) page->m_text = wxT("");
page->m_label = GTK_LABEL( gtk_label_new(page->m_text.mbc_str()) );
gtk_box_pack_end( GTK_BOX(page->m_box), GTK_WIDGET(page->m_label), FALSE, FALSE, 3 );
wxWindow *wxNotebook::GetPage( int page ) const
{
- wxCHECK_MSG( m_widget != NULL, (wxWindow*) NULL, T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, (wxWindow*) NULL, wxT("invalid notebook") );
wxNotebookPage* nb_page = GetNotebookPage(page);
if (!nb_page)
const unsigned char *WXUNUSED(green),
const unsigned char *WXUNUSED(blue) )
{
- wxFAIL_MSG(T("not implemented"));
+ wxFAIL_MSG(wxT("not implemented"));
return FALSE;
}
const unsigned char WXUNUSED(green),
const unsigned char WXUNUSED(blue) ) const
{
- wxFAIL_MSG(T("not implemented"));
+ wxFAIL_MSG(wxT("not implemented"));
return 0;
}
unsigned char *WXUNUSED(green),
unsigned char *WXUNUSED(blue) ) const
{
- wxFAIL_MSG(T("not implemented"));
+ wxFAIL_MSG(wxT("not implemented"));
return 0;
}
int wxPen::GetCap() const
{
- wxCHECK_MSG( Ok(), -1, T("invalid pen") );
+ wxCHECK_MSG( Ok(), -1, wxT("invalid pen") );
return M_PENDATA->m_capStyle;
}
int wxPen::GetJoin() const
{
- wxCHECK_MSG( Ok(), -1, T("invalid pen") );
+ wxCHECK_MSG( Ok(), -1, wxT("invalid pen") );
return M_PENDATA->m_joinStyle;
}
int wxPen::GetStyle() const
{
- wxCHECK_MSG( Ok(), -1, T("invalid pen") );
+ wxCHECK_MSG( Ok(), -1, wxT("invalid pen") );
return M_PENDATA->m_style;
}
int wxPen::GetWidth() const
{
- wxCHECK_MSG( Ok(), -1, T("invalid pen") );
+ wxCHECK_MSG( Ok(), -1, wxT("invalid pen") );
return M_PENDATA->m_width;
}
wxColour &wxPen::GetColour() const
{
- wxCHECK_MSG( Ok(), wxNullColour, T("invalid pen") );
+ wxCHECK_MSG( Ok(), wxNullColour, wxT("invalid pen") );
return M_PENDATA->m_colour;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxRadioBox creation failed") );
+ wxFAIL_MSG( wxT("wxRadioBox creation failed") );
return FALSE;
}
label.Empty();
for ( const wxChar *pc = choices[i]; *pc; pc++ )
{
- if ( *pc != T('&') )
+ if ( *pc != wxT('&') )
label += *pc;
}
if ( m_majorDim == 0 )
{
// avoid dividing by 0 below
- wxFAIL_MSG( T("dimension of radiobox should not be 0!") );
+ wxFAIL_MSG( wxT("dimension of radiobox should not be 0!") );
m_majorDim = 1;
}
bool wxRadioBox::Show( bool show )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid radiobox") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid radiobox") );
wxWindow::Show( show );
int wxRadioBox::FindString( const wxString &s ) const
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid radiobox") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid radiobox") );
int count = 0;
void wxRadioBox::SetFocus()
{
- wxCHECK_RET( m_widget != NULL, T("invalid radiobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid radiobox") );
if (m_boxes.GetCount() == 0) return;
void wxRadioBox::SetSelection( int n )
{
- wxCHECK_RET( m_widget != NULL, T("invalid radiobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid radiobox") );
wxNode *node = m_boxes.Nth( n );
- wxCHECK_RET( node, T("radiobox wrong index") );
+ wxCHECK_RET( node, wxT("radiobox wrong index") );
GtkToggleButton *button = GTK_TOGGLE_BUTTON( node->Data() );
int wxRadioBox::GetSelection(void) const
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid radiobox") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid radiobox") );
int count = 0;
node = node->Next();
}
- wxFAIL_MSG( T("wxRadioBox none selected") );
+ wxFAIL_MSG( wxT("wxRadioBox none selected") );
return -1;
}
wxString wxRadioBox::GetString( int n ) const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid radiobox") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid radiobox") );
wxNode *node = m_boxes.Nth( n );
- wxCHECK_MSG( node, T(""), T("radiobox wrong index") );
+ wxCHECK_MSG( node, wxT(""), wxT("radiobox wrong index") );
GtkButton *button = GTK_BUTTON( node->Data() );
GtkLabel *label = GTK_LABEL( button->child );
wxString wxRadioBox::GetLabel( int item ) const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid radiobox") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid radiobox") );
return GetString( item );
}
void wxRadioBox::SetLabel( const wxString& label )
{
- wxCHECK_RET( m_widget != NULL, T("invalid radiobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid radiobox") );
wxControl::SetLabel( label );
void wxRadioBox::SetLabel( int item, const wxString& label )
{
- wxCHECK_RET( m_widget != NULL, T("invalid radiobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid radiobox") );
wxNode *node = m_boxes.Nth( item );
- wxCHECK_RET( node, T("radiobox wrong index") );
+ wxCHECK_RET( node, wxT("radiobox wrong index") );
GtkButton *button = GTK_BUTTON( node->Data() );
GtkLabel *g_label = GTK_LABEL( button->child );
void wxRadioBox::SetLabel( int WXUNUSED(item), wxBitmap *WXUNUSED(bitmap) )
{
- wxFAIL_MSG(T("wxRadioBox::SetLabel not implemented."));
+ wxFAIL_MSG(wxT("wxRadioBox::SetLabel not implemented."));
}
bool wxRadioBox::Enable( bool enable )
void wxRadioBox::Enable( int item, bool enable )
{
- wxCHECK_RET( m_widget != NULL, T("invalid radiobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid radiobox") );
wxNode *node = m_boxes.Nth( item );
- wxCHECK_RET( node, T("radiobox wrong index") );
+ wxCHECK_RET( node, wxT("radiobox wrong index") );
GtkButton *button = GTK_BUTTON( node->Data() );
GtkWidget *label = button->child;
void wxRadioBox::Show( int item, bool show )
{
- wxCHECK_RET( m_widget != NULL, T("invalid radiobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid radiobox") );
wxNode *node = m_boxes.Nth( item );
- wxCHECK_RET( node, T("radiobox wrong index") );
+ wxCHECK_RET( node, wxT("radiobox wrong index") );
GtkWidget *button = GTK_WIDGET( node->Data() );
wxString wxRadioBox::GetStringSelection() const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid radiobox") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid radiobox") );
wxNode *node = m_boxes.First();
while (node)
node = node->Next();
}
- wxFAIL_MSG( T("wxRadioBox none selected") );
- return T("");
+ wxFAIL_MSG( wxT("wxRadioBox none selected") );
+ return wxT("");
}
bool wxRadioBox::SetStringSelection( const wxString &s )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid radiobox") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid radiobox") );
int res = FindString( s );
if (res == -1) return FALSE;
void wxRadioBox::SetNumberOfRowsOrCols( int WXUNUSED(n) )
{
- wxFAIL_MSG(T("wxRadioBox::SetNumberOfRowsOrCols not implemented."));
+ wxFAIL_MSG(wxT("wxRadioBox::SetNumberOfRowsOrCols not implemented."));
}
void wxRadioBox::DisableEvents()
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxRadioButton creation failed") );
+ wxFAIL_MSG( wxT("wxRadioButton creation failed") );
return FALSE;
}
void wxRadioButton::SetLabel( const wxString& label )
{
- wxCHECK_RET( m_widget != NULL, T("invalid radiobutton") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid radiobutton") );
wxControl::SetLabel( label );
GtkButton *bin = GTK_BUTTON( m_widget );
void wxRadioButton::SetValue( bool val )
{
- wxCHECK_RET( m_widget != NULL, T("invalid radiobutton") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid radiobutton") );
if (val == GetValue())
return;
bool wxRadioButton::GetValue() const
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid radiobutton") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid radiobutton") );
return GTK_TOGGLE_BUTTON(m_widget)->active;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxScrollBar creation failed") );
+ wxFAIL_MSG( wxT("wxScrollBar creation failed") );
return FALSE;
}
case wxSYS_VSCROLL_X: return 15;
}
- wxCHECK_MSG( index, 0, T("wxSystemSettings::GetSystemMetric not fully implemented") );
+ wxCHECK_MSG( index, 0, wxT("wxSystemSettings::GetSystemMetric not fully implemented") );
return 0;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxSlider creation failed") );
+ wxFAIL_MSG( wxT("wxSlider creation failed") );
return FALSE;
}
if (!PreCreation( parent, pos, new_size ) ||
!CreateBase( parent, id, pos, new_size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxXX creation failed") );
+ wxFAIL_MSG( wxT("wxXX creation failed") );
return FALSE;
}
int wxSpinButton::GetMin() const
{
- wxCHECK_MSG( (m_widget != NULL), 0, T("invalid spin button") );
+ wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") );
return (int)ceil(m_adjust->lower);
}
int wxSpinButton::GetMax() const
{
- wxCHECK_MSG( (m_widget != NULL), 0, T("invalid spin button") );
+ wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") );
return (int)ceil(m_adjust->upper);
}
int wxSpinButton::GetValue() const
{
- wxCHECK_MSG( (m_widget != NULL), 0, T("invalid spin button") );
+ wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") );
return (int)ceil(m_adjust->value);
}
void wxSpinButton::SetValue( int value )
{
- wxCHECK_RET( (m_widget != NULL), T("invalid spin button") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") );
float fpos = (float)value;
m_oldPos = fpos;
void wxSpinButton::SetRange(int minVal, int maxVal)
{
- wxCHECK_RET( (m_widget != NULL), T("invalid spin button") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") );
float fmin = (float)minVal;
float fmax = (float)maxVal;
void wxSpinButton::OnSize( wxSizeEvent &WXUNUSED(event) )
{
- wxCHECK_RET( (m_widget != NULL), T("invalid spin button") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") );
m_width = 15;
gtk_widget_set_usize( m_widget, m_width, m_height );
void wxStaticBitmap::CreatePixmapWidget()
{
- wxCHECK_RET( m_bitmap.Ok(), T("should only be called if we have a bitmap") );
+ wxCHECK_RET( m_bitmap.Ok(), wxT("should only be called if we have a bitmap") );
GdkBitmap *mask = (GdkBitmap *) NULL;
if ( m_bitmap.GetMask() )
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxXX creation failed") );
+ wxFAIL_MSG( wxT("wxXX creation failed") );
return FALSE;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxStaticBox creation failed") );
+ wxFAIL_MSG( wxT("wxStaticBox creation failed") );
return FALSE;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxStaticLine creation failed") );
+ wxFAIL_MSG( wxT("wxStaticLine creation failed") );
return FALSE;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxXX creation failed") );
+ wxFAIL_MSG( wxT("wxXX creation failed") );
return FALSE;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxToolBar creation failed") );
+ wxFAIL_MSG( wxT("wxToolBar creation failed") );
return FALSE;
}
m_hasToolAlready = TRUE;
wxCHECK_MSG( bitmap.Ok(), (wxToolBarTool *)NULL,
- T("invalid bitmap for wxToolBar icon") );
+ wxT("invalid bitmap for wxToolBar icon") );
wxCHECK_MSG( bitmap.GetBitmap() == NULL, (wxToolBarTool *)NULL,
- T("wxToolBar doesn't support GdkBitmap") );
+ wxT("wxToolBar doesn't support GdkBitmap") );
wxCHECK_MSG( bitmap.GetPixmap() != NULL, (wxToolBarTool *)NULL,
- T("wxToolBar::Add needs a wxBitmap") );
+ wxT("wxToolBar::Add needs a wxBitmap") );
GtkWidget *tool_pixmap = (GtkWidget *)NULL;
void wxToolBar::ClearTools()
{
- wxFAIL_MSG( T("wxToolBar::ClearTools not implemented") );
+ wxFAIL_MSG( wxT("wxToolBar::ClearTools not implemented") );
}
bool wxToolBar::Realize()
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
}
void wxToolBar::ToggleTool( int toolIndex, bool toggle )
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
}
wxObject *wxToolBar::GetToolClientData( int index ) const
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
return (wxObject*)NULL;
}
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
return FALSE;
}
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
return FALSE;
}
void wxToolBar::SetMargins( int x, int y )
{
- wxCHECK_RET( !m_hasToolAlready, T("wxToolBar::SetMargins must be called before adding tool.") );
+ wxCHECK_RET( !m_hasToolAlready, wxT("wxToolBar::SetMargins must be called before adding tool.") );
if (x > 2) gtk_toolbar_append_space( m_toolbar ); // oh well
void wxToolBar::SetToolPacking( int WXUNUSED(packing) )
{
- wxFAIL_MSG( T("wxToolBar::SetToolPacking not implemented") );
+ wxFAIL_MSG( wxT("wxToolBar::SetToolPacking not implemented") );
}
void wxToolBar::SetToolSeparation( int separation )
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
- return T("");
+ return wxT("");
}
wxString wxToolBar::GetToolShortHelp(int toolIndex)
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
- return T("");
+ return wxT("");
}
void wxToolBar::SetToolLongHelp(int toolIndex, const wxString& helpString)
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
return;
}
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
return;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxTextCtrl creation failed") );
+ wxFAIL_MSG( wxT("wxTextCtrl creation failed") );
return FALSE;
}
wxString wxTextCtrl::GetValue() const
{
- wxCHECK_MSG( m_text != NULL, T(""), T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, wxT(""), wxT("invalid text ctrl") );
wxString tmp;
if (m_windowStyle & wxTE_MULTILINE)
void wxTextCtrl::SetValue( const wxString &value )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
- wxString tmp = T("");
+ wxString tmp = wxT("");
if (!value.IsNull()) tmp = value;
if (m_windowStyle & wxTE_MULTILINE)
{
void wxTextCtrl::WriteText( const wxString &text )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
if (text.IsEmpty()) return;
void wxTextCtrl::AppendText( const wxString &text )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
if (text.IsEmpty()) return;
if (text)
{
- wxString buf(T(""));
+ wxString buf(wxT(""));
long i;
int currentLine = 0;
for (i = 0; currentLine != lineNo && text[i]; i++ )
{
/* If you implement this, don't forget to update the documentation!
* (file docs/latex/wx/text.tex) */
- wxFAIL_MSG( T("wxTextCtrl::OnDropFiles not implemented") );
+ wxFAIL_MSG( wxT("wxTextCtrl::OnDropFiles not implemented") );
}
bool wxTextCtrl::PositionToXY(long pos, long *x, long *y ) const
const wxChar* stop = text.c_str() + pos;
for ( const wxChar *p = text.c_str(); p < stop; p++ )
{
- if (*p == T('\n'))
+ if (*p == wxT('\n'))
{
(*y)++;
*x=0;
void wxTextCtrl::SetInsertionPoint( long pos )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
if (m_windowStyle & wxTE_MULTILINE)
{
void wxTextCtrl::SetInsertionPointEnd()
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
if (m_windowStyle & wxTE_MULTILINE)
SetInsertionPoint(gtk_text_get_length(GTK_TEXT(m_text)));
void wxTextCtrl::SetEditable( bool editable )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
if (m_windowStyle & wxTE_MULTILINE)
gtk_text_set_editable( GTK_TEXT(m_text), editable );
void wxTextCtrl::SetSelection( long from, long to )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
gtk_editable_select_region( GTK_EDITABLE(m_text), (gint)from, (gint)to );
}
long wxTextCtrl::GetInsertionPoint() const
{
- wxCHECK_MSG( m_text != NULL, 0, T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, 0, wxT("invalid text ctrl") );
return (long) GTK_EDITABLE(m_text)->current_pos;
}
long wxTextCtrl::GetLastPosition() const
{
- wxCHECK_MSG( m_text != NULL, 0, T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, 0, wxT("invalid text ctrl") );
int pos = 0;
if (m_windowStyle & wxTE_MULTILINE)
void wxTextCtrl::Remove( long from, long to )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
gtk_editable_delete_text( GTK_EDITABLE(m_text), (gint)from, (gint)to );
}
void wxTextCtrl::Replace( long from, long to, const wxString &value )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
gtk_editable_delete_text( GTK_EDITABLE(m_text), (gint)from, (gint)to );
void wxTextCtrl::Cut()
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
#if (GTK_MINOR_VERSION > 0)
gtk_editable_cut_clipboard( GTK_EDITABLE(m_text) );
void wxTextCtrl::Copy()
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
#if (GTK_MINOR_VERSION > 0)
gtk_editable_copy_clipboard( GTK_EDITABLE(m_text) );
void wxTextCtrl::Paste()
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
#if (GTK_MINOR_VERSION > 0)
gtk_editable_paste_clipboard( GTK_EDITABLE(m_text) );
void wxTextCtrl::Undo()
{
// TODO
- wxFAIL_MSG( T("wxTextCtrl::Undo not implemented") );
+ wxFAIL_MSG( wxT("wxTextCtrl::Undo not implemented") );
}
void wxTextCtrl::Redo()
{
// TODO
- wxFAIL_MSG( T("wxTextCtrl::Redo not implemented") );
+ wxFAIL_MSG( wxT("wxTextCtrl::Redo not implemented") );
}
bool wxTextCtrl::CanUndo() const
{
// TODO
- wxFAIL_MSG( T("wxTextCtrl::CanUndo not implemented") );
+ wxFAIL_MSG( wxT("wxTextCtrl::CanUndo not implemented") );
return FALSE;
}
bool wxTextCtrl::CanRedo() const
{
// TODO
- wxFAIL_MSG( T("wxTextCtrl::CanRedo not implemented") );
+ wxFAIL_MSG( wxT("wxTextCtrl::CanRedo not implemented") );
return FALSE;
}
// selection.
void wxTextCtrl::GetSelection(long* from, long* to) const
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
if (!(GTK_EDITABLE(m_text)->has_selection))
{
bool wxTextCtrl::IsEditable() const
{
- wxCHECK_MSG( m_text != NULL, FALSE, T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, FALSE, wxT("invalid text ctrl") );
return GTK_EDITABLE(m_text)->editable;
}
void wxTextCtrl::Clear()
{
- SetValue( T("") );
+ SetValue( wxT("") );
}
void wxTextCtrl::OnChar( wxKeyEvent &key_event )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
if ((key_event.KeyCode() == WXK_RETURN) && (m_windowStyle & wxPROCESS_ENTER))
{
// the font will change for subsequent text insertiongs
bool wxTextCtrl::SetFont( const wxFont &font )
{
- wxCHECK_MSG( m_text != NULL, FALSE, T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, FALSE, wxT("invalid text ctrl") );
if ( !wxWindowBase::SetFont(font) )
{
bool wxTextCtrl::SetForegroundColour( const wxColour &WXUNUSED(colour) )
{
- wxCHECK_MSG( m_text != NULL, FALSE, T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, FALSE, wxT("invalid text ctrl") );
// doesn't work
return FALSE;
bool wxTextCtrl::SetBackgroundColour( const wxColour &colour )
{
- wxCHECK_MSG( m_text != NULL, FALSE, T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, FALSE, wxT("invalid text ctrl") );
wxControl::SetBackgroundColour( colour );
// Yuck this is really BOTH site and platform dependent
// so we should use some other strategy!
#ifdef __SUN__
- #define DEFAULT_XRESOURCE_DIR T("/usr/openwin/lib/app-defaults")
+ #define DEFAULT_XRESOURCE_DIR wxT("/usr/openwin/lib/app-defaults")
#else
- #define DEFAULT_XRESOURCE_DIR T("/usr/lib/X11/app-defaults")
+ #define DEFAULT_XRESOURCE_DIR wxT("/usr/lib/X11/app-defaults")
#endif
//-----------------------------------------------------------------------------
wxStrcpy(buf, name);
return buf; // Exists so ...
}
- if (*name == T('/'))
+ if (*name == wxT('/'))
wxStrcpy(buf, name);
else
{
// Put in standard place for resource files if not absolute
wxStrcpy(buf, DEFAULT_XRESOURCE_DIR);
- wxStrcat(buf, T("/"));
+ wxStrcat(buf, wxT("/"));
wxStrcat(buf, FileNameFromPath(name));
}
if (create)
if ((home = wxGetUserHome(wxString())) != NULL)
{
wxStrcpy(dest, home);
- if (dest[wxStrlen(dest) - 1] != T('/')) wxStrcat(dest, T("/"));
+ if (dest[wxStrlen(dest) - 1] != wxT('/')) wxStrcat(dest, wxT("/"));
if (filename == NULL)
{
- if ((filename = wxGetenv(T("XENVIRONMENT"))) == NULL) filename = T(".Xdefaults");
+ if ((filename = wxGetenv(wxT("XENVIRONMENT"))) == NULL) filename = wxT(".Xdefaults");
}
else
- if (*filename != T('.')) wxStrcat(dest, T("."));
+ if (*filename != wxT('.')) wxStrcat(dest, wxT("."));
wxStrcat(dest, filename);
}
else
{
- dest[0] = T('\0');
+ dest[0] = wxT('\0');
}
}
return dest;
// Open XENVIRONMENT file, or if not defined, the .Xdefaults,
// and merge into existing database
- if ((environment = wxGetenv(T("XENVIRONMENT"))) == NULL)
+ if ((environment = wxGetenv(wxT("XENVIRONMENT"))) == NULL)
{
size_t len;
#if wxUSE_UNICODE
void wxDeleteResources(const wxChar *file)
{
- wxLogTrace(wxTraceResAlloc, T("Delete: Number = %d"), wxTheResourceCache->Number());
+ wxLogTrace(wxTraceResAlloc, wxT("Delete: Number = %d"), wxTheResourceCache->Number());
wxChar buffer[500];
(void)GetIniFile(buffer, file);
database = (XrmDatabase)node->Data();
else {
database = XrmGetFileDatabase(wxConvCurrent->cWX2MB(buffer));
- wxLogTrace(wxTraceResAlloc, T("Write: Number = %d"), wxTheResourceCache->Number());
+ wxLogTrace(wxTraceResAlloc, wxT("Write: Number = %d"), wxTheResourceCache->Number());
wxTheResourceCache->Append(buffer, (wxObject *)database);
}
char resName[300];
else
{
database = XrmGetFileDatabase(wxConvCurrent->cWX2MB(buffer));
- wxLogTrace(wxTraceResAlloc, T("Get: Number = %d"), wxTheResourceCache->Number());
+ wxLogTrace(wxTraceResAlloc, wxT("Get: Number = %d"), wxTheResourceCache->Number());
wxTheResourceCache->Append(buffer, (wxObject *)database);
}
} else
wxLog::AddTraceMask("focus");
s_done = TRUE;
}
- wxLogTrace(T("FOCUS NOW AT: %s"), name);
+ wxLogTrace(wxT("FOCUS NOW AT: %s"), name);
*/
return FALSE;
void debug_focus_in( GtkWidget* widget, const wxChar* name, const wxChar *window )
{
wxString tmp = name;
- tmp += T(" FROM ");
+ tmp += wxT(" FROM ");
tmp += window;
wxChar *s = new wxChar[tmp.Length()+1];
wxapp_install_idle_handler();
/*
- wxPrintf( T("1) OnButtonPress from ") );
+ wxPrintf( wxT("1) OnButtonPress from ") );
if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
wxPrintf( win->GetClassInfo()->GetClassName() );
- wxPrintf( T(".\n") );
+ wxPrintf( wxT(".\n") );
*/
if (!win->m_hasVMT) return FALSE;
if (g_blockEventsOnDrag) return TRUE;
gtk_widget_grab_focus (win->m_wxwindow);
/*
- wxPrintf( T("GrabFocus from ") );
+ wxPrintf( wxT("GrabFocus from ") );
if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
wxPrintf( win->GetClassInfo()->GetClassName() );
- wxPrintf( T(".\n") );
+ wxPrintf( wxT(".\n") );
*/
}
}
/*
- wxPrintf( T("2) OnButtonPress from ") );
+ wxPrintf( wxT("2) OnButtonPress from ") );
if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
wxPrintf( win->GetClassInfo()->GetClassName() );
- wxPrintf( T(".\n") );
+ wxPrintf( wxT(".\n") );
*/
wxEventType event_type = wxEVT_LEFT_DOWN;
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxWindow creation failed") );
+ wxFAIL_MSG( wxT("wxWindow creation failed") );
return FALSE;
}
GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS );
#ifdef __WXDEBUG__
- debug_focus_in( m_widget, T("wxWindow::m_widget"), name );
+ debug_focus_in( m_widget, wxT("wxWindow::m_widget"), name );
#endif
GtkScrolledWindow *scrolledWindow = GTK_SCROLLED_WINDOW(m_widget);
#ifdef __WXDEBUG__
- debug_focus_in( scrolledWindow->hscrollbar, T("wxWindow::hsrcollbar"), name );
- debug_focus_in( scrolledWindow->vscrollbar, T("wxWindow::vsrcollbar"), name );
+ debug_focus_in( scrolledWindow->hscrollbar, wxT("wxWindow::hsrcollbar"), name );
+ debug_focus_in( scrolledWindow->vscrollbar, wxT("wxWindow::vsrcollbar"), name );
#endif
GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass );
m_wxwindow = gtk_myfixed_new();
#ifdef __WXDEBUG__
- debug_focus_in( m_wxwindow, T("wxWindow::m_wxwindow"), name );
+ debug_focus_in( m_wxwindow, wxT("wxWindow::m_wxwindow"), name );
#endif
gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow );
bool wxWindow::PreCreation( wxWindow *parent, const wxPoint &pos, const wxSize &size )
{
- wxCHECK_MSG( !m_needParent || parent, FALSE, T("Need complete parent.") );
+ wxCHECK_MSG( !m_needParent || parent, FALSE, wxT("Need complete parent.") );
/* this turns -1 into 20 so that a minimal window is
visible even although -1,-1 has been given as the
void wxWindow::PostCreation()
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid window") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid window") );
if (m_wxwindow)
{
bool wxWindow::Destroy()
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid window") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid window") );
m_hasVMT = FALSE;
void wxWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid window") );
- wxASSERT_MSG( (m_parent != NULL), T("wxWindow::SetSize requires parent.\n") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid window") );
+ wxASSERT_MSG( (m_parent != NULL), wxT("wxWindow::SetSize requires parent.\n") );
if (m_resizing) return; /* I don't like recursions */
m_resizing = TRUE;
void wxWindow::DoGetSize( int *width, int *height ) const
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (width) (*width) = m_width;
if (height) (*height) = m_height;
void wxWindow::DoSetClientSize( int width, int height )
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (!m_wxwindow)
{
void wxWindow::DoGetClientSize( int *width, int *height ) const
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (!m_wxwindow)
{
void wxWindow::DoGetPosition( int *x, int *y ) const
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (x) (*x) = m_x;
if (y) (*y) = m_y;
void wxWindow::DoClientToScreen( int *x, int *y ) const
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (!m_widget->window) return;
void wxWindow::DoScreenToClient( int *x, int *y ) const
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (!m_widget->window) return;
bool wxWindow::Show( bool show )
{
- wxCHECK_MSG( (m_widget != NULL), FALSE, T("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), FALSE, wxT("invalid window") );
if (!wxWindowBase::Show(show))
{
bool wxWindow::Enable( bool enable )
{
- wxCHECK_MSG( (m_widget != NULL), FALSE, T("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), FALSE, wxT("invalid window") );
if (!wxWindowBase::Enable(enable))
{
int wxWindow::GetCharHeight() const
{
- wxCHECK_MSG( (m_widget != NULL), 12, T("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), 12, wxT("invalid window") );
- wxCHECK_MSG( m_font.Ok(), 12, T("invalid font") );
+ wxCHECK_MSG( m_font.Ok(), 12, wxT("invalid font") );
GdkFont *font = m_font.GetInternalFont( 1.0 );
int wxWindow::GetCharWidth() const
{
- wxCHECK_MSG( (m_widget != NULL), 8, T("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), 8, wxT("invalid window") );
- wxCHECK_MSG( m_font.Ok(), 8, T("invalid font") );
+ wxCHECK_MSG( m_font.Ok(), 8, wxT("invalid font") );
GdkFont *font = m_font.GetInternalFont( 1.0 );
wxFont fontToUse = m_font;
if (theFont) fontToUse = *theFont;
- wxCHECK_RET( fontToUse.Ok(), T("invalid font") );
+ wxCHECK_RET( fontToUse.Ok(), wxT("invalid font") );
GdkFont *font = fontToUse.GetInternalFont( 1.0 );
if (x) (*x) = gdk_string_width( font, string.mbc_str() );
void wxWindow::SetFocus()
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
GtkWidget *connect_widget = GetConnectWidget();
if (connect_widget)
bool wxWindow::Reparent( wxWindowBase *newParentBase )
{
- wxCHECK_MSG( (m_widget != NULL), FALSE, T("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), FALSE, wxT("invalid window") );
wxWindow *oldParent = m_parent,
*newParent = (wxWindow *)newParentBase;
void wxWindow::DoAddChild(wxWindow *child)
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid window") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid window") );
- wxASSERT_MSG( (child != NULL), T("invalid child window") );
+ wxASSERT_MSG( (child != NULL), wxT("invalid child window") );
- wxASSERT_MSG( (m_insertCallback != NULL), T("invalid child insertion function") );
+ wxASSERT_MSG( (m_insertCallback != NULL), wxT("invalid child insertion function") );
/* add to list */
AddChild( child );
void wxWindow::Raise()
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (!m_widget->window) return;
void wxWindow::Lower()
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (!m_widget->window) return;
bool wxWindow::SetCursor( const wxCursor &cursor )
{
- wxCHECK_MSG( (m_widget != NULL), FALSE, T("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), FALSE, wxT("invalid window") );
return wxWindowBase::SetCursor( cursor );
}
void wxWindow::WarpPointer( int x, int y )
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
GtkWidget *connect_widget = GetConnectWidget();
if (connect_widget->window)
void wxWindow::Refresh( bool eraseBackground, const wxRect *rect )
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (!m_widget->window) return;
void wxWindow::Clear()
{
- wxCHECK_RET( m_widget != NULL, T("invalid window") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid window") );
if (!m_widget->window) return;
bool wxWindow::SetBackgroundColour( const wxColour &colour )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid window") );
if (!wxWindowBase::SetBackgroundColour(colour))
{
bool wxWindow::SetForegroundColour( const wxColour &colour )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid window") );
if (!wxWindowBase::SetForegroundColour(colour))
{
bool wxWindow::DoPopupMenu( wxMenu *menu, int x, int y )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid window") );
- wxCHECK_MSG( menu != NULL, FALSE, T("invalid popup-menu") );
+ wxCHECK_MSG( menu != NULL, FALSE, wxT("invalid popup-menu") );
SetInvokingWindow( menu, this );
void wxWindow::SetDropTarget( wxDropTarget *dropTarget )
{
- wxCHECK_RET( m_widget != NULL, T("invalid window") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid window") );
GtkWidget *dnd_widget = GetConnectWidget();
bool wxWindow::SetFont( const wxFont &font )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid window") );
if (!wxWindowBase::SetFont(font))
{
void wxWindow::CaptureMouse()
{
- wxCHECK_RET( m_widget != NULL, T("invalid window") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid window") );
- wxCHECK_RET( g_captureWindow == NULL, T("CaptureMouse called twice") );
+ wxCHECK_RET( g_captureWindow == NULL, wxT("CaptureMouse called twice") );
GtkWidget *connect_widget = GetConnectWidget();
if (!connect_widget->window) return;
void wxWindow::ReleaseMouse()
{
- wxCHECK_RET( m_widget != NULL, T("invalid window") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid window") );
- wxCHECK_RET( g_captureWindow, T("ReleaseMouse called twice") );
+ wxCHECK_RET( g_captureWindow, wxT("ReleaseMouse called twice") );
GtkWidget *connect_widget = GetConnectWidget();
if (!connect_widget->window) return;
void wxWindow::SetScrollbar( int orient, int pos, int thumbVisible,
int range, bool refresh )
{
- wxCHECK_RET( m_widget != NULL, T("invalid window") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid window") );
- wxCHECK_RET( m_wxwindow != NULL, T("window needs client area for scrolling") );
+ wxCHECK_RET( m_wxwindow != NULL, wxT("window needs client area for scrolling") );
m_hasScrolling = TRUE;
void wxWindow::SetScrollPos( int orient, int pos, bool WXUNUSED(refresh) )
{
- wxCHECK_RET( m_widget != NULL, T("invalid window") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid window") );
- wxCHECK_RET( m_wxwindow != NULL, T("window needs client area for scrolling") );
+ wxCHECK_RET( m_wxwindow != NULL, wxT("window needs client area for scrolling") );
if (orient == wxHORIZONTAL)
{
int wxWindow::GetScrollThumb( int orient ) const
{
- wxCHECK_MSG( m_widget != NULL, 0, T("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, 0, wxT("invalid window") );
- wxCHECK_MSG( m_wxwindow != NULL, 0, T("window needs client area for scrolling") );
+ wxCHECK_MSG( m_wxwindow != NULL, 0, wxT("window needs client area for scrolling") );
if (orient == wxHORIZONTAL)
return (int)(m_hAdjust->page_size+0.5);
int wxWindow::GetScrollPos( int orient ) const
{
- wxCHECK_MSG( m_widget != NULL, 0, T("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, 0, wxT("invalid window") );
- wxCHECK_MSG( m_wxwindow != NULL, 0, T("window needs client area for scrolling") );
+ wxCHECK_MSG( m_wxwindow != NULL, 0, wxT("window needs client area for scrolling") );
if (orient == wxHORIZONTAL)
return (int)(m_hAdjust->value+0.5);
int wxWindow::GetScrollRange( int orient ) const
{
- wxCHECK_MSG( m_widget != NULL, 0, T("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, 0, wxT("invalid window") );
- wxCHECK_MSG( m_wxwindow != NULL, 0, T("window needs client area for scrolling") );
+ wxCHECK_MSG( m_wxwindow != NULL, 0, wxT("window needs client area for scrolling") );
if (orient == wxHORIZONTAL)
return (int)(m_hAdjust->upper+0.5);
void wxWindow::ScrollWindow( int dx, int dy, const wxRect* WXUNUSED(rect) )
{
- wxCHECK_RET( m_widget != NULL, T("invalid window") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid window") );
- wxCHECK_RET( m_wxwindow != NULL, T("window needs client area for scrolling") );
+ wxCHECK_RET( m_wxwindow != NULL, wxT("window needs client area for scrolling") );
if (!m_scrollGC)
{
void wxapp_install_idle_handler()
{
- wxASSERT_MSG( wxTheApp->m_idleTag == 0, T("attempt to install idle handler twice") );
+ wxASSERT_MSG( wxTheApp->m_idleTag == 0, wxT("attempt to install idle handler twice") );
/* this routine gets called by all event handlers
indicating that the idle is over. */
index |= (g >> (5 - vis->green_prec)) << vis->green_shift;
index |= (b >> (5 - vis->blue_prec)) << vis->blue_shift;
#else
- wxFAIL_MSG( T("Unsupported graphics hardware") );
+ wxFAIL_MSG( wxT("Unsupported graphics hardware") );
#endif
}
m_colorCube[ (r*1024) + (g*32) + b ] = index;
#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT
if (wxDebugContext::CountObjectsLeft() > 0)
{
- wxLogDebug(T("There were memory leaks.\n"));
+ wxLogDebug(wxT("There were memory leaks.\n"));
wxDebugContext::Dump();
wxDebugContext::PrintStatistics();
}
if (!wxTheApp)
{
wxCHECK_MSG( wxApp::GetInitializerFunction(), -1,
- T("wxWindows error: No initializer - use IMPLEMENT_APP macro.\n") );
+ wxT("wxWindows error: No initializer - use IMPLEMENT_APP macro.\n") );
wxAppInitializerFunction app_ini = wxApp::GetInitializerFunction();
wxTheApp = (wxApp*) test_app;
}
- wxCHECK_MSG( wxTheApp, -1, T("wxWindows error: no application object") );
+ wxCHECK_MSG( wxTheApp, -1, wxT("wxWindows error: no application object") );
wxTheApp->argc = argc;
#if wxUSE_UNICODE
return wxIcon(warning_xpm);
default:
- wxFAIL_MSG(T("requested non existent standard icon"));
+ wxFAIL_MSG(wxT("requested non existent standard icon"));
// still fall through
case wxICON_HAND:
m_bitmap = (GdkBitmap*) NULL;
}
- wxFAIL_MSG( T("TODO") );
+ wxFAIL_MSG( wxT("TODO") );
return FALSE;
}
m_bitmap = (GdkBitmap*) NULL;
}
- wxFAIL_MSG( T("not implemented") );
+ wxFAIL_MSG( wxT("not implemented") );
return FALSE;
}
if (!bitmap.Ok()) return FALSE;
- wxCHECK_MSG( bitmap.GetBitmap(), FALSE, T("Cannot create mask from colour bitmap") );
+ wxCHECK_MSG( bitmap.GetBitmap(), FALSE, wxT("Cannot create mask from colour bitmap") );
m_bitmap = gdk_pixmap_new( (GdkWindow*) &gdk_root_parent, bitmap.GetWidth(), bitmap.GetHeight(), 1 );
wxBitmap::wxBitmap( int width, int height, int depth )
{
- wxCHECK_RET( (width > 0) && (height > 0), T("invalid bitmap size") )
+ wxCHECK_RET( (width > 0) && (height > 0), wxT("invalid bitmap size") )
GdkWindow *parent = (GdkWindow*) &gdk_root_parent;
if (depth == -1) depth = gdk_window_get_visual( parent )->depth;
wxCHECK_RET( (depth == gdk_window_get_visual( parent )->depth) ||
- (depth == 1), T("invalid bitmap depth") )
+ (depth == 1), wxT("invalid bitmap depth") )
m_refData = new wxBitmapRefData();
M_BMPDATA->m_mask = (wxMask *) NULL;
wxBitmap::wxBitmap( const char **bits )
{
- wxCHECK_RET( bits != NULL, T("invalid bitmap data") )
+ wxCHECK_RET( bits != NULL, wxT("invalid bitmap data") )
m_refData = new wxBitmapRefData();
wxBitmap::wxBitmap( char **bits )
{
- wxCHECK_RET( bits != NULL, T("invalid bitmap data") )
+ wxCHECK_RET( bits != NULL, wxT("invalid bitmap data") )
m_refData = new wxBitmapRefData();
M_BMPDATA->m_pixmap = gdk_pixmap_create_from_xpm_d( parent, &mask, NULL, (gchar **) bits );
- wxCHECK_RET( M_BMPDATA->m_pixmap, T("couldn't create pixmap") );
+ wxCHECK_RET( M_BMPDATA->m_pixmap, wxT("couldn't create pixmap") );
if (mask)
{
M_BMPDATA->m_height = height;
M_BMPDATA->m_bpp = 1;
- wxCHECK_RET( M_BMPDATA->m_bitmap, T("couldn't create bitmap") );
+ wxCHECK_RET( M_BMPDATA->m_bitmap, wxT("couldn't create bitmap") );
if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this);
}
int wxBitmap::GetHeight() const
{
- wxCHECK_MSG( Ok(), -1, T("invalid bitmap") );
+ wxCHECK_MSG( Ok(), -1, wxT("invalid bitmap") );
return M_BMPDATA->m_height;
}
int wxBitmap::GetWidth() const
{
- wxCHECK_MSG( Ok(), -1, T("invalid bitmap") );
+ wxCHECK_MSG( Ok(), -1, wxT("invalid bitmap") );
return M_BMPDATA->m_width;
}
int wxBitmap::GetDepth() const
{
- wxCHECK_MSG( Ok(), -1, T("invalid bitmap") );
+ wxCHECK_MSG( Ok(), -1, wxT("invalid bitmap") );
return M_BMPDATA->m_bpp;
}
wxMask *wxBitmap::GetMask() const
{
- wxCHECK_MSG( Ok(), (wxMask *) NULL, T("invalid bitmap") );
+ wxCHECK_MSG( Ok(), (wxMask *) NULL, wxT("invalid bitmap") );
return M_BMPDATA->m_mask;
}
void wxBitmap::SetMask( wxMask *mask )
{
- wxCHECK_RET( Ok(), T("invalid bitmap") );
+ wxCHECK_RET( Ok(), wxT("invalid bitmap") );
if (M_BMPDATA->m_mask) delete M_BMPDATA->m_mask;
bool wxBitmap::SaveFile( const wxString &name, int type, wxPalette *WXUNUSED(palette) )
{
- wxCHECK_MSG( Ok(), FALSE, T("invalid bitmap") );
+ wxCHECK_MSG( Ok(), FALSE, wxT("invalid bitmap") );
if (type == wxBITMAP_TYPE_PNG)
{
GdkPixmap *wxBitmap::GetPixmap() const
{
- wxCHECK_MSG( Ok(), (GdkPixmap *) NULL, T("invalid bitmap") );
+ wxCHECK_MSG( Ok(), (GdkPixmap *) NULL, wxT("invalid bitmap") );
return M_BMPDATA->m_pixmap;
}
GdkBitmap *wxBitmap::GetBitmap() const
{
- wxCHECK_MSG( Ok(), (GdkBitmap *) NULL, T("invalid bitmap") );
+ wxCHECK_MSG( Ok(), (GdkBitmap *) NULL, wxT("invalid bitmap") );
return M_BMPDATA->m_bitmap;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxBitmapButton creation failed") );
+ wxFAIL_MSG( wxT("wxBitmapButton creation failed") );
return FALSE;
}
void wxBitmapButton::SetLabel( const wxString &label )
{
- wxCHECK_RET( m_widget != NULL, T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
wxControl::SetLabel( label );
}
wxString wxBitmapButton::GetLabel() const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid button") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid button") );
return wxControl::GetLabel();
}
void wxBitmapButton::SetBitmap()
{
- wxCHECK_RET( m_widget != NULL, T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
wxBitmap the_one;
void wxBitmapButton::SetBitmapDisabled( const wxBitmap& bitmap )
{
- wxCHECK_RET( m_widget != NULL, T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
if ( ! m_disabled.Ok() ) return;
m_disabled = bitmap;
void wxBitmapButton::SetBitmapFocus( const wxBitmap& bitmap )
{
- wxCHECK_RET( m_widget != NULL, T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
if ( ! m_focus.Ok() ) return;
m_focus = bitmap;
void wxBitmapButton::SetBitmapLabel( const wxBitmap& bitmap )
{
- wxCHECK_RET( m_widget != NULL, T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
if (!m_bitmap.Ok()) return;
m_bitmap = bitmap;
void wxBitmapButton::SetBitmapSelected( const wxBitmap& bitmap )
{
- wxCHECK_RET( m_widget != NULL, T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
if ( ! m_selected.Ok() ) return;
m_selected = bitmap;
m_isSelected = FALSE;
SetBitmap();
}
+#endif
-#endif
\ No newline at end of file
{
if (m_refData == NULL)
{
- wxFAIL_MSG( T("invalid brush") );
+ wxFAIL_MSG( wxT("invalid brush") );
return 0;
}
{
if (m_refData == NULL)
{
- wxFAIL_MSG( T("invalid brush") );
+ wxFAIL_MSG( wxT("invalid brush") );
return wxNullColour;
}
{
if (m_refData == NULL)
{
- wxFAIL_MSG( T("invalid brush") );
+ wxFAIL_MSG( wxT("invalid brush") );
return &wxNullBitmap;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxButton creation failed") );
+ wxFAIL_MSG( wxT("wxButton creation failed") );
return FALSE;
}
void wxButton::SetLabel( const wxString &label )
{
- wxCHECK_RET( m_widget != NULL, T("invalid button") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
wxControl::SetLabel( label );
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxCheckBox creation failed") );
+ wxFAIL_MSG( wxT("wxCheckBox creation failed") );
return FALSE;
}
void wxCheckBox::SetValue( bool state )
{
- wxCHECK_RET( m_widgetCheckbox != NULL, T("invalid checkbox") );
+ wxCHECK_RET( m_widgetCheckbox != NULL, wxT("invalid checkbox") );
if (state == GetValue())
return;
bool wxCheckBox::GetValue() const
{
- wxCHECK_MSG( m_widgetCheckbox != NULL, FALSE, T("invalid checkbox") );
+ wxCHECK_MSG( m_widgetCheckbox != NULL, FALSE, wxT("invalid checkbox") );
return GTK_TOGGLE_BUTTON(m_widgetCheckbox)->active;
}
void wxCheckBox::SetLabel( const wxString& label )
{
- wxCHECK_RET( m_widgetLabel != NULL, T("invalid checkbox") );
+ wxCHECK_RET( m_widgetLabel != NULL, wxT("invalid checkbox") );
wxControl::SetLabel( label );
bool wxCheckListBox::IsChecked( int index ) const
{
- wxCHECK_MSG( m_list != NULL, FALSE, T("invalid checklistbox") );
+ wxCHECK_MSG( m_list != NULL, FALSE, wxT("invalid checklistbox") );
GList *child = g_list_nth( m_list->children, index );
if (child)
wxString str = wxString(label->label,*wxConvCurrent);
- return (str[1] == T('X'));
+ return (str[1] == wxT('X'));
}
- wxFAIL_MSG(T("wrong checklistbox index"));
+ wxFAIL_MSG(wxT("wrong checklistbox index"));
return FALSE;
}
void wxCheckListBox::Check( int index, bool check )
{
- wxCHECK_RET( m_list != NULL, T("invalid checklistbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid checklistbox") );
GList *child = g_list_nth( m_list->children, index );
if (child)
wxString str = wxString(label->label,*wxConvCurrent);
- if (check == (str[1] == T('X'))) return;
+ if (check == (str[1] == wxT('X'))) return;
if (check)
- str.SetChar( 1, T('X') );
+ str.SetChar( 1, wxT('X') );
else
- str.SetChar( 1, T('-') );
+ str.SetChar( 1, wxT('-') );
gtk_label_set( label, str.mbc_str() );
return;
}
- wxFAIL_MSG(T("wrong checklistbox index"));
+ wxFAIL_MSG(wxT("wrong checklistbox index"));
}
int wxCheckListBox::GetItemHeight() const
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxChoice creation failed") );
+ wxFAIL_MSG( wxT("wxChoice creation failed") );
return FALSE;
}
void wxChoice::AppendCommon( const wxString &item )
{
- wxCHECK_RET( m_widget != NULL, T("invalid choice") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid choice") );
GtkWidget *menu = gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) );
GtkWidget *menu_item = gtk_menu_item_new_with_label( item.mbc_str() );
void wxChoice::SetClientData( int n, void* clientData )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return;
void* wxChoice::GetClientData( int n )
{
- wxCHECK_MSG( m_widget != NULL, NULL, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return NULL;
void wxChoice::SetClientObject( int n, wxClientData* clientData )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxNode *node = m_clientObjectList.Nth( n );
if (!node) return;
wxClientData* wxChoice::GetClientObject( int n )
{
- wxCHECK_MSG( m_widget != NULL, (wxClientData*) NULL, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, (wxClientData*) NULL, wxT("invalid combobox") );
wxNode *node = m_clientObjectList.Nth( n );
if (!node) return (wxClientData*) NULL;
void wxChoice::Clear()
{
- wxCHECK_RET( m_widget != NULL, T("invalid choice") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid choice") );
gtk_option_menu_remove_menu( GTK_OPTION_MENU(m_widget) );
GtkWidget *menu = gtk_menu_new();
void wxChoice::Delete( int WXUNUSED(n) )
{
- wxFAIL_MSG( T("wxChoice:Delete not implemented") );
+ wxFAIL_MSG( wxT("wxChoice:Delete not implemented") );
}
int wxChoice::FindString( const wxString &string ) const
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid choice") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid choice") );
// If you read this code once and you think you understand
// it, then you are very wrong. Robert Roebling.
if (bin->child) label = GTK_LABEL(bin->child);
if (!label) label = GTK_LABEL( GTK_BUTTON(m_widget)->child );
- wxASSERT_MSG( label != NULL , T("wxChoice: invalid label") );
+ wxASSERT_MSG( label != NULL , wxT("wxChoice: invalid label") );
if (string == wxString(label->label,*wxConvCurrent))
return count;
int wxChoice::GetSelection()
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid choice") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid choice") );
GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) );
int count = 0;
wxString wxChoice::GetString( int n ) const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid choice") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid choice") );
GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) );
int count = 0;
if (bin->child) label = GTK_LABEL(bin->child);
if (!label) label = GTK_LABEL( GTK_BUTTON(m_widget)->child );
- wxASSERT_MSG( label != NULL , T("wxChoice: invalid label") );
+ wxASSERT_MSG( label != NULL , wxT("wxChoice: invalid label") );
return wxString(label->label,*wxConvCurrent);
}
count++;
}
- wxFAIL_MSG( T("wxChoice: invalid index in GetString()") );
+ wxFAIL_MSG( wxT("wxChoice: invalid index in GetString()") );
- return T("");
+ return wxT("");
}
wxString wxChoice::GetStringSelection() const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid choice") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid choice") );
GtkLabel *label = GTK_LABEL( GTK_BUTTON(m_widget)->child );
- wxASSERT_MSG( label != NULL , T("wxChoice: invalid label") );
+ wxASSERT_MSG( label != NULL , wxT("wxChoice: invalid label") );
return wxString(label->label,*wxConvCurrent);
}
int wxChoice::Number() const
{
- wxCHECK_MSG( m_widget != NULL, 0, T("invalid choice") );
+ wxCHECK_MSG( m_widget != NULL, 0, wxT("invalid choice") );
GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) );
int count = 0;
void wxChoice::SetSelection( int n )
{
- wxCHECK_RET( m_widget != NULL, T("invalid choice") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid choice") );
int tmp = n;
gtk_option_menu_set_history( GTK_OPTION_MENU(m_widget), (gint)tmp );
void wxChoice::SetStringSelection( const wxString &string )
{
- wxCHECK_RET( m_widget != NULL, T("invalid choice") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid choice") );
int n = FindString( string );
if (n != -1) SetSelection( n );
bool wxClipboard::Open()
{
- wxCHECK_MSG( !m_open, FALSE, T("clipboard already open") );
+ wxCHECK_MSG( !m_open, FALSE, wxT("clipboard already open") );
m_open = TRUE;
bool wxClipboard::SetData( wxDataObject *data )
{
- wxCHECK_MSG( m_open, FALSE, T("clipboard not open") );
+ wxCHECK_MSG( m_open, FALSE, wxT("clipboard not open") );
- wxCHECK_MSG( data, FALSE, T("data is invalid") );
+ wxCHECK_MSG( data, FALSE, wxT("data is invalid") );
Clear();
bool wxClipboard::AddData( wxDataObject *data )
{
- wxCHECK_MSG( m_open, FALSE, T("clipboard not open") );
+ wxCHECK_MSG( m_open, FALSE, wxT("clipboard not open") );
- wxCHECK_MSG( data, FALSE, T("data is invalid") );
+ wxCHECK_MSG( data, FALSE, wxT("data is invalid") );
/* if clipboard has been cleared before, create new data broker */
if (!m_dataBroker) m_dataBroker = new wxDataBroker();
/* get native format id of new data object */
GdkAtom format = data->GetFormat().GetAtom();
- wxCHECK_MSG( format, FALSE, T("data has invalid format") );
+ wxCHECK_MSG( format, FALSE, wxT("data has invalid format") );
/* This should happen automatically, but to be on the safe side */
m_ownsClipboard = FALSE;
void wxClipboard::Close()
{
- wxCHECK_RET( m_open, T("clipboard not open") );
+ wxCHECK_RET( m_open, wxT("clipboard not open") );
m_open = FALSE;
}
bool wxClipboard::IsSupported( wxDataFormat format )
{
- wxCHECK_MSG( m_open, FALSE, T("clipboard not open") );
+ wxCHECK_MSG( m_open, FALSE, wxT("clipboard not open") );
/* store requested format to be asked for by callbacks */
m_targetRequested = format.GetAtom();
- wxCHECK_MSG( m_targetRequested, FALSE, T("invalid clipboard format") );
+ wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") );
m_formatSupported = FALSE;
bool wxClipboard::GetData( wxDataObject *data )
{
- wxCHECK_MSG( m_open, FALSE, T("clipboard not open") );
+ wxCHECK_MSG( m_open, FALSE, wxT("clipboard not open") );
/* is data supported by clipboard ? */
m_targetRequested = data->GetFormat().GetAtom();
- wxCHECK_MSG( m_targetRequested, FALSE, T("invalid clipboard format") );
+ wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") );
/* start query */
/* this is a true error as we checked for the presence of such data before */
- wxCHECK_MSG( m_formatSupported, FALSE, T("error retrieving data from clipboard") );
+ wxCHECK_MSG( m_formatSupported, FALSE, wxT("error retrieving data from clipboard") );
return TRUE;
}
m_refData = new wxColourRefData();
if (!gdk_color_parse( colourName.mb_str(), &M_COLDATA->m_color ))
{
- wxFAIL_MSG( T("wxColour: couldn't find colour") );
- wxPrintf( T("Colourname %s.\n"), WXSTRINGCAST colourName );
+ wxFAIL_MSG( wxT("wxColour: couldn't find colour") );
+ wxPrintf( wxT("Colourname %s.\n"), WXSTRINGCAST colourName );
delete m_refData;
m_refData = (wxObjectRefData *) NULL;
unsigned char wxColour::Red() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid colour") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid colour") );
return (unsigned char)(M_COLDATA->m_color.red >> SHIFT);
}
unsigned char wxColour::Green() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid colour") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid colour") );
return (unsigned char)(M_COLDATA->m_color.green >> SHIFT);
}
unsigned char wxColour::Blue() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid colour") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid colour") );
return (unsigned char)(M_COLDATA->m_color.blue >> SHIFT);
}
int wxColour::GetPixel() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid colour") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid colour") );
return M_COLDATA->m_color.pixel;
}
GdkColor *wxColour::GetColor() const
{
- wxCHECK_MSG( Ok(), (GdkColor *) NULL, T("invalid colour") );
+ wxCHECK_MSG( Ok(), (GdkColor *) NULL, wxT("invalid colour") );
return &M_COLDATA->m_color;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxComboBox creation failed") );
+ wxFAIL_MSG( wxT("wxComboBox creation failed") );
return FALSE;
}
void wxComboBox::AppendCommon( const wxString &item )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
void wxComboBox::SetClientData( int n, void* clientData )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return;
void* wxComboBox::GetClientData( int n )
{
- wxCHECK_MSG( m_widget != NULL, NULL, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return NULL;
void wxComboBox::SetClientObject( int n, wxClientData* clientData )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxNode *node = m_clientObjectList.Nth( n );
if (!node) return;
wxClientData* wxComboBox::GetClientObject( int n )
{
- wxCHECK_MSG( m_widget != NULL, (wxClientData*)NULL, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, (wxClientData*)NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return (wxClientData*) NULL;
void wxComboBox::Clear()
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
gtk_list_clear_items( GTK_LIST(list), 0, Number() );
void wxComboBox::Delete( int n )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkList *listbox = GTK_LIST( GTK_COMBO(m_widget)->list );
if (!child)
{
- wxFAIL_MSG(T("wrong index"));
+ wxFAIL_MSG(wxT("wrong index"));
return;
}
int wxComboBox::FindString( const wxString &item )
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
int wxComboBox::GetSelection() const
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
wxString wxComboBox::GetString( int n ) const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
}
else
{
- wxFAIL_MSG( T("wxComboBox: wrong index") );
+ wxFAIL_MSG( wxT("wxComboBox: wrong index") );
}
return str;
wxString wxComboBox::GetStringSelection() const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
return tmp;
}
- wxFAIL_MSG( T("wxComboBox: no selection") );
+ wxFAIL_MSG( wxT("wxComboBox: no selection") );
- return T("");
+ return wxT("");
}
int wxComboBox::Number() const
{
- wxCHECK_MSG( m_widget != NULL, 0, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, 0, wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
void wxComboBox::SetSelection( int n )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
DisableEvents();
void wxComboBox::SetStringSelection( const wxString &string )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
int res = FindString( string );
if (res == -1) return;
void wxComboBox::SetValue( const wxString& value )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
- wxString tmp = T("");
+ wxString tmp = wxT("");
if (!value.IsNull()) tmp = value;
gtk_entry_set_text( GTK_ENTRY(entry), tmp.mbc_str() );
}
void wxComboBox::Copy()
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
#if (GTK_MINOR_VERSION > 0)
void wxComboBox::Cut()
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
#if (GTK_MINOR_VERSION > 0)
void wxComboBox::Paste()
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
#if (GTK_MINOR_VERSION > 0)
void wxComboBox::SetInsertionPoint( long pos )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
gtk_entry_set_position( GTK_ENTRY(entry), (int)pos );
void wxComboBox::SetInsertionPointEnd()
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
SetInsertionPoint( -1 );
}
void wxComboBox::Replace( long from, long to, const wxString& value )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
// FIXME: not quite sure how to do this method right in multibyte mode
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
void wxComboBox::Remove(long from, long to)
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
gtk_editable_delete_text( GTK_EDITABLE(entry), (gint)from, (gint)to );
void wxControl::SetLabel( const wxString &label )
{
m_label.Empty();
- for ( const wxChar *pc = label; *pc != T('\0'); pc++ )
+ for ( const wxChar *pc = label; *pc != wxT('\0'); pc++ )
{
- if ( *pc == T('&') )
+ if ( *pc == wxT('&') )
{
pc++; // skip it
#if 0 // it would be unused anyhow for now - kbd interface not done yet
- if ( *pc != T('&') ) m_chAccel = *pc;
+ if ( *pc != wxT('&') ) m_chAccel = *pc;
#endif
}
m_label << *pc;
case wxCURSOR_BASED_ARROW_DOWN: gdk_cur = GDK_BASED_ARROW_DOWN; break;
*/
default:
- wxFAIL_MSG(T("unsupported cursor type"));
+ wxFAIL_MSG(wxT("unsupported cursor type"));
// will use the standard one
case wxCURSOR_ARROW:
return;
wxASSERT_MSG( !gs_savedCursor.Ok(),
- T("forgot to call wxEndBusyCursor, will leak memory") );
+ wxT("forgot to call wxEndBusyCursor, will leak memory") );
gs_savedCursor = g_globalCursor;
wxPalette wxNullPalette;
/* Default window names */
-const wxChar *wxButtonNameStr = T("button");
-const wxChar *wxCanvasNameStr = T("canvas");
-const wxChar *wxCheckBoxNameStr = T("check");
-const wxChar *wxChoiceNameStr = T("choice");
-const wxChar *wxComboBoxNameStr = T("comboBox");
-const wxChar *wxDialogNameStr = T("dialog");
-const wxChar *wxFrameNameStr = T("frame");
-const wxChar *wxGaugeNameStr = T("gauge");
-const wxChar *wxStaticBoxNameStr = T("groupBox");
-const wxChar *wxListBoxNameStr = T("listBox");
-const wxChar *wxStaticTextNameStr = T("message");
-const wxChar *wxStaticBitmapNameStr = T("message");
-const wxChar *wxMultiTextNameStr = T("multitext");
-const wxChar *wxPanelNameStr = T("panel");
-const wxChar *wxRadioBoxNameStr = T("radioBox");
-const wxChar *wxRadioButtonNameStr = T("radioButton");
-const wxChar *wxBitmapRadioButtonNameStr = T("radioButton");
-const wxChar *wxScrollBarNameStr = T("scrollBar");
-const wxChar *wxSliderNameStr = T("slider");
-const wxChar *wxStaticNameStr = T("static");
-const wxChar *wxTextCtrlWindowNameStr = T("textWindow");
-const wxChar *wxTextCtrlNameStr = T("text");
-const wxChar *wxVirtListBoxNameStr = T("virtListBox");
-const wxChar *wxButtonBarNameStr = T("buttonbar");
-const wxChar *wxEnhDialogNameStr = T("Shell");
-const wxChar *wxToolBarNameStr = T("toolbar");
-const wxChar *wxStatusLineNameStr = T("status_line");
-const wxChar *wxGetTextFromUserPromptStr = T("Input Text");
-const wxChar *wxMessageBoxCaptionStr = T("Message");
-const wxChar *wxFileSelectorPromptStr = T("Select a file");
-const wxChar *wxFileSelectorDefaultWildcardStr = T("*");
-const wxChar *wxInternalErrorStr = T("wxWindows Internal Error");
-const wxChar *wxFatalErrorStr = T("wxWindows Fatal Error");
-const wxChar *wxDirDialogNameStr = T("wxDirCtrl");
-const wxChar *wxDirDialogDefaultFolderStr = T("/");
+const wxChar *wxButtonNameStr = wxT("button");
+const wxChar *wxCanvasNameStr = wxT("canvas");
+const wxChar *wxCheckBoxNameStr = wxT("check");
+const wxChar *wxChoiceNameStr = wxT("choice");
+const wxChar *wxComboBoxNameStr = wxT("comboBox");
+const wxChar *wxDialogNameStr = wxT("dialog");
+const wxChar *wxFrameNameStr = wxT("frame");
+const wxChar *wxGaugeNameStr = wxT("gauge");
+const wxChar *wxStaticBoxNameStr = wxT("groupBox");
+const wxChar *wxListBoxNameStr = wxT("listBox");
+const wxChar *wxStaticTextNameStr = wxT("message");
+const wxChar *wxStaticBitmapNameStr = wxT("message");
+const wxChar *wxMultiTextNameStr = wxT("multitext");
+const wxChar *wxPanelNameStr = wxT("panel");
+const wxChar *wxRadioBoxNameStr = wxT("radioBox");
+const wxChar *wxRadioButtonNameStr = wxT("radioButton");
+const wxChar *wxBitmapRadioButtonNameStr = wxT("radioButton");
+const wxChar *wxScrollBarNameStr = wxT("scrollBar");
+const wxChar *wxSliderNameStr = wxT("slider");
+const wxChar *wxStaticNameStr = wxT("static");
+const wxChar *wxTextCtrlWindowNameStr = wxT("textWindow");
+const wxChar *wxTextCtrlNameStr = wxT("text");
+const wxChar *wxVirtListBoxNameStr = wxT("virtListBox");
+const wxChar *wxButtonBarNameStr = wxT("buttonbar");
+const wxChar *wxEnhDialogNameStr = wxT("Shell");
+const wxChar *wxToolBarNameStr = wxT("toolbar");
+const wxChar *wxStatusLineNameStr = wxT("status_line");
+const wxChar *wxGetTextFromUserPromptStr = wxT("Input Text");
+const wxChar *wxMessageBoxCaptionStr = wxT("Message");
+const wxChar *wxFileSelectorPromptStr = wxT("Select a file");
+const wxChar *wxFileSelectorDefaultWildcardStr = wxT("*");
+const wxChar *wxInternalErrorStr = wxT("wxWindows Internal Error");
+const wxChar *wxFatalErrorStr = wxT("wxWindows Fatal Error");
+const wxChar *wxDirDialogNameStr = wxT("wxDirCtrl");
+const wxChar *wxDirDialogDefaultFolderStr = wxT("/");
/* See wx/utils.h */
-const wxChar *wxFloatToStringStr = T("%.2f");
-const wxChar *wxDoubleToStringStr = T("%.2f");
+const wxChar *wxFloatToStringStr = wxT("%.2f");
+const wxChar *wxDoubleToStringStr = wxT("%.2f");
/* Dafaults for wxWindow etc. */
const wxSize wxDefaultSize(-1, -1);
m_type = wxDF_PRIVATE;
m_id = gdk_atom_name( m_atom );
- if (m_id == T("file:ALL"))
+ if (m_id == wxT("file:ALL"))
{
m_type = wxDF_FILENAME;
}
if (m_type == wxDF_TEXT)
{
- m_id = T("STRING");
+ m_id = wxT("STRING");
}
else
if (m_type == wxDF_BITMAP)
{
- m_id = T("image/png");
+ m_id = wxT("image/png");
}
else
if (m_type == wxDF_FILENAME)
{
- m_id = T("file:ALL");
+ m_id = wxT("file:ALL");
}
else
{
- wxFAIL_MSG( T("invalid dataformat") );
+ wxFAIL_MSG( wxT("invalid dataformat") );
}
m_hasAtom = FALSE;
wxPrivateDataObject::wxPrivateDataObject()
{
- wxString id = T("application/");
+ wxString id = wxT("application/");
id += wxTheApp->GetAppName();
m_format.SetId( id );
m_isMemDC = FALSE;
m_font = window->GetFont();
- wxASSERT_MSG( window, T("DC needs a window") );
+ wxASSERT_MSG( window, wxT("DC needs a window") );
GtkWidget *widget = window->m_wxwindow;
- wxASSERT_MSG( widget, T("DC needs a widget") );
+ wxASSERT_MSG( widget, wxT("DC needs a widget") );
m_window = widget->window;
void wxWindowDC::DoFloodFill( long WXUNUSED(x), long WXUNUSED(y),
const wxColour &WXUNUSED(col), int WXUNUSED(style) )
{
- wxFAIL_MSG( T("wxWindowDC::DoFloodFill not implemented") );
+ wxFAIL_MSG( wxT("wxWindowDC::DoFloodFill not implemented") );
}
bool wxWindowDC::DoGetPixel( long WXUNUSED(x1), long WXUNUSED(y1), wxColour *WXUNUSED(col) ) const
{
- wxFAIL_MSG( T("wxWindowDC::DoGetPixel not implemented") );
+ wxFAIL_MSG( wxT("wxWindowDC::DoGetPixel not implemented") );
return FALSE;
}
void wxWindowDC::DoDrawLine( long x1, long y1, long x2, long y2 )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_pen.GetStyle() != wxTRANSPARENT)
{
void wxWindowDC::DoCrossHair( long x, long y )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_pen.GetStyle() != wxTRANSPARENT)
{
void wxWindowDC::DoDrawArc( long x1, long y1, long x2, long y2,
long xc, long yc )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
long xx1 = XLOG2DEV(x1);
long yy1 = YLOG2DEV(y1);
void wxWindowDC::DoDrawEllipticArc( long x, long y, long width, long height, double sa, double ea )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
long xx = XLOG2DEV(x);
long yy = YLOG2DEV(y);
void wxWindowDC::DoDrawPoint( long x, long y )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if ((m_pen.GetStyle() != wxTRANSPARENT) && m_window)
gdk_draw_point( m_window, m_penGC, XLOG2DEV(x), YLOG2DEV(y) );
void wxWindowDC::DoDrawLines( int n, wxPoint points[], long xoffset, long yoffset )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_pen.GetStyle() == wxTRANSPARENT) return;
if (n <= 0) return;
void wxWindowDC::DoDrawPolygon( int n, wxPoint points[], long xoffset, long yoffset, int WXUNUSED(fillStyle) )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (n <= 0) return;
void wxWindowDC::DoDrawRectangle( long x, long y, long width, long height )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
long xx = XLOG2DEV(x);
long yy = YLOG2DEV(y);
void wxWindowDC::DoDrawRoundedRectangle( long x, long y, long width, long height, double radius )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (radius < 0.0) radius = - radius * ((width < height) ? width : height);
void wxWindowDC::DoDrawEllipse( long x, long y, long width, long height )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
long xx = XLOG2DEV(x);
long yy = YLOG2DEV(y);
long x, long y,
bool useMask )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
- wxCHECK_RET( bitmap.Ok(), T("invalid bitmap") );
+ wxCHECK_RET( bitmap.Ok(), wxT("invalid bitmap") );
/* scale/translate size and position */
of the source dc, but scales correctly on the target dc and
knows about possible mask information in a memory dc. */
- wxCHECK_MSG( Ok(), FALSE, T("invalid window dc") );
+ wxCHECK_MSG( Ok(), FALSE, wxT("invalid window dc") );
- wxCHECK_MSG( source, FALSE, T("invalid source dc") );
+ wxCHECK_MSG( source, FALSE, wxT("invalid source dc") );
if (!m_window) return FALSE;
void wxWindowDC::DoDrawText( const wxString &text, long x, long y )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (!m_window) return;
void wxWindowDC::Clear()
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (!m_window) return;
void wxWindowDC::SetPen( const wxPen &pen )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_pen == pen) return;
void wxWindowDC::SetBrush( const wxBrush &brush )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_brush == brush) return;
/* CMB 21/7/98: Added SetBackground. Sets background brush
* for Clear() and bg colour for shapes filled with cross-hatch brush */
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_backgroundBrush == brush) return;
void wxWindowDC::SetLogicalFunction( int function )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_logicalFunction == function) return;
#endif
default:
{
- wxFAIL_MSG( T("unsupported logical function") );
+ wxFAIL_MSG( wxT("unsupported logical function") );
break;
}
}
void wxWindowDC::SetTextForeground( const wxColour &col )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_textForegroundColour == col) return;
void wxWindowDC::SetTextBackground( const wxColour &col )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (m_textBackgroundColour == col) return;
void wxWindowDC::SetBackgroundMode( int mode )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
m_backgroundMode = mode;
void wxWindowDC::SetPalette( const wxPalette& WXUNUSED(palette) )
{
- wxFAIL_MSG( T("wxWindowDC::SetPalette not implemented") );
+ wxFAIL_MSG( wxT("wxWindowDC::SetPalette not implemented") );
}
void wxWindowDC::DoSetClippingRegion( long x, long y, long width, long height )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
wxDC::DoSetClippingRegion( x, y, width, height );
void wxWindowDC::DoSetClippingRegionAsRegion( const wxRegion ®ion )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
if (region.Empty())
{
void wxWindowDC::DestroyClippingRegion()
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
wxDC::DestroyClippingRegion();
int wxWindowDC::GetDepth() const
{
- wxFAIL_MSG(T("not implemented"));
+ wxFAIL_MSG(wxT("not implemented"));
return -1;
}
void wxWindowDC::DoDrawSpline( wxList *points )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
wxPoint *p;
double cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4;
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxDialog creation failed") );
+ wxFAIL_MSG( wxT("wxDialog creation failed") );
return FALSE;
}
void wxDialog::SetTitle( const wxString& title )
{
m_title = title;
- if (m_title.IsNull()) m_title = T("");
+ if (m_title.IsNull()) m_title = wxT("");
gtk_window_set_title( GTK_WINDOW(m_widget), m_title.mbc_str() );
}
void wxDialog::OnSize( wxSizeEvent &WXUNUSED(event) )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid dialog") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid dialog") );
#if wxUSE_CONSTRAINTS
if (GetAutoLayout())
void wxDialog::DoSetSize( int x, int y, int width, int height, int sizeFlags )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid dialog") );
- wxASSERT_MSG( (m_wxwindow != NULL), T("invalid dialog") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid dialog") );
+ wxASSERT_MSG( (m_wxwindow != NULL), wxT("invalid dialog") );
if (m_resizing) return; /* I don't like recursions */
m_resizing = TRUE;
void wxDialog::Centre( int direction )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid dialog") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid dialog") );
int x = 0;
int y = 0;
else
if (m_windowStyle & wxDIALOG_MODAL) m_windowStyle -= wxDIALOG_MODAL;
*/
- wxFAIL_MSG( T("wxDialog:SetModal obsolete now") );
+ wxFAIL_MSG( wxT("wxDialog:SetModal obsolete now") );
}
int wxDialog::ShowModal()
{
if (IsModal())
{
- wxFAIL_MSG( T("wxDialog:ShowModal called twice") );
+ wxFAIL_MSG( wxT("wxDialog:ShowModal called twice") );
return GetReturnCode();
}
if (!IsModal())
{
- wxFAIL_MSG( T("wxDialog:EndModal called twice") );
+ wxFAIL_MSG( wxT("wxDialog:EndModal called twice") );
return;
}
if (!m_dragWidget) return FALSE;
/*
- wxPrintf( T("format: %s.\n"), format.GetId().c_str() );
- if (format.GetType() == wxDF_PRIVATE) wxPrintf( T("private data.\n") );
- if (format.GetType() == wxDF_TEXT) wxPrintf( T("text data.\n") );
+ wxPrintf( wxT("format: %s.\n"), format.GetId().c_str() );
+ if (format.GetType() == wxDF_PRIVATE) wxPrintf( wxT("private data.\n") );
+ if (format.GetType() == wxDF_TEXT) wxPrintf( wxT("text data.\n") );
*/
#if wxUSE_THREADS
void wxDropTarget::UnregisterWidget( GtkWidget *widget )
{
- wxCHECK_RET( widget != NULL, T("unregister widget is NULL") );
+ wxCHECK_RET( widget != NULL, wxT("unregister widget is NULL") );
gtk_drag_dest_unset( widget );
void wxDropTarget::RegisterWidget( GtkWidget *widget )
{
- wxCHECK_RET( widget != NULL, T("register widget is NULL") );
+ wxCHECK_RET( widget != NULL, wxT("register widget is NULL") );
/* gtk_drag_dest_set() determines what default behaviour we'd like
GTK to supply. we don't want to specify out targets (=formats)
wxDragResult wxDropSource::DoDragDrop( bool WXUNUSED(bAllowMove) )
{
- wxASSERT_MSG( m_data, T("wxDragSource: no data") );
+ wxASSERT_MSG( m_data, wxT("wxDragSource: no data") );
if (!m_data) return (wxDragResult) wxDragNone;
m_needParent = FALSE;
if (!PreCreation( parent, pos, wxDefaultSize ) ||
- !CreateBase( parent, -1, pos, wxDefaultSize, style | wxDIALOG_MODAL, wxDefaultValidator, T("filedialog") ))
+ !CreateBase( parent, -1, pos, wxDefaultSize, style | wxDIALOG_MODAL, wxDefaultValidator, wxT("filedialog") ))
{
- wxFAIL_MSG( T("wxXX creation failed") );
+ wxFAIL_MSG( wxT("wxXX creation failed") );
return;
}
m_message = message;
- m_path = T("");
+ m_path = wxT("");
m_fileName = defaultFileName;
m_dir = defaultDir;
m_wildCard = wildCard;
gtk_file_selection_hide_fileop_buttons( sel ); // they don't work anyway
m_path.Append(m_dir);
- if( ! m_path.IsEmpty() && m_path.Last()!=T('/') )
+ if( ! m_path.IsEmpty() && m_path.Last()!=wxT('/') )
m_path.Append('/');
m_path.Append(m_fileName);
wxSplitPath(path, &m_dir, &m_fileName, &ext);
if (!ext.IsEmpty())
{
- m_fileName += T(".");
+ m_fileName += wxT(".");
m_fileName += ext;
}
}
int x, int y)
{
// TODO: implement this somehow
- return wxFileSelector(message, default_path, default_filename, T(""),
+ return wxFileSelector(message, default_path, default_filename, wxT(""),
wildcard, flags, parent, x, y);
}
{
wxString filter2;
if ( defaultExtension && !filter )
- filter2 = wxString(T("*.")) + wxString(defaultExtension) ;
+ filter2 = wxString(wxT("*.")) + wxString(defaultExtension) ;
else if ( filter )
filter2 = filter;
wxString str = _("Load %s file");
wxSprintf(prompt, str, what);
- if (*ext == T('.')) ext++;
+ if (*ext == wxT('.')) ext++;
wxChar wild[60];
- wxSprintf(wild, T("*.%s"), ext);
+ wxSprintf(wild, wxT("*.%s"), ext);
return wxFileSelector (prompt, (const wxChar *) NULL, default_name, ext, wild, 0, parent);
}
wxString str = _("Save %s file");
wxSprintf(prompt, str, what);
- if (*ext == T('.')) ext++;
+ if (*ext == wxT('.')) ext++;
wxChar wild[60];
- wxSprintf(wild, T("*.%s"), ext);
+ wxSprintf(wild, wxT("*.%s"), ext);
return wxFileSelector (prompt, (const wxChar *) NULL, default_name, ext, wild, 0, parent);
}
wxString tmp;
wxString fontname( xFontName );
- wxStringTokenizer tn( fontname, T("-") );
+ wxStringTokenizer tn( fontname, wxT("-") );
tn.GetNextToken(); // foundry
M_FONTDATA->m_faceName = tn.GetNextToken(); // courier
tmp = tn.GetNextToken().MakeUpper();
- if (tmp == T("BOLD")) M_FONTDATA->m_weight = wxBOLD;
+ if (tmp == wxT("BOLD")) M_FONTDATA->m_weight = wxBOLD;
tmp = tn.GetNextToken().MakeUpper();
- if (tmp == T("I")) M_FONTDATA->m_style = wxITALIC;
- if (tmp == T("O")) M_FONTDATA->m_style = wxITALIC;
+ if (tmp == wxT("I")) M_FONTDATA->m_style = wxITALIC;
+ if (tmp == wxT("O")) M_FONTDATA->m_style = wxITALIC;
tn.GetNextToken(); // set width
tn.GetNextToken(); // ?
tn.GetNextToken(); // y-res
tmp = tn.GetNextToken().MakeUpper();
- if (tmp == T("M")) M_FONTDATA->m_family = wxMODERN;
- else if (M_FONTDATA->m_faceName == T("TIMES")) M_FONTDATA->m_family = wxROMAN;
- else if (M_FONTDATA->m_faceName == T("HELVETICA")) M_FONTDATA->m_family = wxSWISS;
- else if (M_FONTDATA->m_faceName == T("LUCIDATYPEWRITER")) M_FONTDATA->m_family = wxTELETYPE;
- else if (M_FONTDATA->m_faceName == T("LUCIDA")) M_FONTDATA->m_family = wxDECORATIVE;
- else if (M_FONTDATA->m_faceName == T("UTOPIA")) M_FONTDATA->m_family = wxSCRIPT;
+ if (tmp == wxT("M")) M_FONTDATA->m_family = wxMODERN;
+ else if (M_FONTDATA->m_faceName == wxT("TIMES")) M_FONTDATA->m_family = wxROMAN;
+ else if (M_FONTDATA->m_faceName == wxT("HELVETICA")) M_FONTDATA->m_family = wxSWISS;
+ else if (M_FONTDATA->m_faceName == wxT("LUCIDATYPEWRITER")) M_FONTDATA->m_family = wxTELETYPE;
+ else if (M_FONTDATA->m_faceName == wxT("LUCIDA")) M_FONTDATA->m_family = wxDECORATIVE;
+ else if (M_FONTDATA->m_faceName == wxT("UTOPIA")) M_FONTDATA->m_family = wxSCRIPT;
}
bool wxFont::Create( int pointSize,
int wxFont::GetPointSize() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid font") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
return M_FONTDATA->m_pointSize;
}
wxString wxFont::GetFaceName() const
{
- wxCHECK_MSG( Ok(), T(""), T("invalid font") );
+ wxCHECK_MSG( Ok(), wxT(""), wxT("invalid font") );
return M_FONTDATA->m_faceName;
}
int wxFont::GetFamily() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid font") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
return M_FONTDATA->m_family;
}
int wxFont::GetStyle() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid font") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
return M_FONTDATA->m_style;
}
int wxFont::GetWeight() const
{
- wxCHECK_MSG( Ok(), 0, T("invalid font") );
+ wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
return M_FONTDATA->m_weight;
}
bool wxFont::GetUnderlined() const
{
- wxCHECK_MSG( Ok(), FALSE, T("invalid font") );
+ wxCHECK_MSG( Ok(), FALSE, wxT("invalid font") );
return M_FONTDATA->m_underlined;
}
wxFontEncoding wxFont::GetEncoding() const
{
- wxCHECK_MSG( Ok(), wxFONTENCODING_DEFAULT, T("invalid font") );
+ wxCHECK_MSG( Ok(), wxFONTENCODING_DEFAULT, wxT("invalid font") );
return M_FONTDATA->m_encoding;
}
{
if (!Ok())
{
- wxFAIL_MSG( T("invalid font") );
+ wxFAIL_MSG( wxT("invalid font") );
return (GdkFont*) NULL;
}
if (!font)
{
- wxLogError(T("could not load any font"));
+ wxLogError(wxT("could not load any font"));
}
return font;
if (!PreCreation( parent, wxDefaultPosition, wxDefaultSize ) ||
!CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE,
- wxDefaultValidator, T("fontdialog") ))
+ wxDefaultValidator, wxT("fontdialog") ))
{
- wxFAIL_MSG( T("wxXX creation failed") );
+ wxFAIL_MSG( wxT("wxXX creation failed") );
return;
}
#ifndef __WXGTK12__
- wxFAIL_MSG( T("TODO") );
+ wxFAIL_MSG( wxT("TODO") );
#else // GTK+ 1.2
wxString m_message( _("Choose font") );
m_widget = gtk_font_selection_dialog_new( m_message.mbc_str() );
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxFrame creation failed") );
+ wxFAIL_MSG( wxT("wxFrame creation failed") );
return FALSE;
}
gtk_window_set_wmclass( GTK_WINDOW(m_widget), name.mb_str(), name.mb_str() );
#ifdef __WXDEBUG__
- debug_focus_in( m_widget, T("wxFrame::m_widget"), name );
+ debug_focus_in( m_widget, wxT("wxFrame::m_widget"), name );
#endif
gtk_window_set_title( GTK_WINDOW(m_widget), title.mbc_str() );
gtk_container_add( GTK_CONTAINER(m_widget), m_mainWidget );
#ifdef __WXDEBUG__
- debug_focus_in( m_mainWidget, T("wxFrame::m_mainWidget"), name );
+ debug_focus_in( m_mainWidget, wxT("wxFrame::m_mainWidget"), name );
#endif
/* m_wxwindow only represents the client area without toolbar and menubar */
gtk_container_add( GTK_CONTAINER(m_mainWidget), m_wxwindow );
#ifdef __WXDEBUG__
- debug_focus_in( m_wxwindow, T("wxFrame::m_wxwindow"), name );
+ debug_focus_in( m_wxwindow, wxT("wxFrame::m_wxwindow"), name );
#endif
/* we donm't allow the frame to get the focus as otherwise
bool wxFrame::Show( bool show )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
if (show && !m_sizeSet)
{
bool wxFrame::Destroy()
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
if (!wxPendingDelete.Member(this)) wxPendingDelete.Append(this);
void wxFrame::DoSetSize( int x, int y, int width, int height, int sizeFlags )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
/* this shouldn't happen: wxFrame, wxMDIParentFrame and wxMDIChildFrame have m_wxwindow */
- wxASSERT_MSG( (m_wxwindow != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_wxwindow != NULL), wxT("invalid frame") );
/* avoid recursions */
if (m_resizing) return;
void wxFrame::Centre( int direction )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
int x = 0;
int y = 0;
void wxFrame::DoGetClientSize( int *width, int *height ) const
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
wxWindow::DoGetClientSize( width, height );
if (height)
void wxFrame::DoSetClientSize( int width, int height )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
/* menu bar */
if (m_frameMenuBar)
m_resizing = TRUE;
/* this shouldn't happen: wxFrame, wxMDIParentFrame and wxMDIChildFrame have m_wxwindow */
- wxASSERT_MSG( (m_wxwindow != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_wxwindow != NULL), wxT("invalid frame") );
m_width = width;
m_height = height;
void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
#if wxUSE_CONSTRAINTS
if (GetAutoLayout())
void wxFrame::SetMenuBar( wxMenuBar *menuBar )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
- wxASSERT_MSG( (m_wxwindow != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
+ wxASSERT_MSG( (m_wxwindow != NULL), wxT("invalid frame") );
m_frameMenuBar = menuBar;
#if wxUSE_TOOLBAR
wxToolBar* wxFrame::CreateToolBar( long style, wxWindowID id, const wxString& name )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
- wxCHECK_MSG( m_frameToolBar == NULL, FALSE, T("recreating toolbar in wxFrame") );
+ wxCHECK_MSG( m_frameToolBar == NULL, FALSE, wxT("recreating toolbar in wxFrame") );
m_insertInClientArea = FALSE;
#if wxUSE_STATUSBAR
wxStatusBar* wxFrame::CreateStatusBar( int number, long style, wxWindowID id, const wxString& name )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
- wxCHECK_MSG( m_frameStatusBar == NULL, FALSE, T("recreating status bar in wxFrame") );
+ wxCHECK_MSG( m_frameStatusBar == NULL, FALSE, wxT("recreating status bar in wxFrame") );
m_frameStatusBar = OnCreateStatusBar( number, style, id, name );
void wxFrame::SetStatusText(const wxString& text, int number)
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
- wxCHECK_RET( m_frameStatusBar != NULL, T("no statusbar to set text for") );
+ wxCHECK_RET( m_frameStatusBar != NULL, wxT("no statusbar to set text for") );
m_frameStatusBar->SetStatusText(text, number);
}
void wxFrame::SetStatusWidths(int n, const int widths_field[] )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
- wxCHECK_RET( m_frameStatusBar != NULL, T("no statusbar to set widths for") );
+ wxCHECK_RET( m_frameStatusBar != NULL, wxT("no statusbar to set widths for") );
m_frameStatusBar->SetStatusWidths(n, widths_field);
}
void wxFrame::SetTitle( const wxString &title )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
m_title = title;
- if (m_title.IsNull()) m_title = T("");
+ if (m_title.IsNull()) m_title = wxT("");
gtk_window_set_title( GTK_WINDOW(m_widget), title.mbc_str() );
}
void wxFrame::SetIcon( const wxIcon &icon )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid frame") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid frame") );
m_icon = icon;
if (!icon.Ok()) return;
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxGauge creation failed") );
+ wxFAIL_MSG( wxT("wxGauge creation failed") );
return FALSE;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxListBox creation failed") );
+ wxFAIL_MSG( wxT("wxListBox creation failed") );
return FALSE;
}
void wxListBox::InsertItems(int nItems, const wxString items[], int pos)
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
GList *children = m_list->children;
int length = g_list_length(children);
- wxCHECK_RET( pos <= length, T("invalid index in wxListBox::InsertItems") );
+ wxCHECK_RET( pos <= length, wxT("invalid index in wxListBox::InsertItems") );
// VZ: it seems that GTK 1.0.6 doesn't has a function to insert an item
// into a listbox at the given position, this is why we first delete
void wxListBox::AppendCommon( const wxString &item )
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
GtkWidget *list_item;
void wxListBox::SetClientData( int n, void* clientData )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return;
void* wxListBox::GetClientData( int n )
{
- wxCHECK_MSG( m_widget != NULL, NULL, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, NULL, wxT("invalid combobox") );
wxNode *node = m_clientDataList.Nth( n );
if (!node) return NULL;
void wxListBox::SetClientObject( int n, wxClientData* clientData )
{
- wxCHECK_RET( m_widget != NULL, T("invalid combobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
wxNode *node = m_clientObjectList.Nth( n );
if (!node) return;
wxClientData* wxListBox::GetClientObject( int n )
{
- wxCHECK_MSG( m_widget != NULL, (wxClientData*)NULL, T("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, (wxClientData*)NULL, wxT("invalid combobox") );
wxNode *node = m_clientObjectList.Nth( n );
if (!node) return (wxClientData*) NULL;
void wxListBox::Clear()
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
gtk_list_clear_items( m_list, 0, Number() );
void wxListBox::Delete( int n )
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
GList *child = g_list_nth( m_list->children, n );
- wxCHECK_RET( child, T("wrong listbox index") );
+ wxCHECK_RET( child, wxT("wrong listbox index") );
GList *list = g_list_append( (GList*) NULL, child->data );
gtk_list_remove_items( m_list, list );
void wxListBox::Deselect( int n )
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
DisableEvents();
int wxListBox::FindString( const wxString &item ) const
{
- wxCHECK_MSG( m_list != NULL, -1, T("invalid listbox") );
+ wxCHECK_MSG( m_list != NULL, -1, wxT("invalid listbox") );
GList *child = m_list->children;
int count = 0;
int wxListBox::GetSelection() const
{
- wxCHECK_MSG( m_list != NULL, -1, T("invalid listbox") );
+ wxCHECK_MSG( m_list != NULL, -1, wxT("invalid listbox") );
GList *child = m_list->children;
int count = 0;
int wxListBox::GetSelections( wxArrayInt& aSelections ) const
{
- wxCHECK_MSG( m_list != NULL, -1, T("invalid listbox") );
+ wxCHECK_MSG( m_list != NULL, -1, wxT("invalid listbox") );
// get the number of selected items first
GList *child = m_list->children;
wxString wxListBox::GetString( int n ) const
{
- wxCHECK_MSG( m_list != NULL, T(""), T("invalid listbox") );
+ wxCHECK_MSG( m_list != NULL, wxT(""), wxT("invalid listbox") );
GList *child = g_list_nth( m_list->children, n );
if (child)
return str;
}
- wxFAIL_MSG(T("wrong listbox index"));
+ wxFAIL_MSG(wxT("wrong listbox index"));
- return T("");
+ return wxT("");
}
wxString wxListBox::GetStringSelection() const
{
- wxCHECK_MSG( m_list != NULL, T(""), T("invalid listbox") );
+ wxCHECK_MSG( m_list != NULL, wxT(""), wxT("invalid listbox") );
GList *selection = m_list->selection;
if (selection)
return str;
}
- wxFAIL_MSG(T("no listbox selection available"));
- return T("");
+ wxFAIL_MSG(wxT("no listbox selection available"));
+ return wxT("");
}
int wxListBox::Number()
{
- wxCHECK_MSG( m_list != NULL, -1, T("invalid listbox") );
+ wxCHECK_MSG( m_list != NULL, -1, wxT("invalid listbox") );
GList *child = m_list->children;
int count = 0;
bool wxListBox::Selected( int n )
{
- wxCHECK_MSG( m_list != NULL, FALSE, T("invalid listbox") );
+ wxCHECK_MSG( m_list != NULL, FALSE, wxT("invalid listbox") );
GList *target = g_list_nth( m_list->children, n );
if (target)
child = child->next;
}
}
- wxFAIL_MSG(T("wrong listbox index"));
+ wxFAIL_MSG(wxT("wrong listbox index"));
return FALSE;
}
void wxListBox::Set( int WXUNUSED(n), const wxString *WXUNUSED(choices) )
{
- wxFAIL_MSG(T("wxListBox::Set not implemented"));
+ wxFAIL_MSG(wxT("wxListBox::Set not implemented"));
}
void wxListBox::SetFirstItem( int WXUNUSED(n) )
{
- wxFAIL_MSG(T("wxListBox::SetFirstItem not implemented"));
+ wxFAIL_MSG(wxT("wxListBox::SetFirstItem not implemented"));
}
void wxListBox::SetFirstItem( const wxString &WXUNUSED(item) )
{
- wxFAIL_MSG(T("wxListBox::SetFirstItem not implemented"));
+ wxFAIL_MSG(wxT("wxListBox::SetFirstItem not implemented"));
}
void wxListBox::SetSelection( int n, bool select )
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
DisableEvents();
void wxListBox::SetString( int n, const wxString &string )
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
GList *child = g_list_nth( m_list->children, n );
if (child)
}
else
{
- wxFAIL_MSG(T("wrong listbox index"));
+ wxFAIL_MSG(wxT("wrong listbox index"));
}
}
void wxListBox::SetStringSelection( const wxString &string, bool select )
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
SetSelection( FindString(string), select );
}
#if wxUSE_DRAG_AND_DROP
void wxListBox::SetDropTarget( wxDropTarget *dropTarget )
{
- wxCHECK_RET( m_list != NULL, T("invalid listbox") );
+ wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
#ifndef NEW_GTK_DND_CODE
if (m_dropTarget)
void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar )
{
- wxASSERT_MSG( m_menuBar == NULL, T("Only one menubar allowed") );
+ wxASSERT_MSG( m_menuBar == NULL, wxT("Only one menubar allowed") );
m_menuBar = menu_bar;
m_insertCallback = (wxInsertChildFunction)wxInsertChildInMDI;
if (!PreCreation( parent, wxDefaultPosition, wxDefaultSize ) ||
- !CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, T("wxMDIClientWindow") ))
+ !CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, wxT("wxMDIClientWindow") ))
{
- wxFAIL_MSG( T("wxMDIClientWindow creation failed") );
+ wxFAIL_MSG( wxT("wxMDIClientWindow creation failed") );
return FALSE;
}
m_invokingWindow = (wxWindow*) NULL;
if (!PreCreation( (wxWindow*) NULL, wxDefaultPosition, wxDefaultSize ) ||
- !CreateBase( (wxWindow*) NULL, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, T("menubar") ))
+ !CreateBase( (wxWindow*) NULL, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, wxT("menubar") ))
{
- wxFAIL_MSG( T("wxMenuBar creation failed") );
+ wxFAIL_MSG( wxT("wxMenuBar creation failed") );
return;
}
m_invokingWindow = (wxWindow*) NULL;
if (!PreCreation( (wxWindow*) NULL, wxDefaultPosition, wxDefaultSize ) ||
- !CreateBase( (wxWindow*) NULL, -1, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, T("menubar") ))
+ !CreateBase( (wxWindow*) NULL, -1, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, wxT("menubar") ))
{
- wxFAIL_MSG( T("wxMenuBar creation failed") );
+ wxFAIL_MSG( wxT("wxMenuBar creation failed") );
return;
}
/* GTK 1.2 wants to have "_" instead of "&" for accelerators */
wxString str;
- for ( pc = title; *pc != T('\0'); pc++ )
+ for ( pc = title; *pc != wxT('\0'); pc++ )
{
- if (*pc == T('&'))
+ if (*pc == wxT('&'))
{
#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0)
- str << T('_');
+ str << wxT('_');
}
- else if (*pc == T('/'))
+ else if (*pc == wxT('/'))
{
- str << T('\\');
+ str << wxT('\\');
#endif
}
else
{
#if __WXGTK12__
- if ( *pc == T('_') )
+ if ( *pc == wxT('_') )
{
// underscores must be doubled to prevent them from being
// interpreted as accelerator character prefix by GTK
/* local buffer in multibyte form */
wxString buf;
- buf << T('/') << str.c_str();
+ buf << wxT('/') << str.c_str();
char *cbuf = new char[buf.Length()+1];
strcpy(cbuf, buf.mbc_str());
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
/* in order to get the pointer to the item we need the item text _without_ underscores */
- wxString tmp = T("<main>/");
- for ( pc = str; *pc != T('\0'); pc++ )
+ wxString tmp = wxT("<main>/");
+ for ( pc = str; *pc != wxT('\0'); pc++ )
{
// contrary to the common sense, we must throw out _all_ underscores,
// (i.e. "Hello__World" => "HelloWorld" and not "Hello_World" as we
// might naively think). IMHO it's a bug in GTK+ (VZ)
- while (*pc == T('_'))
+ while (*pc == wxT('_'))
pc++;
tmp << *pc;
}
{
wxMenuItem* item = FindMenuItemById( id );
- wxCHECK_RET( item, T("wxMenuBar::Check: no such item") );
+ wxCHECK_RET( item, wxT("wxMenuBar::Check: no such item") );
item->Check(check);
}
{
wxMenuItem* item = FindMenuItemById( id );
- wxCHECK_MSG( item, FALSE, T("wxMenuBar::IsChecked: no such item") );
+ wxCHECK_MSG( item, FALSE, wxT("wxMenuBar::IsChecked: no such item") );
return item->IsChecked();
}
{
wxMenuItem* item = FindMenuItemById( id );
- wxCHECK_RET( item, T("wxMenuBar::Enable: no such item") );
+ wxCHECK_RET( item, wxT("wxMenuBar::Enable: no such item") );
item->Enable(enable);
}
{
wxMenuItem* item = FindMenuItemById( id );
- wxCHECK_MSG( item, FALSE, T("wxMenuBar::IsEnabled: no such item") );
+ wxCHECK_MSG( item, FALSE, wxT("wxMenuBar::IsEnabled: no such item") );
return item->IsEnabled();
}
{
wxMenuItem* item = FindMenuItemById( id );
- wxCHECK_MSG( item, T(""), T("wxMenuBar::GetLabel: no such item") );
+ wxCHECK_MSG( item, wxT(""), wxT("wxMenuBar::GetLabel: no such item") );
return item->GetText();
}
{
wxMenuItem* item = FindMenuItemById( id );
- wxCHECK_RET( item, T("wxMenuBar::SetLabel: no such item") );
+ wxCHECK_RET( item, wxT("wxMenuBar::SetLabel: no such item") );
item->SetText( label );
}
{
wxNode *node = m_menus.Nth( pos );
- wxCHECK_RET( node, T("menu not found") );
+ wxCHECK_RET( node, wxT("menu not found") );
wxMenu* menu = (wxMenu*)node->Data();
{
wxNode *node = m_menus.Nth( pos );
- wxCHECK_MSG( node, T("invalid"), T("menu not found") );
+ wxCHECK_MSG( node, wxT("invalid"), wxT("menu not found") );
wxMenu* menu = (wxMenu*)node->Data();
{
wxNode *node = m_menus.Nth( pos );
- wxCHECK_RET( node, T("menu not found") );
+ wxCHECK_RET( node, wxT("menu not found") );
wxMenu* menu = (wxMenu*)node->Data();
{
wxMenuItem* item = FindMenuItemById( id );
- wxCHECK_RET( item, T("wxMenuBar::SetHelpString: no such item") );
+ wxCHECK_RET( item, wxT("wxMenuBar::SetHelpString: no such item") );
item->SetHelp( helpString );
}
{
wxMenuItem* item = FindMenuItemById( id );
- wxCHECK_MSG( item, T(""), T("wxMenuBar::GetHelpString: no such item") );
+ wxCHECK_MSG( item, wxT(""), wxT("wxMenuBar::GetHelpString: no such item") );
return item->GetHelp();
}
return;
wxMenuItem* item = menu->FindItem( id );
- wxCHECK_RET( item, T("error in menu item callback") );
+ wxCHECK_RET( item, wxT("error in menu item callback") );
if (item->IsCheckable())
{
void wxMenuItem::SetName( const wxString& str )
{
/* '\t' is the deliminator indicating a hot key */
- m_text = T("");
+ m_text = wxT("");
const wxChar *pc = str;
- for (; (*pc != T('\0')) && (*pc != T('\t')); pc++ )
+ for (; (*pc != wxT('\0')) && (*pc != wxT('\t')); pc++ )
{
- if (*pc == T('&'))
+ if (*pc == wxT('&'))
{
#if (GTK_MINOR_VERSION > 0)
- m_text << T('_');
+ m_text << wxT('_');
}
- else if ( *pc == T('_') ) // escape underscores
+ else if ( *pc == wxT('_') ) // escape underscores
{
- m_text << T("__");
+ m_text << wxT("__");
}
- else if (*pc == T('/')) /* we have to filter out slashes ... */
+ else if (*pc == wxT('/')) /* we have to filter out slashes ... */
{
- m_text << T('\\'); /* ... and replace them with back slashes */
+ m_text << wxT('\\'); /* ... and replace them with back slashes */
#endif
}
else
}
/* only GTK 1.2 knows about hot keys */
- m_hotKey = T("");
+ m_hotKey = wxT("");
#if (GTK_MINOR_VERSION > 0)
- if(*pc == T('\t'))
+ if(*pc == wxT('\t'))
{
pc++;
m_hotKey = pc;
void wxMenuItem::Check( bool check )
{
- wxCHECK_RET( m_menuItem, T("invalid menu item") );
+ wxCHECK_RET( m_menuItem, wxT("invalid menu item") );
- wxCHECK_RET( IsCheckable(), T("Can't check uncheckable item!") )
+ wxCHECK_RET( IsCheckable(), wxT("Can't check uncheckable item!") )
if (check == m_isChecked) return;
void wxMenuItem::Enable( bool enable )
{
- wxCHECK_RET( m_menuItem, T("invalid menu item") );
+ wxCHECK_RET( m_menuItem, wxT("invalid menu item") );
gtk_widget_set_sensitive( m_menuItem, enable );
m_isEnabled = enable;
bool wxMenuItem::IsChecked() const
{
- wxCHECK_MSG( m_menuItem, FALSE, T("invalid menu item") );
+ wxCHECK_MSG( m_menuItem, FALSE, wxT("invalid menu item") );
wxCHECK( IsCheckable(), FALSE ); // can't get state of uncheckable item!
m_eventHandler = this;
m_clientData = (void*) NULL;
- if (m_title.IsNull()) m_title = T("");
- if (m_title != T(""))
+ if (m_title.IsNull()) m_title = wxT("");
+ if (m_title != wxT(""))
{
Append(-2, m_title);
AppendSeparator();
switch (hotkey[0])
{
- case T('a'): /* Alt */
- case T('A'):
- case T('m'): /* Meta */
- case T('M'):
+ case wxT('a'): /* Alt */
+ case wxT('A'):
+ case wxT('m'): /* Meta */
+ case wxT('M'):
{
strcpy( hotbuf, "<alt>" );
wxString last = hotkey.Right(1);
strcat( hotbuf, last.mb_str() );
return hotbuf;
}
- case T('c'): /* Ctrl */
- case T('C'):
- case T('s'): /* Strg, yeah man, I'm German */
- case T('S'):
+ case wxT('c'): /* Ctrl */
+ case wxT('C'):
+ case wxT('s'): /* Strg, yeah man, I'm German */
+ case wxT('S'):
{
strcpy( hotbuf, "<control>" );
wxString last = hotkey.Right(1);
strcat( hotbuf, last.mb_str() );
return hotbuf;
}
- case T('F'): /* function keys */
+ case wxT('F'): /* function keys */
{
strcpy( hotbuf, hotkey.mb_str() );
return hotbuf;
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
/* in order to get the pointer to the item we need the item text _without_ underscores */
- wxString s = T("<main>/");
- for ( const wxChar *pc = text; *pc != T('\0'); pc++ )
+ wxString s = wxT("<main>/");
+ for ( const wxChar *pc = text; *pc != wxT('\0'); pc++ )
{
- while (*pc == T('_')) pc++; /* skip it */
+ while (*pc == wxT('_')) pc++; /* skip it */
s << *pc;
}
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
/* in order to get the pointer to the item we need the item text _without_ underscores */
- wxString s = T("<main>/");
- for ( const wxChar *pc = text; *pc != T('\0'); pc++ )
+ wxString s = wxT("<main>/");
+ for ( const wxChar *pc = text; *pc != wxT('\0'); pc++ )
{
- if (*pc == T('_')) pc++; /* skip it */
+ if (*pc == wxT('_')) pc++; /* skip it */
s << *pc;
}
int wxMenu::FindItem( const wxString itemString ) const
{
- wxString s = T("");
- for ( const wxChar *pc = itemString; *pc != T('\0'); pc++ )
+ wxString s = wxT("");
+ for ( const wxChar *pc = itemString; *pc != wxT('\0'); pc++ )
{
- if (*pc == T('&'))
+ if (*pc == wxT('&'))
{
pc++; /* skip it */
#if (GTK_MINOR_VERSION > 0)
- s << T('_');
+ s << wxT('_');
#endif
}
s << *pc;
{
wxMenuItem *item = FindItem(id);
- wxCHECK_RET( item, T("wxMenu::Enable: no such item") );
+ wxCHECK_RET( item, wxT("wxMenu::Enable: no such item") );
item->Enable(enable);
}
{
wxMenuItem *item = FindItem(id);
- wxCHECK_MSG( item, FALSE, T("wxMenu::IsEnabled: no such item") );
+ wxCHECK_MSG( item, FALSE, wxT("wxMenu::IsEnabled: no such item") );
return item->IsEnabled();
}
{
wxMenuItem *item = FindItem(id);
- wxCHECK_RET( item, T("wxMenu::Check: no such item") );
+ wxCHECK_RET( item, wxT("wxMenu::Check: no such item") );
item->Check(enable);
}
{
wxMenuItem *item = FindItem(id);
- wxCHECK_MSG( item, FALSE, T("wxMenu::IsChecked: no such item") );
+ wxCHECK_MSG( item, FALSE, wxT("wxMenu::IsChecked: no such item") );
return item->IsChecked();
}
{
wxMenuItem *item = FindItem(id);
- wxCHECK_RET( item, T("wxMenu::SetLabel: no such item") );
+ wxCHECK_RET( item, wxT("wxMenu::SetLabel: no such item") );
item->SetText(label);
}
{
wxMenuItem *item = FindItem(id);
- wxCHECK_MSG( item, T(""), T("wxMenu::GetLabel: no such item") );
+ wxCHECK_MSG( item, wxT(""), wxT("wxMenu::GetLabel: no such item") );
return item->GetText();
}
{
wxMenuItem *item = FindItem(id);
- wxCHECK_RET( item, T("wxMenu::SetHelpString: no such item") );
+ wxCHECK_RET( item, wxT("wxMenu::SetHelpString: no such item") );
item->SetHelp( helpString );
}
{
wxMenuItem *item = FindItem(id);
- wxCHECK_MSG( item, T(""), T("wxMenu::GetHelpString: no such item") );
+ wxCHECK_MSG( item, wxT(""), wxT("wxMenu::GetHelpString: no such item") );
return item->GetHelp();
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxNoteBook creation failed") );
+ wxFAIL_MSG( wxT("wxNoteBook creation failed") );
return FALSE;
}
m_widget = gtk_notebook_new();
#ifdef __WXDEBUG__
- debug_focus_in( m_widget, T("wxNotebook::m_widget"), name );
+ debug_focus_in( m_widget, wxT("wxNotebook::m_widget"), name );
#endif
gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 );
int wxNotebook::GetSelection() const
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid notebook") );
GList *pages = GTK_NOTEBOOK(m_widget)->children;
wxString wxNotebook::GetPageText( int page ) const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid notebook") );
wxNotebookPage* nb_page = GetNotebookPage(page);
if (nb_page)
return nb_page->m_text;
else
- return T("");
+ return wxT("");
}
int wxNotebook::GetPageImage( int page ) const
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid notebook") );
wxNotebookPage* nb_page = GetNotebookPage(page);
if (nb_page)
wxNotebookPage* wxNotebook::GetNotebookPage( int page ) const
{
- wxCHECK_MSG( m_widget != NULL, (wxNotebookPage*) NULL, T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, (wxNotebookPage*) NULL, wxT("invalid notebook") );
- wxCHECK_MSG( page < (int)m_pages.GetCount(), (wxNotebookPage*) NULL, T("invalid notebook index") );
+ wxCHECK_MSG( page < (int)m_pages.GetCount(), (wxNotebookPage*) NULL, wxT("invalid notebook index") );
wxNode *node = m_pages.Nth( page );
int wxNotebook::SetSelection( int page )
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid notebook") );
- wxCHECK_MSG( page < (int)m_pages.GetCount(), -1, T("invalid notebook index") );
+ wxCHECK_MSG( page < (int)m_pages.GetCount(), -1, wxT("invalid notebook index") );
int selOld = GetSelection();
void wxNotebook::AdvanceSelection( bool forward )
{
- wxCHECK_RET( m_widget != NULL, T("invalid notebook") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid notebook") );
int sel = GetSelection();
int max = GetPageCount();
bool wxNotebook::SetPageText( int page, const wxString &text )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid notebook") );
wxNotebookPage* nb_page = GetNotebookPage(page);
- wxCHECK_MSG( nb_page, FALSE, T("SetPageText: invalid page index") );
+ wxCHECK_MSG( nb_page, FALSE, wxT("SetPageText: invalid page index") );
nb_page->m_text = text;
void wxNotebook::SetPageSize( const wxSize &WXUNUSED(size) )
{
- wxFAIL_MSG( T("wxNotebook::SetPageSize not implemented") );
+ wxFAIL_MSG( wxT("wxNotebook::SetPageSize not implemented") );
}
void wxNotebook::SetPadding( const wxSize &WXUNUSED(padding) )
{
- wxFAIL_MSG( T("wxNotebook::SetPadding not implemented") );
+ wxFAIL_MSG( wxT("wxNotebook::SetPadding not implemented") );
}
void wxNotebook::SetTabSize(const wxSize& WXUNUSED(sz))
{
- wxFAIL_MSG( T("wxNotebook::SetTabSize not implemented") );
+ wxFAIL_MSG( wxT("wxNotebook::SetTabSize not implemented") );
}
bool wxNotebook::DeleteAllPages()
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid notebook") );
while (m_pages.GetCount() > 0)
DeletePage( m_pages.GetCount()-1 );
bool wxNotebook::InsertPage( int position, wxWindow* win, const wxString& text,
bool select, int imageId )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid notebook") );
wxCHECK_MSG( win->GetParent() == this, FALSE,
- T("Can't add a page whose parent is not the notebook!") );
+ wxT("Can't add a page whose parent is not the notebook!") );
/* don't receive switch page during addition */
gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget),
/* set the label text */
page->m_text = text;
- if (page->m_text.IsEmpty()) page->m_text = T("");
+ if (page->m_text.IsEmpty()) page->m_text = wxT("");
page->m_label = GTK_LABEL( gtk_label_new(page->m_text.mbc_str()) );
gtk_box_pack_end( GTK_BOX(page->m_box), GTK_WIDGET(page->m_label), FALSE, FALSE, 3 );
wxWindow *wxNotebook::GetPage( int page ) const
{
- wxCHECK_MSG( m_widget != NULL, (wxWindow*) NULL, T("invalid notebook") );
+ wxCHECK_MSG( m_widget != NULL, (wxWindow*) NULL, wxT("invalid notebook") );
wxNotebookPage* nb_page = GetNotebookPage(page);
if (!nb_page)
const unsigned char *WXUNUSED(green),
const unsigned char *WXUNUSED(blue) )
{
- wxFAIL_MSG(T("not implemented"));
+ wxFAIL_MSG(wxT("not implemented"));
return FALSE;
}
const unsigned char WXUNUSED(green),
const unsigned char WXUNUSED(blue) ) const
{
- wxFAIL_MSG(T("not implemented"));
+ wxFAIL_MSG(wxT("not implemented"));
return 0;
}
unsigned char *WXUNUSED(green),
unsigned char *WXUNUSED(blue) ) const
{
- wxFAIL_MSG(T("not implemented"));
+ wxFAIL_MSG(wxT("not implemented"));
return 0;
}
int wxPen::GetCap() const
{
- wxCHECK_MSG( Ok(), -1, T("invalid pen") );
+ wxCHECK_MSG( Ok(), -1, wxT("invalid pen") );
return M_PENDATA->m_capStyle;
}
int wxPen::GetJoin() const
{
- wxCHECK_MSG( Ok(), -1, T("invalid pen") );
+ wxCHECK_MSG( Ok(), -1, wxT("invalid pen") );
return M_PENDATA->m_joinStyle;
}
int wxPen::GetStyle() const
{
- wxCHECK_MSG( Ok(), -1, T("invalid pen") );
+ wxCHECK_MSG( Ok(), -1, wxT("invalid pen") );
return M_PENDATA->m_style;
}
int wxPen::GetWidth() const
{
- wxCHECK_MSG( Ok(), -1, T("invalid pen") );
+ wxCHECK_MSG( Ok(), -1, wxT("invalid pen") );
return M_PENDATA->m_width;
}
wxColour &wxPen::GetColour() const
{
- wxCHECK_MSG( Ok(), wxNullColour, T("invalid pen") );
+ wxCHECK_MSG( Ok(), wxNullColour, wxT("invalid pen") );
return M_PENDATA->m_colour;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxRadioBox creation failed") );
+ wxFAIL_MSG( wxT("wxRadioBox creation failed") );
return FALSE;
}
label.Empty();
for ( const wxChar *pc = choices[i]; *pc; pc++ )
{
- if ( *pc != T('&') )
+ if ( *pc != wxT('&') )
label += *pc;
}
if ( m_majorDim == 0 )
{
// avoid dividing by 0 below
- wxFAIL_MSG( T("dimension of radiobox should not be 0!") );
+ wxFAIL_MSG( wxT("dimension of radiobox should not be 0!") );
m_majorDim = 1;
}
bool wxRadioBox::Show( bool show )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid radiobox") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid radiobox") );
wxWindow::Show( show );
int wxRadioBox::FindString( const wxString &s ) const
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid radiobox") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid radiobox") );
int count = 0;
void wxRadioBox::SetFocus()
{
- wxCHECK_RET( m_widget != NULL, T("invalid radiobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid radiobox") );
if (m_boxes.GetCount() == 0) return;
void wxRadioBox::SetSelection( int n )
{
- wxCHECK_RET( m_widget != NULL, T("invalid radiobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid radiobox") );
wxNode *node = m_boxes.Nth( n );
- wxCHECK_RET( node, T("radiobox wrong index") );
+ wxCHECK_RET( node, wxT("radiobox wrong index") );
GtkToggleButton *button = GTK_TOGGLE_BUTTON( node->Data() );
int wxRadioBox::GetSelection(void) const
{
- wxCHECK_MSG( m_widget != NULL, -1, T("invalid radiobox") );
+ wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid radiobox") );
int count = 0;
node = node->Next();
}
- wxFAIL_MSG( T("wxRadioBox none selected") );
+ wxFAIL_MSG( wxT("wxRadioBox none selected") );
return -1;
}
wxString wxRadioBox::GetString( int n ) const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid radiobox") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid radiobox") );
wxNode *node = m_boxes.Nth( n );
- wxCHECK_MSG( node, T(""), T("radiobox wrong index") );
+ wxCHECK_MSG( node, wxT(""), wxT("radiobox wrong index") );
GtkButton *button = GTK_BUTTON( node->Data() );
GtkLabel *label = GTK_LABEL( button->child );
wxString wxRadioBox::GetLabel( int item ) const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid radiobox") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid radiobox") );
return GetString( item );
}
void wxRadioBox::SetLabel( const wxString& label )
{
- wxCHECK_RET( m_widget != NULL, T("invalid radiobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid radiobox") );
wxControl::SetLabel( label );
void wxRadioBox::SetLabel( int item, const wxString& label )
{
- wxCHECK_RET( m_widget != NULL, T("invalid radiobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid radiobox") );
wxNode *node = m_boxes.Nth( item );
- wxCHECK_RET( node, T("radiobox wrong index") );
+ wxCHECK_RET( node, wxT("radiobox wrong index") );
GtkButton *button = GTK_BUTTON( node->Data() );
GtkLabel *g_label = GTK_LABEL( button->child );
void wxRadioBox::SetLabel( int WXUNUSED(item), wxBitmap *WXUNUSED(bitmap) )
{
- wxFAIL_MSG(T("wxRadioBox::SetLabel not implemented."));
+ wxFAIL_MSG(wxT("wxRadioBox::SetLabel not implemented."));
}
bool wxRadioBox::Enable( bool enable )
void wxRadioBox::Enable( int item, bool enable )
{
- wxCHECK_RET( m_widget != NULL, T("invalid radiobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid radiobox") );
wxNode *node = m_boxes.Nth( item );
- wxCHECK_RET( node, T("radiobox wrong index") );
+ wxCHECK_RET( node, wxT("radiobox wrong index") );
GtkButton *button = GTK_BUTTON( node->Data() );
GtkWidget *label = button->child;
void wxRadioBox::Show( int item, bool show )
{
- wxCHECK_RET( m_widget != NULL, T("invalid radiobox") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid radiobox") );
wxNode *node = m_boxes.Nth( item );
- wxCHECK_RET( node, T("radiobox wrong index") );
+ wxCHECK_RET( node, wxT("radiobox wrong index") );
GtkWidget *button = GTK_WIDGET( node->Data() );
wxString wxRadioBox::GetStringSelection() const
{
- wxCHECK_MSG( m_widget != NULL, T(""), T("invalid radiobox") );
+ wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid radiobox") );
wxNode *node = m_boxes.First();
while (node)
node = node->Next();
}
- wxFAIL_MSG( T("wxRadioBox none selected") );
- return T("");
+ wxFAIL_MSG( wxT("wxRadioBox none selected") );
+ return wxT("");
}
bool wxRadioBox::SetStringSelection( const wxString &s )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid radiobox") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid radiobox") );
int res = FindString( s );
if (res == -1) return FALSE;
void wxRadioBox::SetNumberOfRowsOrCols( int WXUNUSED(n) )
{
- wxFAIL_MSG(T("wxRadioBox::SetNumberOfRowsOrCols not implemented."));
+ wxFAIL_MSG(wxT("wxRadioBox::SetNumberOfRowsOrCols not implemented."));
}
void wxRadioBox::DisableEvents()
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxRadioButton creation failed") );
+ wxFAIL_MSG( wxT("wxRadioButton creation failed") );
return FALSE;
}
void wxRadioButton::SetLabel( const wxString& label )
{
- wxCHECK_RET( m_widget != NULL, T("invalid radiobutton") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid radiobutton") );
wxControl::SetLabel( label );
GtkButton *bin = GTK_BUTTON( m_widget );
void wxRadioButton::SetValue( bool val )
{
- wxCHECK_RET( m_widget != NULL, T("invalid radiobutton") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid radiobutton") );
if (val == GetValue())
return;
bool wxRadioButton::GetValue() const
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid radiobutton") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid radiobutton") );
return GTK_TOGGLE_BUTTON(m_widget)->active;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxScrollBar creation failed") );
+ wxFAIL_MSG( wxT("wxScrollBar creation failed") );
return FALSE;
}
case wxSYS_VSCROLL_X: return 15;
}
- wxCHECK_MSG( index, 0, T("wxSystemSettings::GetSystemMetric not fully implemented") );
+ wxCHECK_MSG( index, 0, wxT("wxSystemSettings::GetSystemMetric not fully implemented") );
return 0;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxSlider creation failed") );
+ wxFAIL_MSG( wxT("wxSlider creation failed") );
return FALSE;
}
if (!PreCreation( parent, pos, new_size ) ||
!CreateBase( parent, id, pos, new_size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxXX creation failed") );
+ wxFAIL_MSG( wxT("wxXX creation failed") );
return FALSE;
}
int wxSpinButton::GetMin() const
{
- wxCHECK_MSG( (m_widget != NULL), 0, T("invalid spin button") );
+ wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") );
return (int)ceil(m_adjust->lower);
}
int wxSpinButton::GetMax() const
{
- wxCHECK_MSG( (m_widget != NULL), 0, T("invalid spin button") );
+ wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") );
return (int)ceil(m_adjust->upper);
}
int wxSpinButton::GetValue() const
{
- wxCHECK_MSG( (m_widget != NULL), 0, T("invalid spin button") );
+ wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") );
return (int)ceil(m_adjust->value);
}
void wxSpinButton::SetValue( int value )
{
- wxCHECK_RET( (m_widget != NULL), T("invalid spin button") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") );
float fpos = (float)value;
m_oldPos = fpos;
void wxSpinButton::SetRange(int minVal, int maxVal)
{
- wxCHECK_RET( (m_widget != NULL), T("invalid spin button") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") );
float fmin = (float)minVal;
float fmax = (float)maxVal;
void wxSpinButton::OnSize( wxSizeEvent &WXUNUSED(event) )
{
- wxCHECK_RET( (m_widget != NULL), T("invalid spin button") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid spin button") );
m_width = 15;
gtk_widget_set_usize( m_widget, m_width, m_height );
void wxStaticBitmap::CreatePixmapWidget()
{
- wxCHECK_RET( m_bitmap.Ok(), T("should only be called if we have a bitmap") );
+ wxCHECK_RET( m_bitmap.Ok(), wxT("should only be called if we have a bitmap") );
GdkBitmap *mask = (GdkBitmap *) NULL;
if ( m_bitmap.GetMask() )
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxXX creation failed") );
+ wxFAIL_MSG( wxT("wxXX creation failed") );
return FALSE;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxStaticBox creation failed") );
+ wxFAIL_MSG( wxT("wxStaticBox creation failed") );
return FALSE;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxStaticLine creation failed") );
+ wxFAIL_MSG( wxT("wxStaticLine creation failed") );
return FALSE;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxXX creation failed") );
+ wxFAIL_MSG( wxT("wxXX creation failed") );
return FALSE;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxToolBar creation failed") );
+ wxFAIL_MSG( wxT("wxToolBar creation failed") );
return FALSE;
}
m_hasToolAlready = TRUE;
wxCHECK_MSG( bitmap.Ok(), (wxToolBarTool *)NULL,
- T("invalid bitmap for wxToolBar icon") );
+ wxT("invalid bitmap for wxToolBar icon") );
wxCHECK_MSG( bitmap.GetBitmap() == NULL, (wxToolBarTool *)NULL,
- T("wxToolBar doesn't support GdkBitmap") );
+ wxT("wxToolBar doesn't support GdkBitmap") );
wxCHECK_MSG( bitmap.GetPixmap() != NULL, (wxToolBarTool *)NULL,
- T("wxToolBar::Add needs a wxBitmap") );
+ wxT("wxToolBar::Add needs a wxBitmap") );
GtkWidget *tool_pixmap = (GtkWidget *)NULL;
void wxToolBar::ClearTools()
{
- wxFAIL_MSG( T("wxToolBar::ClearTools not implemented") );
+ wxFAIL_MSG( wxT("wxToolBar::ClearTools not implemented") );
}
bool wxToolBar::Realize()
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
}
void wxToolBar::ToggleTool( int toolIndex, bool toggle )
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
}
wxObject *wxToolBar::GetToolClientData( int index ) const
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
return (wxObject*)NULL;
}
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
return FALSE;
}
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
return FALSE;
}
void wxToolBar::SetMargins( int x, int y )
{
- wxCHECK_RET( !m_hasToolAlready, T("wxToolBar::SetMargins must be called before adding tool.") );
+ wxCHECK_RET( !m_hasToolAlready, wxT("wxToolBar::SetMargins must be called before adding tool.") );
if (x > 2) gtk_toolbar_append_space( m_toolbar ); // oh well
void wxToolBar::SetToolPacking( int WXUNUSED(packing) )
{
- wxFAIL_MSG( T("wxToolBar::SetToolPacking not implemented") );
+ wxFAIL_MSG( wxT("wxToolBar::SetToolPacking not implemented") );
}
void wxToolBar::SetToolSeparation( int separation )
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
- return T("");
+ return wxT("");
}
wxString wxToolBar::GetToolShortHelp(int toolIndex)
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
- return T("");
+ return wxT("");
}
void wxToolBar::SetToolLongHelp(int toolIndex, const wxString& helpString)
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
return;
}
node = node->Next();
}
- wxFAIL_MSG( T("wrong toolbar index") );
+ wxFAIL_MSG( wxT("wrong toolbar index") );
return;
}
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
- wxFAIL_MSG( T("wxTextCtrl creation failed") );
+ wxFAIL_MSG( wxT("wxTextCtrl creation failed") );
return FALSE;
}
wxString wxTextCtrl::GetValue() const
{
- wxCHECK_MSG( m_text != NULL, T(""), T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, wxT(""), wxT("invalid text ctrl") );
wxString tmp;
if (m_windowStyle & wxTE_MULTILINE)
void wxTextCtrl::SetValue( const wxString &value )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
- wxString tmp = T("");
+ wxString tmp = wxT("");
if (!value.IsNull()) tmp = value;
if (m_windowStyle & wxTE_MULTILINE)
{
void wxTextCtrl::WriteText( const wxString &text )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
if (text.IsEmpty()) return;
void wxTextCtrl::AppendText( const wxString &text )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
if (text.IsEmpty()) return;
if (text)
{
- wxString buf(T(""));
+ wxString buf(wxT(""));
long i;
int currentLine = 0;
for (i = 0; currentLine != lineNo && text[i]; i++ )
{
/* If you implement this, don't forget to update the documentation!
* (file docs/latex/wx/text.tex) */
- wxFAIL_MSG( T("wxTextCtrl::OnDropFiles not implemented") );
+ wxFAIL_MSG( wxT("wxTextCtrl::OnDropFiles not implemented") );
}
bool wxTextCtrl::PositionToXY(long pos, long *x, long *y ) const
const wxChar* stop = text.c_str() + pos;
for ( const wxChar *p = text.c_str(); p < stop; p++ )
{
- if (*p == T('\n'))
+ if (*p == wxT('\n'))
{
(*y)++;
*x=0;
void wxTextCtrl::SetInsertionPoint( long pos )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
if (m_windowStyle & wxTE_MULTILINE)
{
void wxTextCtrl::SetInsertionPointEnd()
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
if (m_windowStyle & wxTE_MULTILINE)
SetInsertionPoint(gtk_text_get_length(GTK_TEXT(m_text)));
void wxTextCtrl::SetEditable( bool editable )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
if (m_windowStyle & wxTE_MULTILINE)
gtk_text_set_editable( GTK_TEXT(m_text), editable );
void wxTextCtrl::SetSelection( long from, long to )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
gtk_editable_select_region( GTK_EDITABLE(m_text), (gint)from, (gint)to );
}
long wxTextCtrl::GetInsertionPoint() const
{
- wxCHECK_MSG( m_text != NULL, 0, T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, 0, wxT("invalid text ctrl") );
return (long) GTK_EDITABLE(m_text)->current_pos;
}
long wxTextCtrl::GetLastPosition() const
{
- wxCHECK_MSG( m_text != NULL, 0, T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, 0, wxT("invalid text ctrl") );
int pos = 0;
if (m_windowStyle & wxTE_MULTILINE)
void wxTextCtrl::Remove( long from, long to )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
gtk_editable_delete_text( GTK_EDITABLE(m_text), (gint)from, (gint)to );
}
void wxTextCtrl::Replace( long from, long to, const wxString &value )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
gtk_editable_delete_text( GTK_EDITABLE(m_text), (gint)from, (gint)to );
void wxTextCtrl::Cut()
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
#if (GTK_MINOR_VERSION > 0)
gtk_editable_cut_clipboard( GTK_EDITABLE(m_text) );
void wxTextCtrl::Copy()
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
#if (GTK_MINOR_VERSION > 0)
gtk_editable_copy_clipboard( GTK_EDITABLE(m_text) );
void wxTextCtrl::Paste()
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
#if (GTK_MINOR_VERSION > 0)
gtk_editable_paste_clipboard( GTK_EDITABLE(m_text) );
void wxTextCtrl::Undo()
{
// TODO
- wxFAIL_MSG( T("wxTextCtrl::Undo not implemented") );
+ wxFAIL_MSG( wxT("wxTextCtrl::Undo not implemented") );
}
void wxTextCtrl::Redo()
{
// TODO
- wxFAIL_MSG( T("wxTextCtrl::Redo not implemented") );
+ wxFAIL_MSG( wxT("wxTextCtrl::Redo not implemented") );
}
bool wxTextCtrl::CanUndo() const
{
// TODO
- wxFAIL_MSG( T("wxTextCtrl::CanUndo not implemented") );
+ wxFAIL_MSG( wxT("wxTextCtrl::CanUndo not implemented") );
return FALSE;
}
bool wxTextCtrl::CanRedo() const
{
// TODO
- wxFAIL_MSG( T("wxTextCtrl::CanRedo not implemented") );
+ wxFAIL_MSG( wxT("wxTextCtrl::CanRedo not implemented") );
return FALSE;
}
// selection.
void wxTextCtrl::GetSelection(long* from, long* to) const
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
if (!(GTK_EDITABLE(m_text)->has_selection))
{
bool wxTextCtrl::IsEditable() const
{
- wxCHECK_MSG( m_text != NULL, FALSE, T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, FALSE, wxT("invalid text ctrl") );
return GTK_EDITABLE(m_text)->editable;
}
void wxTextCtrl::Clear()
{
- SetValue( T("") );
+ SetValue( wxT("") );
}
void wxTextCtrl::OnChar( wxKeyEvent &key_event )
{
- wxCHECK_RET( m_text != NULL, T("invalid text ctrl") );
+ wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
if ((key_event.KeyCode() == WXK_RETURN) && (m_windowStyle & wxPROCESS_ENTER))
{
// the font will change for subsequent text insertiongs
bool wxTextCtrl::SetFont( const wxFont &font )
{
- wxCHECK_MSG( m_text != NULL, FALSE, T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, FALSE, wxT("invalid text ctrl") );
if ( !wxWindowBase::SetFont(font) )
{
bool wxTextCtrl::SetForegroundColour( const wxColour &WXUNUSED(colour) )
{
- wxCHECK_MSG( m_text != NULL, FALSE, T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, FALSE, wxT("invalid text ctrl") );
// doesn't work
return FALSE;
bool wxTextCtrl::SetBackgroundColour( const wxColour &colour )
{
- wxCHECK_MSG( m_text != NULL, FALSE, T("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, FALSE, wxT("invalid text ctrl") );
wxControl::SetBackgroundColour( colour );
// Yuck this is really BOTH site and platform dependent
// so we should use some other strategy!
#ifdef __SUN__
- #define DEFAULT_XRESOURCE_DIR T("/usr/openwin/lib/app-defaults")
+ #define DEFAULT_XRESOURCE_DIR wxT("/usr/openwin/lib/app-defaults")
#else
- #define DEFAULT_XRESOURCE_DIR T("/usr/lib/X11/app-defaults")
+ #define DEFAULT_XRESOURCE_DIR wxT("/usr/lib/X11/app-defaults")
#endif
//-----------------------------------------------------------------------------
wxStrcpy(buf, name);
return buf; // Exists so ...
}
- if (*name == T('/'))
+ if (*name == wxT('/'))
wxStrcpy(buf, name);
else
{
// Put in standard place for resource files if not absolute
wxStrcpy(buf, DEFAULT_XRESOURCE_DIR);
- wxStrcat(buf, T("/"));
+ wxStrcat(buf, wxT("/"));
wxStrcat(buf, FileNameFromPath(name));
}
if (create)
if ((home = wxGetUserHome(wxString())) != NULL)
{
wxStrcpy(dest, home);
- if (dest[wxStrlen(dest) - 1] != T('/')) wxStrcat(dest, T("/"));
+ if (dest[wxStrlen(dest) - 1] != wxT('/')) wxStrcat(dest, wxT("/"));
if (filename == NULL)
{
- if ((filename = wxGetenv(T("XENVIRONMENT"))) == NULL) filename = T(".Xdefaults");
+ if ((filename = wxGetenv(wxT("XENVIRONMENT"))) == NULL) filename = wxT(".Xdefaults");
}
else
- if (*filename != T('.')) wxStrcat(dest, T("."));
+ if (*filename != wxT('.')) wxStrcat(dest, wxT("."));
wxStrcat(dest, filename);
}
else
{
- dest[0] = T('\0');
+ dest[0] = wxT('\0');
}
}
return dest;
// Open XENVIRONMENT file, or if not defined, the .Xdefaults,
// and merge into existing database
- if ((environment = wxGetenv(T("XENVIRONMENT"))) == NULL)
+ if ((environment = wxGetenv(wxT("XENVIRONMENT"))) == NULL)
{
size_t len;
#if wxUSE_UNICODE
void wxDeleteResources(const wxChar *file)
{
- wxLogTrace(wxTraceResAlloc, T("Delete: Number = %d"), wxTheResourceCache->Number());
+ wxLogTrace(wxTraceResAlloc, wxT("Delete: Number = %d"), wxTheResourceCache->Number());
wxChar buffer[500];
(void)GetIniFile(buffer, file);
database = (XrmDatabase)node->Data();
else {
database = XrmGetFileDatabase(wxConvCurrent->cWX2MB(buffer));
- wxLogTrace(wxTraceResAlloc, T("Write: Number = %d"), wxTheResourceCache->Number());
+ wxLogTrace(wxTraceResAlloc, wxT("Write: Number = %d"), wxTheResourceCache->Number());
wxTheResourceCache->Append(buffer, (wxObject *)database);
}
char resName[300];
else
{
database = XrmGetFileDatabase(wxConvCurrent->cWX2MB(buffer));
- wxLogTrace(wxTraceResAlloc, T("Get: Number = %d"), wxTheResourceCache->Number());
+ wxLogTrace(wxTraceResAlloc, wxT("Get: Number = %d"), wxTheResourceCache->Number());
wxTheResourceCache->Append(buffer, (wxObject *)database);
}
} else
wxLog::AddTraceMask("focus");
s_done = TRUE;
}
- wxLogTrace(T("FOCUS NOW AT: %s"), name);
+ wxLogTrace(wxT("FOCUS NOW AT: %s"), name);
*/
return FALSE;
void debug_focus_in( GtkWidget* widget, const wxChar* name, const wxChar *window )
{
wxString tmp = name;
- tmp += T(" FROM ");
+ tmp += wxT(" FROM ");
tmp += window;
wxChar *s = new wxChar[tmp.Length()+1];
wxapp_install_idle_handler();
/*
- wxPrintf( T("1) OnButtonPress from ") );
+ wxPrintf( wxT("1) OnButtonPress from ") );
if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
wxPrintf( win->GetClassInfo()->GetClassName() );
- wxPrintf( T(".\n") );
+ wxPrintf( wxT(".\n") );
*/
if (!win->m_hasVMT) return FALSE;
if (g_blockEventsOnDrag) return TRUE;
gtk_widget_grab_focus (win->m_wxwindow);
/*
- wxPrintf( T("GrabFocus from ") );
+ wxPrintf( wxT("GrabFocus from ") );
if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
wxPrintf( win->GetClassInfo()->GetClassName() );
- wxPrintf( T(".\n") );
+ wxPrintf( wxT(".\n") );
*/
}
}
/*
- wxPrintf( T("2) OnButtonPress from ") );
+ wxPrintf( wxT("2) OnButtonPress from ") );
if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
wxPrintf( win->GetClassInfo()->GetClassName() );
- wxPrintf( T(".\n") );
+ wxPrintf( wxT(".\n") );
*/
wxEventType event_type = wxEVT_LEFT_DOWN;
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
- wxFAIL_MSG( T("wxWindow creation failed") );
+ wxFAIL_MSG( wxT("wxWindow creation failed") );
return FALSE;
}
GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS );
#ifdef __WXDEBUG__
- debug_focus_in( m_widget, T("wxWindow::m_widget"), name );
+ debug_focus_in( m_widget, wxT("wxWindow::m_widget"), name );
#endif
GtkScrolledWindow *scrolledWindow = GTK_SCROLLED_WINDOW(m_widget);
#ifdef __WXDEBUG__
- debug_focus_in( scrolledWindow->hscrollbar, T("wxWindow::hsrcollbar"), name );
- debug_focus_in( scrolledWindow->vscrollbar, T("wxWindow::vsrcollbar"), name );
+ debug_focus_in( scrolledWindow->hscrollbar, wxT("wxWindow::hsrcollbar"), name );
+ debug_focus_in( scrolledWindow->vscrollbar, wxT("wxWindow::vsrcollbar"), name );
#endif
GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass );
m_wxwindow = gtk_myfixed_new();
#ifdef __WXDEBUG__
- debug_focus_in( m_wxwindow, T("wxWindow::m_wxwindow"), name );
+ debug_focus_in( m_wxwindow, wxT("wxWindow::m_wxwindow"), name );
#endif
gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow );
bool wxWindow::PreCreation( wxWindow *parent, const wxPoint &pos, const wxSize &size )
{
- wxCHECK_MSG( !m_needParent || parent, FALSE, T("Need complete parent.") );
+ wxCHECK_MSG( !m_needParent || parent, FALSE, wxT("Need complete parent.") );
/* this turns -1 into 20 so that a minimal window is
visible even although -1,-1 has been given as the
void wxWindow::PostCreation()
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid window") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid window") );
if (m_wxwindow)
{
bool wxWindow::Destroy()
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid window") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid window") );
m_hasVMT = FALSE;
void wxWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags )
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid window") );
- wxASSERT_MSG( (m_parent != NULL), T("wxWindow::SetSize requires parent.\n") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid window") );
+ wxASSERT_MSG( (m_parent != NULL), wxT("wxWindow::SetSize requires parent.\n") );
if (m_resizing) return; /* I don't like recursions */
m_resizing = TRUE;
void wxWindow::DoGetSize( int *width, int *height ) const
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (width) (*width) = m_width;
if (height) (*height) = m_height;
void wxWindow::DoSetClientSize( int width, int height )
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (!m_wxwindow)
{
void wxWindow::DoGetClientSize( int *width, int *height ) const
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (!m_wxwindow)
{
void wxWindow::DoGetPosition( int *x, int *y ) const
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (x) (*x) = m_x;
if (y) (*y) = m_y;
void wxWindow::DoClientToScreen( int *x, int *y ) const
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (!m_widget->window) return;
void wxWindow::DoScreenToClient( int *x, int *y ) const
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (!m_widget->window) return;
bool wxWindow::Show( bool show )
{
- wxCHECK_MSG( (m_widget != NULL), FALSE, T("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), FALSE, wxT("invalid window") );
if (!wxWindowBase::Show(show))
{
bool wxWindow::Enable( bool enable )
{
- wxCHECK_MSG( (m_widget != NULL), FALSE, T("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), FALSE, wxT("invalid window") );
if (!wxWindowBase::Enable(enable))
{
int wxWindow::GetCharHeight() const
{
- wxCHECK_MSG( (m_widget != NULL), 12, T("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), 12, wxT("invalid window") );
- wxCHECK_MSG( m_font.Ok(), 12, T("invalid font") );
+ wxCHECK_MSG( m_font.Ok(), 12, wxT("invalid font") );
GdkFont *font = m_font.GetInternalFont( 1.0 );
int wxWindow::GetCharWidth() const
{
- wxCHECK_MSG( (m_widget != NULL), 8, T("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), 8, wxT("invalid window") );
- wxCHECK_MSG( m_font.Ok(), 8, T("invalid font") );
+ wxCHECK_MSG( m_font.Ok(), 8, wxT("invalid font") );
GdkFont *font = m_font.GetInternalFont( 1.0 );
wxFont fontToUse = m_font;
if (theFont) fontToUse = *theFont;
- wxCHECK_RET( fontToUse.Ok(), T("invalid font") );
+ wxCHECK_RET( fontToUse.Ok(), wxT("invalid font") );
GdkFont *font = fontToUse.GetInternalFont( 1.0 );
if (x) (*x) = gdk_string_width( font, string.mbc_str() );
void wxWindow::SetFocus()
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
GtkWidget *connect_widget = GetConnectWidget();
if (connect_widget)
bool wxWindow::Reparent( wxWindowBase *newParentBase )
{
- wxCHECK_MSG( (m_widget != NULL), FALSE, T("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), FALSE, wxT("invalid window") );
wxWindow *oldParent = m_parent,
*newParent = (wxWindow *)newParentBase;
void wxWindow::DoAddChild(wxWindow *child)
{
- wxASSERT_MSG( (m_widget != NULL), T("invalid window") );
+ wxASSERT_MSG( (m_widget != NULL), wxT("invalid window") );
- wxASSERT_MSG( (child != NULL), T("invalid child window") );
+ wxASSERT_MSG( (child != NULL), wxT("invalid child window") );
- wxASSERT_MSG( (m_insertCallback != NULL), T("invalid child insertion function") );
+ wxASSERT_MSG( (m_insertCallback != NULL), wxT("invalid child insertion function") );
/* add to list */
AddChild( child );
void wxWindow::Raise()
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (!m_widget->window) return;
void wxWindow::Lower()
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (!m_widget->window) return;
bool wxWindow::SetCursor( const wxCursor &cursor )
{
- wxCHECK_MSG( (m_widget != NULL), FALSE, T("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), FALSE, wxT("invalid window") );
return wxWindowBase::SetCursor( cursor );
}
void wxWindow::WarpPointer( int x, int y )
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
GtkWidget *connect_widget = GetConnectWidget();
if (connect_widget->window)
void wxWindow::Refresh( bool eraseBackground, const wxRect *rect )
{
- wxCHECK_RET( (m_widget != NULL), T("invalid window") );
+ wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (!m_widget->window) return;
void wxWindow::Clear()
{
- wxCHECK_RET( m_widget != NULL, T("invalid window") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid window") );
if (!m_widget->window) return;
bool wxWindow::SetBackgroundColour( const wxColour &colour )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid window") );
if (!wxWindowBase::SetBackgroundColour(colour))
{
bool wxWindow::SetForegroundColour( const wxColour &colour )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid window") );
if (!wxWindowBase::SetForegroundColour(colour))
{
bool wxWindow::DoPopupMenu( wxMenu *menu, int x, int y )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid window") );
- wxCHECK_MSG( menu != NULL, FALSE, T("invalid popup-menu") );
+ wxCHECK_MSG( menu != NULL, FALSE, wxT("invalid popup-menu") );
SetInvokingWindow( menu, this );
void wxWindow::SetDropTarget( wxDropTarget *dropTarget )
{
- wxCHECK_RET( m_widget != NULL, T("invalid window") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid window") );
GtkWidget *dnd_widget = GetConnectWidget();
bool wxWindow::SetFont( const wxFont &font )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, T("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid window") );
if (!wxWindowBase::SetFont(font))
{
void wxWindow::CaptureMouse()
{
- wxCHECK_RET( m_widget != NULL, T("invalid window") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid window") );
- wxCHECK_RET( g_captureWindow == NULL, T("CaptureMouse called twice") );
+ wxCHECK_RET( g_captureWindow == NULL, wxT("CaptureMouse called twice") );
GtkWidget *connect_widget = GetConnectWidget();
if (!connect_widget->window) return;
void wxWindow::ReleaseMouse()
{
- wxCHECK_RET( m_widget != NULL, T("invalid window") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid window") );
- wxCHECK_RET( g_captureWindow, T("ReleaseMouse called twice") );
+ wxCHECK_RET( g_captureWindow, wxT("ReleaseMouse called twice") );
GtkWidget *connect_widget = GetConnectWidget();
if (!connect_widget->window) return;
void wxWindow::SetScrollbar( int orient, int pos, int thumbVisible,
int range, bool refresh )
{
- wxCHECK_RET( m_widget != NULL, T("invalid window") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid window") );
- wxCHECK_RET( m_wxwindow != NULL, T("window needs client area for scrolling") );
+ wxCHECK_RET( m_wxwindow != NULL, wxT("window needs client area for scrolling") );
m_hasScrolling = TRUE;
void wxWindow::SetScrollPos( int orient, int pos, bool WXUNUSED(refresh) )
{
- wxCHECK_RET( m_widget != NULL, T("invalid window") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid window") );
- wxCHECK_RET( m_wxwindow != NULL, T("window needs client area for scrolling") );
+ wxCHECK_RET( m_wxwindow != NULL, wxT("window needs client area for scrolling") );
if (orient == wxHORIZONTAL)
{
int wxWindow::GetScrollThumb( int orient ) const
{
- wxCHECK_MSG( m_widget != NULL, 0, T("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, 0, wxT("invalid window") );
- wxCHECK_MSG( m_wxwindow != NULL, 0, T("window needs client area for scrolling") );
+ wxCHECK_MSG( m_wxwindow != NULL, 0, wxT("window needs client area for scrolling") );
if (orient == wxHORIZONTAL)
return (int)(m_hAdjust->page_size+0.5);
int wxWindow::GetScrollPos( int orient ) const
{
- wxCHECK_MSG( m_widget != NULL, 0, T("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, 0, wxT("invalid window") );
- wxCHECK_MSG( m_wxwindow != NULL, 0, T("window needs client area for scrolling") );
+ wxCHECK_MSG( m_wxwindow != NULL, 0, wxT("window needs client area for scrolling") );
if (orient == wxHORIZONTAL)
return (int)(m_hAdjust->value+0.5);
int wxWindow::GetScrollRange( int orient ) const
{
- wxCHECK_MSG( m_widget != NULL, 0, T("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, 0, wxT("invalid window") );
- wxCHECK_MSG( m_wxwindow != NULL, 0, T("window needs client area for scrolling") );
+ wxCHECK_MSG( m_wxwindow != NULL, 0, wxT("window needs client area for scrolling") );
if (orient == wxHORIZONTAL)
return (int)(m_hAdjust->upper+0.5);
void wxWindow::ScrollWindow( int dx, int dy, const wxRect* WXUNUSED(rect) )
{
- wxCHECK_RET( m_widget != NULL, T("invalid window") );
+ wxCHECK_RET( m_widget != NULL, wxT("invalid window") );
- wxCHECK_RET( m_wxwindow != NULL, T("window needs client area for scrolling") );
+ wxCHECK_RET( m_wxwindow != NULL, wxT("window needs client area for scrolling") );
if (!m_scrollGC)
{
// This is true in most case but some page can return:
// "text/html; char-encoding=...."
// So we use Find instead
- return (file.GetMimeType().Find(T("text/html")) == 0);
+ return (file.GetMimeType().Find(wxT("text/html")) == 0);
}
//-----------------------------------------------------------------------------
IMPLEMENT_ABSTRACT_CLASS(wxHtmlTagHandler,wxObject)
+#endif
-#endif
\ No newline at end of file
void wxHtmlTagsModule::OnExit()
{
}
+#endif
-#endif
\ No newline at end of file
rdcolmap.obj cdjpeg.obj
TROBJECTS= jpegtran.obj rdswitch.obj cdjpeg.obj transupp.obj
-!include $(WXWIN)\src\makelib.b32
\ No newline at end of file
resource 'MBAR' (1,preload)
{
{ 1 } ;
-} ;
\ No newline at end of file
resource 'MBAR' (1,preload)
{
{ 1 } ;
-} ;
\ No newline at end of file
}
};
-// end of get file
\ No newline at end of file
// TODO
m_bChecked = bDoCheck;
}
-}
\ No newline at end of file
}
};
-// end of get file
\ No newline at end of file
-(This file must be converted with BinHex 4.0)\r:!!"08%a'3eG*43!!!!-3A!!!!4ijQ8eA6d*38%-J!*!(!3!![XJ!!#4S!!!!#V#\rXlYd!!!$N!!!!mJ!!!e`!!#2bXQAFf3!!!5B!!!%f!!!R8!!!Y4ka,F84!!!"E!!\r!!AJ!!0a`!!!B@,*Pi@S!!!'U!!!"YJ!!p-J!!&Q!XQ-ZeJ!!!HJ!!!(e!!&15!!\r!GFk[r%YD!!!#+!!!!M3!!F3B!!!RbUj'*kS!!!*Q!!!#G!!"kq3!!"b+XQAX)3!\r!!UJ!!!+c!!))F!!!CV#`V2#X!!!#j!!!!Zm!!QmJ!!"!3,#pbM)!!!-J!!!$+`!\r#Vf!!!'$m4e9658*eCQCPFLjMF!"%CACPE'p`E@9ZG$T%CA0VG'p`)%C[E'4PFMT\r$9dG98dNkFh*M1NG98dP#G@CQCA)ZBh!!4e96584TFh"KG'0S,Q0`!%4PGQ9XEh"\rYC@jd1N4PFfYdEh!J4QpXC'9b1N0A4e9656TcFQ-k4e96584TFh"KG'0S,Q0`!%G\r98dP(E'pL,Q0`!%4PGQ9XEh"YC@jd1N4PFfYdEh!J4QpXC'9b1N0A4e9656TcFQ-\rk4e9658GXEf)ZBh!!4e9658P1493ZBh!!4'9fC@a[F'ePER3k4'9cDh4[F#"'Efa\rNCA)k3eG(990*1R0bBcT(990*58j&9#jMF!"(990*6Q9d4%)ZBh!!4'9fC@a[F'e\rPER3k4'9cDh4[F#"'EfaNCA)k3eG(990*1R0bBcT(990*6Q9d4%)ZBh!!4e9658j\reE'`ZBh!!4'9fC@a[F'ePER3k4'9cDh4[F#"'EfaNCA)k3eG(990*1R0bBcT(990\r*6R9XE#jMF!"(990*8fpMDf9d,Q0`!%4PGQ9XEh"YC@jd1N4PFfYdEh!J4QpXC'9\rb1N0A4e9656TcFQ-k4e96590[BfYPG#jMF!"(990*9%03,Q0`!%4PGQ9XEh"YC@j\rd1N4PFfYdEh!J4QpXC'9b1N0A4e9656TcFQ-k4e96594$8#jMF!"(990*9843,Q0\r`!%4PGQ9XEh"YC@jd1N4PFfYdEh!J4QpXC'9b1N0A4e9656TcFQ-k4e96599%8#j\rMF!"(990*4P0`,Q0`!%4PGQ9XEh"YC@jd1N4PFfYdEh!J4QpXC'9b1N0A4e9656T\rcFQ-k4e9658C6F#jMF!"36eG5!*!'&5!!!"hd!!!!EJ!!&B`!!!KS!!!*m!#3"J'\rc!!!!$!#33%9R!!"&D3#3"3&&DJ!%!!!!!J!!!(3!!!!J!!!$Zh`)!UDrBIrXN!!\r"!!L8)Iq`1i-!!$ZN!!!la3!!1qB!!(`Hq%"!J3!i1(`!!$LG!!!i[!!!10m!!%J\r!!!%lB`!!1(`!!$LG!!!i[J!!10d!!%J!!!&mBpS85!!!#(aqq&#!!3"B1#%!8(`\r)!kDlBIrX6S!!)%9e!*!&!J!!!$K&G3#3"3)!!!"34@i-"!!!!!F!!!!-J!#3#i!\r!!(3S!!!!4AF!N!8#!*!%4@X!"!!!!!J!!!#-!!!!I!!!"@am#!+QNq(rr*2"rrL\r3!!%!#*3Krm!li`!!1m3!!&5$"$j)!!!"B!!!!*!!I`!!J(m!!&I!"$jm!`)8N!!\rI!!5!(`!!N!!I!!L!(`!!N!!I!!bch`!31!!!!,!I!")i!!!!X"m!&$J!!!#B(`!\r@1!!!!*!!(`!B1(m!!)!"!%Ji)3"!I!J$TS2Krrb$`Iri6S!!)%9e!*!!!!#"\r&EJ`%!!!!&`!!!!b!!*!,J!!!M"!!!!"&G`#3"3J!N!4&D`!%!!!!'!!!!'`!!!#\rd!!!'FR`)!UD6iIrmN!!"!!L8)Ir!I(mEHE#"!&j"JJ!m1!!!!CJI!"D!(`!!+!!\r!!%'#!"#!I`!!5!!!!@!!!!#S!3"H,!!!!%#"!"!iI`!!5!!!!@!!!!!iI`!!J!%\r!5$JK!%"m#!1QJq(rr%k!!#"&G3#3"4N!!!!d4A8!N!8D!!!!6%9Z$!3!!!!E!!!\r!$)!!N!Z!!!"X#!!!!%9h!*!&'!#3"%9V!!3!!!!F!!!")!!!!1B!!!DqI!J#TT2\rKrrb6`IriNk(rp*1"rr#3!!%!#*3Krl!li`!!1i3!!$J!!!'B!`!@S!-!%LJ!!!"\r!JJ!FJ"m!!*!!(`!-J"m!!*!!(`!)1!!!!,!I!"5!I`!-J"m!"(r$!&#$[`!-9m-\r%2U!I!""m!`"!3B!!$+2I!"")!!"-9m-%2U!I!""m!!j`I!-!!%#!!$KA``3qJ"`\r!!(`$!!"!J!!SXpm!&)!I!!#3!"m!$+"r!"5J(`!3I!-!8,!I!"#Mh`!3Jlm!$)"\rm!!"A`!3qI!-!!%#"!!aA`!3qN!!F!!!i!!!!Q"m!&S!I!"JS!!!!3B)!&)"r!"b\r"R`!B5!!!!@!!!!!iI3!!J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIrdJi(rm%k!!#"\r&G3#3"4d!!!$d4@i-"!!!!#%!!!!-J!#3#i!!!5!J!!!!4AF!N!8F!*!%4@X!"!!\r!!#)!!!#i!!!"HJ!!#-Ym#!+QNq(rr*2"rrL6SIrdNi(rm*!!!3!)P#(rX$[M!!!\rlK!!!1!!!!CJ$!"DJJ`!8J'-!#)!I!!4m!`"3Im3!8)1r!!KA``3qS"m!%R`$!%"\r!J3!)Spm!%S"m!!"A`!3qI!-!!%#"!!aA`!3qN!!F!!!i!!!!Q"m!&S!I!"JS!!!\r!3B)!&)"r!"b"R`!B5!!!!@!!!!!iI3!!J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIr\rdJi(rm%k!!#"&G3#3"4d!!!#-4@i-"!!!!#-!!!!-J!#3#i!!!,JJ!!!!4AF!N!8\rL!*!%4@X!"!!!!#3!!!#F!!!"lJ!!#J&m#!+QNq(rr*2"rrL3!!%!#*3Krm!li`!\r!1m3!!$J!!!'B!`!@S!-!%R`!mK5`!`!5S!-!%(`H!&#`!`!3J!-!$(`!mK53!!-\r!$)"M!!b!(`!%I!-!3%##!!b!(`!!N!!I!!`i!!!!Q"m!&S!I!"JS!!!!3B)!&)"\rr!"b"R`!B5!!!!@!!!!#!!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G3#3"4d!!!"\rm4@i-"!!!!#8!!!!-J!#3#i!!!*`3!!!!4AF!N!8N!*!%4@X!"!!!!#B!!!$B!!!\r#0J!!#YCm#!+QNq(rr*2"rrL3!!%!#*3Krm!li`!!1m3!!$J!!!'B!`!@S!-!%(`\r!mK5`!`!3S!-!%R`H!&#`!`!5J!-!#(`!mK53!!-!#)#$!!LJB`!8J"m!"(`$!&"\rm"!"!3))!')!I!!#3!"m!#$J!!!#`(`!85!!!,+!I!")S!!!!3))!)+!I!""m!2!\r!3))!&)!I!!#3!"m!#)!I!!#3!"m!$$J!!!#B(`!@J"m!'#J!!!""JJ!8J(m!()'\rI!"K)!!!"B!!!!)!"!%Ji)3"!I!J$TS2Krrb$`Iri6S!!)%9e!*!&(3!!!,K&EJ`\r%!!!!*`!!!!b!!*!,J!!!f"!!!!"&G`#3"5B!N!4&D`!%!!!!+!!!!*3!!!+1!!!\r-1A`)!UDrBIrXN!!"!!L8)IqJ1q-!!$Z%!!!lC3!!Jm8!!%J!!$`iI`!!1)%!1%J\r!!!%iR!!!J+%!1%J!!!&J!!!!1(m!!)#"!$K)!!!"J!%!1(qF!K5!!3!iIm$`8*2\r"!$JX(J!!3B)!%+!I!")S!!!!3),rY)!E!!"m(J"3N!!E!!#!!3"S1#%!B(`)!kD\rlBIrX6S!!)%9e!*!&)J!!!#a&G3#3"5N!!!!i4A8!N!8Q!!!!5%9Z$!3!!!!Y!!!\r!$)!!N!Z!!!#8+!!!!%9h!*!&+!#3"%9V!!3!!!!Z!!!!R!!!!bi!!!fdI!J#TVp\rKrqb3!!%!#*3Krk!li`!!1i3!!$YP!!#$a3!!5!!!4$Kr!!!iJ3!i5!!!!6ZM!!!\riI!!!1*d!!)#K!$K)!!!"B!!!!$Kr!!#!J3!i5!!!!B!"!$KrR!)8J!%!1(r!m&#\r6`3!i,"i!!%'#!"#J(`!3+!!!!%##rkb!'`!!I"i!8*!!'`!!J!%!D$JK!'"m#!1\rQZf(rl%k!!#"&G3#3"4`!!!!X4A8!N!8T!!!!3%9e!*!&*!!!!&"&EJ`%!!!!,`!\r!!!b!!*!,J!!!R#J!!!"&G`#3"5i!N!4&D`!%!!!!-!!!!4!!!!21!!!2Jh`)!UD\r6iIrmNm(rq*1Krr53!!%!#*3Krl!li`!!1m3!!$ZP!!#!!J!!N!!$!"56``!3Nk-\r!$)!$!!`X!!!"3)!!)$J!!!#3!"m!"$J!!!#3!"m!#$J!!!#3!"m!!%J!!*L!(`!\r-,!!!!8##!##!(J!!N!!I!!5!(J!%N!!I!!Ji!!!!N!!I!!")!!"`1!!!!*!!(`!\r)5!!!')"r!!L!(J!%I!-#&*!!(`!)1pi!##`G!!!l[Irr3),rj)"r!!K)!!!"B!!\r!!*!!I`!!J"m!!#J!!!""JJ!JJ(m!!%J!!!&J!!!!J(m!!)!$!!#3!"m!"%J!!!`\ri!!!!N!!I!!3iI`!!J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIrd6S!!)%9d!`#3"$%\r!!!!N4A8!N!8b!!!!Y%9e!*!&-`!!!0"&EJ`%!!!!2J!!!!b!!*!,J!!"%"J!!!"\r&G`#3"6!!N!4&D`!%!!!!2`!!!'`!!!4F!!!44(`)!UD6iIrmN!!"!!L8)Ir!I(m\rEHE#"!&j"JJ!mJ!)!!*!!(`!8J"m!!#J!!!""JJ!3J(m!!%J!!!&J!!!!U!%!AL`\r!!!"!J3!31(m!!%J!!!&J!!!!1(m!!)!"!%Ji)3"!I!J$TS2Krra1J!!J4A3$!*!\r%-3!!!"a&G3#3"8!!!!!d4A8!N!8D!!!!6%9Z$!3!!!""!!!!$)!!N!Z!!!"X#!!\r!!%9h!*!&2`#3"%9V!!3!!!"#!!!!5!!!")B!!"'*I!J#TT2Krrb3!!%!#*3Krm!\rli`!!N!#"!&b3!+%!B)#"!&b!S3"J5!!!!B!#!!#3!"m!&$Kr!!#!!3")1#%!3(`\r)!kD$iIrm6S!!)%9e!*!&-!!!!#4&G!-!N!4$!!!!+%9Z$!3!!!"'!!!!$)!!N!Z\r!!!")#!!!!%9h!*!&3J#3"%9V!!3!!!"(!!!"#!!!"-3!!"(KI!J#TT2Krrb6`Ir\riNk(rp*!!!3!)P#(rX(ar'hQ`J3"Z3B)!b)!#!!#3!"m!&)!I!!`X!!!"3)%!N!#\r!(`!%+!!!!%'#!)5$[`!%5!!!A)#I!!L!I`!3J!-!"(`%!!"!J!!-Jpm!#%J!!!b\r!I`!3Jm-!")"r!"#!B`!!1*d!!$Lq!!")!!!"B!!!!(qpmK5!(`!)I"i!8*!!(`!\r)J(m!%$J$!!L3!"m!%)"r!!`i!rrrN!!I!!`X!`!!3B)!%)!I!!JX!!!!3),rM$K\rr!!!iJ!!!5!!!!DJ"!'iX!!!!3)%!%$Kr!!")!!!"B!!!!$Kr!!#!!3"B1#%!8(`\r)!kD$iIrmJm(rq)1Krr41J!!J4A3$!*!%3`!!!#4&G3#3"8J!!!#!4A8!N!8r!!!\r!c%9e!*!&'J!!!1"&EJ`%!!!!5`!!!!b!!*!,J!!"#"J!!!"&G`#3"8F!N!4&D`!\r%!!!!6!!!!+!!!!8U!!!5dA`)!UD6iIrmNm(rq*1Krr56JIr`N!!"!!L8)Iq`1i-\r!!$[N!!!lT3!!5!!!!B!#!!#3!"`!&#`G!!&!J3"%J"`!"#J!!!""JJ!iJp`!"%J\r!!#3iIJ!!J*m!!)#r!!4)!!!"B!!!!)!I!!4rhJ)81rm!##`G!!!l[Irr3),rf$K\rm!!#!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr5$JIr`6S!!)%9e!*!&-!!!!#K&G!-\r!N!40!!!!,%9e!*!&5!!!!&a&EJd#!!!!6`!!!"D!!*!()!!!B!"J!!S!!)D!!"`\r!N!T&GJUF!!!!8!!!!"*&EJ`%!!!!83!!!!b!!*!1S!#3"%9h!*!&6!#3"%9h$3#\r3"%m!!!!)4@X!"!!!!&)!!!"J!!!&RJ!!%m*m#!+QNq(rr*!!!3!)P#(r`(ar'hQ\r`J3"H3B)!-)!#!!#3!"m!&$Kr!!!iJ!!!5!!!!DJ"!&iX!!!!3)%!%$Kr!!")!!!\r"B!!!!$Kr!!#!!3")1#%!3(`)!kD$iIrm6S!!)%9d!`#3"%d!!!!F4A8!N!8r!!!\r!,%9e!*!&'J!!!%"&EJ`%!!!!8`!!!!b!!*!,J!!!B!J!!!"&G`#3"9)!N!4&D`!\r%!!!!9!!!!$`!!!A!!!!6hC2Krr`li!!!5!!!&)J$!!!lr`!"I!6jVMKM!!')!`!\r!I!!(G8'#!!`X(`$r3B$ri*[N!!#$iIrm6S!!)%9Z"3%!!!"A!!!!#Irrrr-!!"2\rG4f&dD'9bCA)!!"334@i&!3!!!&J!!!!+rrrrmJ!!%pe6Bf&dG%GKG'J!!!"&EJ8\r%!!!!@3!!!!Mrrrra!!!6h3#3#%9f"3#3"&J!N!4&EJ8%!!!!@J!!!!crrrr`!!!\r6h3#3$%9f"3#3"&N!N!4&EJ8%!!!!@`!!!!Mrrrr[!!!6h3#3#%9f"3#3"&F!N!4\r&GJ8!N!4D!!!!"%9["33!!!"0!!!!$2rrrqi!!"2G!*!-4AB&!*!%@`#3"%9f#J#\r3"&`!!!!)4@i&!3!!!&d!!!!+rrrrl3!!%pe6Bf&dG'9bCA)!&""&EJ8%!!!!AJ!\r!!!crrrrX!!!6h3#3$%9f"3#3"&N!N!4&EJ8%!!!!A`!!!!MrrrrV!!!6h3#3#%9\rf"3#3"&d!N!4&GJ8!N!4H!!!!"%9["33!!!"$!!!!$2rrrqS!!"2G!*!-4AB&!*!\r%A`#3"%9f#J#3"'!!!!!)4@m&"!!!!$%!!!!-rrrrk3!!%pd!N!a&GJ8!N!4C!*!\r%4AB+!*!%8!!!!!K&E`S%!!!!B3!!!!L!!*!24AB!N!98!*!%4AB2!*!%BJ!!!!4\r&E`S%!!!!A!!!!!L!!*!24AB!N!95!*!%4AB2!*!%BJ!!!!4&E`S%!!!!B`!!!!L\r!!*!24AB!N!9-!*!%4AB2!*!%BJ!!!!4&E`S%!!!!B!!!!!L!!*!24AB!N!9(!*!\r%4AB2!*!%BJ!!!!4&E`S%!!!!C!!!!!L!!*!24AB!N!9#!*!%4AB2!*!%BJ!!!!4\r&E`S%!!!!8!!!!!L!!*!24AB!N!8r!*!%4AB2!*!%BJ!!!!4&E`S%!!!!C3!!!!L\r!!*!24AB!N!8`!*!%4AB2!*!%BJ!!!!4&E`S%!!!!CJ!!!!L!!*!24AB!N!8Z!*!\r%4AB2!*!%BJ!!!!4&E`S%!!!!C`!!!!L!!*!24AB!N!8S!*!%4AB2!*!%BJ!!!!4\r&E`S%!!!!D!!!!!L!!*!24AB!N!8Q!*!%4AB2!*!%BJ!!!!4&E`S%!!!!D3!!!!L\r!!*!24AB!N!8N!*!%4AB2!*!%BJ!!!!4&E`S%!!!!DJ!!!!L!!*!24AB!N!8L!*!\r%4AB2!*!%BJ!!!!4&E`S%!!!!D`!!!!L!!*!24AB!N!8F!*!%4AB2!*!%BJ!!!!4\r&E`S%!!!!E!!!!!L!!*!24AB!N!8B!*!%4AB2!*!%BJ!!!!4&E`S%!!!!E3!!!!L\r!!*!24AB!N!8)!*!%4AB2!*!%BJ!!!!4&E`-%!!!!63!!!!5!!*!,4AB&!*!%63#\r3"%9[!`3!!!"$!!!!")!!N!Y&GJ8!N!4$!*!%4@m$"!!!!$%!!!!%J!#3#d9f"3#\r3"$%!N!4&E`m%!!!!BJ#3")!!N!G&D!!!8eP05!!!"Ki!!!!A!!!!#!#3%3%!N!B\r$p3!!!#J!!!3*!!!!A!!!"&RrN!3!!!4T!!3!!!!$!!!!CJ%!N!3F!!!!"!!!!'B\r"!*!%(3!!!!8!!!"Q!3#3""i!!!!'!!!!CJ%!N!3I!!%!N!B&N`!!!#!!!!@@rj!\r%!!!'E`!#!!!!#[q3"!%!N!3I!!!!&J!!!!S"!*!%(J!"!*!'"S`!!!!F!!!'M`!\r!!$!!!!DRrj!%!!!'Z`!"!!!!#[q3"!%!N!3I!!%!N!B'i`!!!$J!!!FY!!!!8!!\r!"fJ!!!"`!!!(ZJ!!!(J!!!I2!!!!R!!!"rd!!!$!!!!)A`!!!0!!!!Kc!!!!f!!\r!#+i!!!$m!!!)[2q3"!!!#-J!"!!!!!VrN!3"!*!%(`!!!"lrrrrm!3#3""`!!!!\rI!!!!CJ#3"4d!!!!J!!!!#J#3"4i!!3#3"JM`!!!!9!!!#B3!!!"B!!!*P3!!!'J\r!!!QT!!!!F!!!#H3!!!#8!!!*m[q3"!!!#Ii!"!!!!!VrN!3"!*!%(`!!!"lrrrr\rm!3#3""`!!!!I!!!!CJ#3"4d!!!!J!!!!#J#3"4i!N!J+*3!!!&J!!!UK!!!!B!!\r!#XJ!!!#%!!!+drq3"!!!#Y-!!J!!!!VrN!3"!*!%(`!!!"i!!!!$!3#3""i!N!J\r+r!!!!'!!!!Z"!!!!G!!!#kN!!!#-!!!,l3!!!*`!!!`V!!!!`!!!$$ErN!3!!!`\rf!!)!!!!+rj!%!3#3""m!!!!H!!!!!`%!N!3H!*!)$'B!!!!N!!!0"3!!!$J!!!d\rG!!!!3!!!$6N!!!"-!!!063!!!&`!!!eE!!!!G!!!$@!!!!#!!!!0XIq3"!!!$E%\r!"J!!!!VrN!3"!*!%(`!!!!B!!!"Q!3#3""`!!!!Hrrrrr!%!N!3E!!!!+J!!!'B\r!N!8G!!!!+`!!!!-!N!8H!!!!,!!!!!-!!`!!!$J!N!J0i`!!!#3!!!k%!!!!3!!\r!$T`!!!")!!!1ZJ!!!&3!!!l2!!!!C!!!$Yi!!!"m!!!1i`!!!)J!!!mirj!%!!!\r21!!'!!!!#[q3"!%!N!3I!!!!"3!!!'B"!*!%(!!!!"lrrrrm!3#3""X!!!!U!!!\r!CJ#3"4d!!!!V!!!!!`#3"4i!!!!X!!!!!`!$!!!!1!!"!*!'$lS!!!"!!!!2k`!\r!!&`!!"!F!!!!D!!!%$%!!!#%!!!3LJ!!!*!!!!!3U3!!!,!!!"$*!!!!c!!!%2S\r!!!$B!!!4$3!!!1J!!"%b!!!!m!!!%8(rN!3!!"&"!!-!!!!+rrrrq`%!N!3I!!!\r!22rrrrN"!*!%(J!!!$d!!!!$!3#3""d!!3#3"K&F!!!!-!!!%@lrN!3!!"''!!%\r!!!!+rrrrq`%!N!3I!!%!N!B4a2q3"!!!%Gi!!`!!!!Vrrrrh!3#3""m!!!!mrrr\rrq3%$!!!!A!!!!$B!!!!$!3-!!!"J!!%!N!B4q3!!!$J!!")*!!!!4!!!%LB!!!"\r-!!!5A3!!!(!!!"+#!!!!T!!!%XcrN!3!!",1!!-!!!!+rrrrp`%!N!3I!!!!53!\r!!'B!N!8G!!!!5J!!!!-!N!8H!!%!N!B6#J!!!$`!!"-P!!!!5!!!%d)!!!"3!!!\r6F`!!!(!!!"1p!!!!I!!!%lrrN!3!!"1r!!3!!!!+rrrrp3%!N!3F!!!!22rrrrN\r"!*!%(`!!!$B!!!!$!3#3""d!!!"*!!!!CJ#3"4i!!3#3"K2Brj!%!!!6fJ!"!!!\r!#[rrrr8"!*!%(`#3#"33!!!!"!!!&"m!!!!-!!!8@!!!!$!!!"4G!!!!0!!!&'c\rrN!3!!"4X!!-!!!"9!!!!CJ%!N!3$!!!!9J!!!'X"!*!%"!!!!"i!!!!$!*!&(`!\r!rrrrr3!"!!!!DJ!#rrrrrJ!!!!X!!!!J!!S!!!!-!!!!CJ#3"`d!!!"Q!!!!"!!\r!!!i!!!"Q!!!!#!!!!!m!!!"Q!!!!$!!!!"!!!!!+!!!!%!!!!"%!!!!+!!!!%J!\r!!")!!!!+!!!!&!!!!"-!!!!'!!!!&J!!!"6rrrrp!!!!'!!!!"8!!!"N!!!!(!!\r!rj!%!!(rrrrq!!$rrrrm!!%!!!!$!!,rrrri!!!!1!!!!!J!!J!!!$N!!!"Q!*!\r(1J!!!!-!!!!%!!$rrrrj!!(rrrri!!,rrrrk!!!!0!!!!"J!"J!!!$8!!!"R!*!\r(+J!!!'3!!!!%!!!!(J!!!!-!!!!)!!!!0J!!!!-!!!!-!!!!0rrrrrN!!!!3!!!\r!1`!!!'3!!!!8!!$rrrrl!!(rrrrk!!,rrrrf!!!!4!!!!"J!!3!!!%Arrrrk!*!\r'rrrrp`!"rrrrpJ!#rrrrp!!!!%i!!!!B!!%!!!"&rrrrqJ#3"[rrrr8!!Irrrr3\r!!Irrrr-!!!!*!!!!!3!!!!F!!Irrrr)!!!!+!!!!!3!!!!F!![rrrr(rN!3!!!!\r)!!!!![rrrr$rN!3!!!!-!!!!![rrrqrrN!3!!!!)!!!!![rrrqlrN!3!!!!-!!!\r!!Irrrqd!!!!+!!!!!3!!!!F!![rrrqcrN!3!!!!-!!!!![rrrq[rN!3!!!!)!!!\r!![rrrqVrN!3!!!!-!!!!![rrrqRrN!3!!!!-!!!%U%G98dN!"'`Z8QPZCd4TFh4\rIAdC3Be"M8'03B`!&QA0dBA*d!!1RC@jN!!3cCR*[E3!#rA4[!!5F3$Fd13!'9#j\rIAf0dAema-&*TEQG#G@CQCA*'9A-!"p8Z6Q9h8(4b!!4EG'KTF`!#K&*TEQG#G@C\rQCA)!"J0LG@CQCA)!"NePEQ4LG@B!"d"MEfjcG@eP!!F`F(*[C(9MC3!%kQCbC@8\r!"GCfB@aTC!!&T(0`BA*P!!5VE'pMD`!(('4PCR"bEf-!!cTKFQF!"U"LG@CcDAS\r!",4!0c8a!!A%,PpIC(4IAc%`8QPZCd*eCQCPFNCf!!-),N4TFh"[Ff93G()!!Nm\rZAepNE&pI4P"f!!5l3$Fe1!!#Abj3FQpNG@0PFPpI-6"5D@jR3R9QCQ9b4P*X!!1\r8,PpIF(4bAfGXG@8!!maXC@i!!qPbCA-!"R"cG(*PB@X!"2C!0cFc!!)5,N0[ER0\reE@9bAema-&*TEQG#G@CQCA*'8Q`!""9!0cJb!!(L,PCKE'PNBA4PAema-&*TEQG\r#G@CQCA*'E!!%(%!h1$N!!e8Z5@jfB@aTC'&dC9pI-6"5D@jR3R9QCQ9b4Q`!"$G\r!1$!`!!--,N0[ER0eE@9IAc%`8QPZCd*eCQCPFNC3Be*X!!)[,N*XEf0V6@pfC3!\r$RQ*eCJ!%XA*PFh3!"&p`BA*d!!3r3$J`1!!$D#j3FQpNG@0PAema-&*TEQG#G@C\rQCA*'8'05E!!%A8!i-6B!!m!ZAepMG&pI190MBA4d4f&dD%C33c9TEhCPBfN!!,0\rIAhCdAemj8f0KG(4(BA4S!!+(,NjPGdKKEQ4XC3!'L#j)6'pMD`!"aP0MBA4d4f&\rdD!!((A0MFQ&dBfJ!"39MEh9ZG!!#R'P[!!8cD@pfC@-!!(*TEhCIBQ&cC3!($'P\r[GPpXC@i!"r0IAhC`G()N!!-*D@pf!!22Bfjd!!5C3$Jc-J!$R#jIAf4dAemj8f0\rKG(4(BA4S4RB!"X-Z4'PcF'pcC8KKEQ4XC3!%Rd!i-cJ!!i-ZAepMG&pI190MBA4\rdCA*PFNC33c9TEhCPBfN!!%jIAhCdAemj8f0KG(4PFQ9b!!&"8f0KG(4PFQ9b!!)\rq*&0MBA4d4f&dD!!%Yd!i0$!!!bdZAepNG&pI190MBA4dCA*PFNCf!!GP,QePE@0\r`H3!%df*`G()!"#pcC@0d!!6D3$Je-`!#hLjIAf0dAemi4f&dD'9bCA*'8%-eD@p\rfC@0T!!GTAepfG&pI1%GKG'KPFQ9b!!"-4f&dD'9bCA)!"2T!1$Bc!!*lAepNG&p\rI190MBA4d4f&dD%Cf!!6l3$Jf0!!#0LjIAf4dAemi4f&dD'9bCA*'GJ!%rd!i0MJ\r!"#%Z3fp`H8-b8&0dFPpI4P"$Be"9B`!%Af0cG()!"!C`Fh4b!!3G3$Jh0J!%(d!\ri0cJ!!P0IAe*89%PIAcP6Bf&dG%GKG'J!""j!1$Fh!!'MAep59&4*Aemi4f&dD'9\rbCA)!!DjIAf4dAemi4f&dD'9bCA*'GJ!%)%!i0cN!"$K!1$J`!!*ZAep59&4*Aem\rj8f0KG(4PFQ9b!!)-AepNG&pI190MBA4dCA*PFNCf!!0Q3fp`H8-b8&0dFPpI4P"\r$Be"9B`!$IP423`!")&pIBh4IAcK(BA4SCA*PFNC33c9TEhCPBfN!!PpIAf0dAem\rj8f0KG(4PFQ9b4P"$0@P[GQ9MD3!#N9pIBh4IAcP6Bf&dG%GKG'K'8%-eD@pfC@0\rT!!,48(*[C(9MC9pI-6"5D@jR3R9QCQ9b4P"M8Q`!!QT$EfjcG@ePAema-&*TEQG\r#G@CQCA*'8'05E!!#ZNPZGQ&XD@4KG'9IAc%`8QPZCd*eCQCPFNCX!!#&9Q&XD@4\rKG'9IAc%`8QPZCd*eCQCPFNCX!!(l3fpZFh9YCA*IAc%`8QPZCd*eCQCPFNC5E!!\r"I&"bEf4eBf9bAema-&*TEQG#G@CQCA*'8Q`!"1aIAf4dAema-&*TEQG#G@CQCA*\r'GJ!&%&pIBh4IAc%`8QPZCd*eCQCPFNC9F`!!45K36eG5!*!'Df`!!*@B!!!#E!!\r!DpJ!!#R!!!!`D!!!!Ed!!!@a!!!!R!#33%9R!!"&D3#3"3&&E`8%!!!!(3!!!!6\rrrrrf!!!$&!#3"%9f#J#3""i!N!4&E`8%!!!!(`!!!!6rrrrf!!!$33#3"%9f#J#\r3"#!!N!4&E`8%!!!!)J!!!!3!!!!$!!!$Q!!!!!&&EK!%!!!!*3!!!!3!!!!$!!!\r$q[q3"%9V!!3!!!!f!!!!'!!!!#!!!!LY,!-!!%'#!!b!JJ!!N!"N!!!iB2rr6S!\r!)%9d!`#3"$F!!!!)4@X!"!!!!$N!!!!B!!!!8J!!#4-X!`!!3B)!$)##!!#3!'3\r!!$KJ!!"1J!!J4A3$!*!%0`!!!!K&EK!"!!!!2!!!!!,rrrrd!!!+%MS!!!"&D`!\r%!!!!23!!!qJ!!!#%!!!+%R`)!UDr)IrNN!!"!!L8)IqJ1m-!!)0#!!")!!!"B!!\r!!$XM!!#)'J!!+!!!!%##!"#!BJ!!Xb-!!%J!!"5!BJ!!U'-!!%J!!!&J!!!!2'"\r(9ML!+!!iBlG*5!!!!@!!!!"mI"Yj3B)!&$Km!!")!!!"B!!!!%J!!!JiB!!!1f-\r!!#`E!!4"J!!BJ(`!!)!$!!#3!"i!!#J!!!"!JJ!32'"846KM@&53!(i!!#`E!!K\r"J!!BJ(`!!)!$!!53!"i!"#J!!!"!JJ!32'"08$KM8b#3!(i!"#`E!!P!J!!31!!\r!!CJH!!K)!!!3J(`!!)J$!!LB(J!),"X!$N#!!"3mB$!a1'-`-T!!IJ!35!!!%)"\rm!!#!!`!+N!!H!"!X'`!+3)!!3$J!!!#B(J!*1!!!!*JH!!Si!!!!Q"i!#cJ!!!#\rB(J!-1!!!!*JH!!di!!!!Q"i!$MJ!!!#B(J!25!!"5)"m!!#)!`!*9!-'-$J!!!"\rmB`"3-!2rrh`!'4#B(J!*J(`!!)J$!!P8!`Cb1!!!!(aM!&!`!rrrI!!C%*JH!!S\riJ!!!J"i!%$aJ-$%iBc8`I!!B3%'!!#b!(J!32'!`-6KM1$"m!"K!3B%!')"m!!#\r)!`!*9!!(18'#!!JiJ!!"Q*i!#cL!!!#!(J!32'!`-6KM1$&m!"K!3B!!')"m!!#\r)!`!*9!!(18'#!!JiJ!!"Q*i!$cL!!!#!(J!32'!`-6KM0c4m!"K!3B!!')"m!!#\r)!`!*9!!(Hd'#!!JiJ!!"Q*i!$$L!!!#!(J!32'!`-6KM0c4m!"K!3B!!')"m!!#\r)!`!*9!!([8'#!!JiJ!!"Q*i!$6L!!!#!(J!32'!`-6KM0c4m!"K!3B!!')"m!!#\r)!`!*9!!(rd'#!!JiJ!!"Q*i!$S!H!"!mB$!a1'-b-(`!'%""J!!-,"X!%%#!!"!\ri!!!!X"i!&%J!!"#!I!!!U!-!$V!H!"5S(J!8,!!!!%##!"!i!!!!N!!H!"C)!!#\rNU"i!&"aJ!!a)!!!"B!!!!*!!IJ!@+!-!!%'#!)JiI!!!5!!!!@!!!!#!IJ!@J*`\r!!$L%!"#S(J!8(+!!$%J!!!&J!!!!1k!!!%J!!%`li!!!5!!!1)"q!"BF(3!-I!$\rk&(`$!+jm!!Gd,!!!)%##!"JiJ!!!J(i!&K`G!!am!2S8I)-"VM[r!!%X(`!%3B$\rrb$Zp!!'S(J!8I"d!!%'!rl#)'J!!+!!!!%##!#Ji!!!"Q"S!!)JH!!NS!!!!3))\r!)$KL!!")!!!"B!!!!%J!!"!iH3!!5!!!!@!!!!!iI!!!5!!!!@!!!!!iIJ!!J!%\r!D$JK!'"m#!1QZb(rj%k!!#"&G!-!N!3k!!!!&%9e!*!&2J!!!"K&G!-!N!3l!!!\r!-%9d!`#3"$X!!!!m4A8!N!8r!!!!4%9e!*!&3!!!!&K&G3#3"8%!!!"X4A8!N!9\r#!!!#m%9e!*!&3`!!!`K&G3#3"83!!!-N4A-3!*!%2!!!!kK&G3#3"88!!!1X4A8\r!N!8r!!!$[%9e!*!&4J!!!mK&EJ`%!!!!6`!!!!b!!*!,J!!$k$J!!!"&G`#3"6d\r!N!4&D`!%!!!!8!!!!A`!!!(m!!!4eR`)!UD6iIrmNm(rq*1Krr56JIr`N!!"!!L\r8)IqJ1m-!!$ZN!!#!BJ!!J!-!!#J!!!""JJ!J1(d!!)##!!#"K!!!5!!!!@!!!!"\r8B!Br3))"%+Kp!!#!R3!#1,d!"MM"!%")!!!"B!!!!(aJ"c9!JJ$`1(d!"ML!!#j\r)!!!"B!!!!(am'hP"JJ#N1"d!"RaJi&#)(3!'I!-!8#`!!!4"J3#-1'%!1$LF!!%\ri(3!'I+$J8)JG!!CmT3"35!!!!@!!!!!li!!!5!!!@)"q!"BF(`!-I'-#&$L"!$J\riS!!%5!!!!@!!!!!X!`!!3))!-)#H!"BFI`!-1!-!"(`%!#k3!!%!3)#H!"BFI`!\r-1!-!#(`%!#k3!!%!4%J!!$!lr`!"U"i!&(`I!!""J2qNJ"i!!*!!!3"!J"i!"*!\r!!3"%S!%!5&3!"Lb`!3")U(d!!)#G!!)i[3!'1-%!3%J!!!&J!!!!J!%!D$JK!'"\rm#!1QJq(rr)2"rrL$SIrdJi(rm%k!!#"&G!-!N!3K!!!!*%9d!`#3"#%!!!!i4A8\r!N!94!!!!3%9e!*!&8J!!!'"&G3#3"9-!!!"i4A8!N!98!!!!Z%9e!*!&93!!!0a\r&G3#3"9B!!!&84@i-"!!!!'N!!!!-J!#3#i!!!A`J!!!!4AF!N!93!*!%4@X!"!!\r!!'S!!!"B!!!#[!!!&6Gm#!+QN!!"!!L8)Ir!N!"K!&K)!!!"B!!!!)#$!!#!BJ!\r!1!-!bR`%!%""JJ!8J')!!$KM!-T)!!!"B!!!!$J!!!'!B3"BQ!-!$)!"!%Ji)3"\r!I!J$TNk!!#"&G3#3"@X!!!!34A3$!*!%E!!!!"a&G!-!N!4X!!!!,%9e!*!&E3!\r!!$4&EJ`%!!!!EJ!!!!b!!*!,J!!!@!#3"%9h!*!&DJ#3"%9U!!3!!!"[!!!!"!!\r!![i!!"D96S!!)%9V!!3!!!"`!!!!3!!!!a)!!"JcI!J#TT2Krrb3!!%!#*3Krm!\rli`!!L!-"!#J!!!""JJ!31!!!!*JI!3")!!!"J!%!5$JK!%"m#!1QJq(rr%k!!#"\r&G3#3"@m!!!!S4@i-"!!!!(%!!!!-J!#3#i!!!%!)!!!!4AF!N!9`!*!%4@X!"!!\r!!()!!!!)!!!$6!!!'2diB!"!6S!!)%9V!!3!!!"c!!!!k!!!!f!!!"NVI!J#TT2\rKrrb6`IriNk(rp*!!!3!)P#(rX*!!B3"SN!#"!'b3!+%!F)"L!!")!!!"J'%!D%J\r!!!&J!!!!I(iEH8'#!(!iIJ!!J)%!E)#K!(#"RJ!!JB`!$%J!!!&J!!!!I(mEH8'\r#!%b!BJ!!1*m!!$LJ!!")!!!"B!!!!$ZM!!!X(Irr3B)!$$Kp!!")!!"%,"m!!%'\r#!"`iI`!!1)!!!B'I!!+"M!"J5!!!!@!!!!#!BJ!!J!-!!#`!!!"!JJ!31'!!$%J\r!!!&)!!!)1'$rri!"!&Ji)3"3I!J$TS2Krrb$`IriJk(rp%k!!#"&G!-!N!3@!!!\r!*%9e!*!&F!!!!#K&G3#3"A3!!!!`4A8!N!94!!!!9%9d!`#3""B!!!"N4A8!N!9\re!!!!F%9e!*!&83!!!+4&G!-!N!3h!!!!V%9e!*!&0J!!!-"&EJ`%!!!!I3!!!!b\r!!*!,J!!!k"J!!!"&G`#3"A-!N!4&D`!%!!!!IJ!!!83!!!33!!!DNA`)!UD6iIr\rmNm(rq*1Krr53!!%!#*3Krl#3!'%!D*!!J3"XN!#K!(!laJ!!Jq)!!$Kr!!")!!!\r"J'%!D%J!!!&J!!!!I(dEH8'#!-3iI3!!J)%!E)#K!(!i`3!iJCd!!)'-!"")!!!\r"B!!!!#`$!!"!JJ#F1(m!!)#"!$JiS!!!5!!!!@!!!!#3!(i!!#`$rrp"JJ!m1(m\r!!)#"!$`iS!!!5!!!!@!!!!#3!(i!"#`$rrp"JJ!-1'!!!%J!!(3iI`!!J*i!!%J\r!!!&J!!!!J'%!1#`$!!""JJ!B1)!!!B'$!!+"M!"J5!!!!@!!!!#!B3!m,!-!!%'\r#!"JiJ!!"JB-!!S'-!'")!!!"B!!!!)"L!!#!!`!!,!!!!%##!"!iB!!-5!!!!8J\r!!!JiB2rrJ!%!@$JK!&"m#!1QJq(rr)2"rrL$SIrd6S!!)%9d!`#3""B!!!!S4A8\r!N!9`!!!!-%9e!*!&G!!!!$K&G3#3"9%!!!"J4A8!N!9e!!!!I%9e!*!&G3!!!*a\r&G3#3"Am!!!$!4A8!N!94!!!!i%9e!*!&83!!!3"&G!-!N!3h!!!"#%9e!*!&0J!\r!!4a&EJ`%!!!!J3!!!!b!!*!,J!!"4"J!!!"&G`#3"Ai!N!4&D`!%!!!!JJ!!!(J\r!!!6B!!!FVh`)!UD6iIrmN!!"!!L8)Ir!1q-!!%J!!!&J!!!!1'!!!6L!!!%iS!!\r!10m!!%J!!!%X!`!!3B)!$$KJrrp)!!!SJ(m!!$L!!!&)!!!"B!!!!)"r!!3iJ!!\r!5!!!!@!!!!!iB!!!J!%!5$JK!%"m#!1QJq(rr%k!!#"&G3#3"B-!!!!84A8!N!9\rq!!!!,%9e!*!&K!!!!%K&G3#3"B3!!!"B4@i-"!!!!)8!!!!-J!#3#i!!!(J)!!!\r!4AF!N!@#!*!%4@X!"!!!!)B!!!#)!!!&)J!!(90m#!+QNq(rr*!!!3!)P#(r`*!\r!B3"BN!#"!&b3!+%!B*!!`3"NN!$K!'L4!3"XN5%!F)"K!&K)!!!"B!!!!(ar'hP\r"JJ!d1(m!!)#"!&b!S3"JJ-%!C)$K!'L"!3"XJ5%!F)'I!!#"M!!85!!!!@!!!!"\r)!!!)1'$rri!"!%Ji)3"!I!J$TS2Krra1J!!J4A8!N!9d!!!!-%9e!*!&83!!!'4\r&EJ`%!!!!LJ!!!!b!!*!,J!!!L!J!!!"&G`#3"BB!N!4&D`!%!!!!L`!!!'`!!!@\rq!!!H9(`)!UD6iIrmN!!"!!L8)Ir!N!"K!&L3!)%!A*!!S3"JJ')!!)#"!&K)!!!\r"B!!!!(ar'hP"JJ!N1(m!!)#"!&b!S3"JJCm!!S'-!!K)!!!"B!!!!%J!!!JiB2r\rrJ!%!5$JK!%"m#!1QJq(rr%k!!#"&G!-!N!3@!!!!(%9e!*!&M!!!!#4&G3#3"9%\r!!!")4@i-"!!!!*)!!!!-J!#3#i!!!'`)!!!!4AF!N!@,!*!%4@X!"!!!!*-!!!"\rX!!!'%J!!(ZPm#!+QNq(rr*!!!3!)P#(r`*!!B3"BN!#"!&b3!+%!B)"L!!#!J3"\rB5!!!!@!!!!"mIaYj3B)!*$Kr!!#!J3"FJ+%!B)'I!!+"M!!-5!!!!@!!!!")!!!\r)1'$rri!"!%Ji)3"!I!J$TS2Krra1J!!J4A3$!*!%&J!!!"a&G3#3"B`!!!!N4A8\r!N!94!!!!5%9Z$!3!!!#@!!!!$)!!N!Z!!!"X#!!!!%9h!*!&N`#3"%9V!!3!!!#\rA!!!!C!!!"QB!!"q%I!J#TT2Krrb3!!%!#*3Krm#3!'%!@*!!J3"FJ')!!)#"!&K\r)!!!"B!!!!(ar'hP"JJ!J1(m!!)#"!&b"R`!#JB`!%%J!!!&J!!!!5!!!#$KJrrq\r!!3")1#%!3(`)!kD$iIrm6S!!)%9d!`#3""B!!!!B4A8!N!@-!!!!)%9e!*!&83!\r!!%"&EJ`%!!!!Q3!!!!b!!*!,J!!!C!J!!!"&G`#3"CF!N!4&D`!%!!!!QJ!!!-!\r!!!DX!!!Ikh`)!UD6iIrmNm(rq*!!!3!)P#(r`$[$!!#3!)%!A*!!S3"JJ')!!$L\rH!!")!!!"B!!!!(ar'hP"JJ"`1(m!!)#"!&b!S3"JJCm!!S'-!"4)!!!"B!!!!(a\rr'hP"JJ"-J')!!$LI!!!iS!!!5!!!!@!!!!!l``!!,"lrrd'#!!`iIJ!!5!!!+#`\rI!!""JJ!F1(m!!$L!!!'"R`!#JB`!B%J!!!&J!!!!1'$rri!"!%Ji)3"!I!J$TS2\rKrrb$`Iri6S!!)%9d!`#3""B!!!!J4A8!N!@-!!!!+%9e!*!&83!!!%a&G!-!N!3\r@!!!!A%9e!*!&G3!!!'K&G3#3"9%!!!#F4@i-"!!!!*X!!!!-J!#3#i!!!-!3!!!\r!4AF!N!@D!*!%4@X!"!!!!*`!!!!i!!!(+!!!)2Ym#!+QN!!"!!L8)Ir!N!"K!&J\ri!2rrN!!#!!#!BJ!!J)%!@%J!!!&J!!!!J!%!5$JK!%"m#!1Q6S!!)%9c%!#3"#8\r!!!!84A3$!*!%&J!!!"K&G3#3"Am!!!!J4@i-"!!!!*d!!!!-J!#3#i!!!$J!N!4\r&G`#3"C`!N!4&D`!%!!!!RJ!!!33!!!G5!!!MDR`)!UD6iIrmNm(rq*1Krr56JIr\r`N!!"!!L8)Iq`N!"K!'L3!)%!E*!!S3"`N!$"!(5$iJ!!Jm)!!)1L!!#)(J!)I!!\r(G8'#!&4)!!!"B!!!!#`$!!"!JJ!`J"m!!#J!!!""JJ!`1'!!#BLH!!KmK!GdJCm\r!!%J!!!&J!!!!,!-!!%'#!"!iB!!%5!!!!8J!!!`i!!!!N!!G!!!i!!!!N!!"!$L\r!BJ!!J)%!D%J!!!&J!!!!I(`EH8'#!$!iI!!!J)%!E)#K!(#!`3"d11!!!$N"!$L\r"R!!#JB`!)%J!!!&J!!!!5!!!#$KJrrq!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr5\r$JIr`6S!!)%9d!`#3""d!!!!X4A3$!*!%!J!!!$"&G!-!N!3h!!!!0%9e!*!&R`!\r!!%4&G3#3"9%!!!"`4A8!N!8f!!!!K%9d!`#3""B!!!#F4A8!N!@-!!!!T%9e!*!\r&83!!!04&EJ`%!!!!S`!!!!b!!*!,J!!""#!!!!"&G`#3"Ci!N!4&D`!%!!!!T!!\r!!33!!!I5!!!N2R`)!UD6iIrmNm(rq*1Krr56JIr`N!!"!!L8)Iq`N!"K!'L3!)%\r!E*!!S3"`N!$"!(53!1%!H*%"!(b$iJ!!Jm)!!)1L!!#)(J!)I!!(G8'#!&4)!!!\r"B!!!!#`$!!"!JJ!`J"m!!#J!!!""JJ!`1'!!#BLH!!KmK!GdJCm!!%J!!!&J!!!\r!,!-!!%'#!"!iB!!%5!!!!8J!!!`i!!!!N!!G!!#!BJ!!J)%!D%J!!!&J!!!!I(`\rEH8'#!$!iI!!!J)%!E)#K!(#!`3"dJ1%!H)%"!(b"R!!#JB`!)%J!!!&J!!!!5!!\r!#$KJrrq!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr5$JIr`6S!!)%9d!`#3""d!!!!\rd4A3$!*!%!J!!!$K&G!-!N!3h!!!!2%9e!*!&R`!!!%a&G3#3"9%!!!"i4A8!N!8\rf!!!!M%9d!`#3""B!!!#F4A8!N!@-!!!!T%9e!*!&83!!!04&EJ`%!!!!TJ!!!!b\r!!*!,J!!""#!!!!"&G`#3"D3!N!4&D`!%!!!!T`!!!83!!!KB!!!P*A`)!UDr!Ir\rJN!!"!!L8)Iq3!*!!B3#)1i3!!*!!S3#3!)2L!!#$`J!!Jk)!!)JH!!Km!!Ge3B)\r!9%J!!!&J!!!!,!-!!%##!$#!(`!!+!!!!%'#!$!iB!!*L*i!#(b%"h5"R`!!5!!\r!!@!!!!!X!`!!3B)!%$KJ!!4)!!!"5!!!$$J!!!#3!"d!!)"L!!#!J3#)5!!!!@!\r!!!"mHaYj3B)!P$KK!$L!R!!)J,`!$%J!!!&J!!!!J!%!2#J!!!""JJ"31(X!!)#\r"!$b!S3"!J-%!N!#!r!!!14`!")'E!!+"M!!J5!!!!@!!!!!l!`!!N`%!3$YB!!!\riB3!i1)$rrdJ!!!&J!!!!1(S!!%J!!#`iB!!-5!!!!6XM!!!iB3!i1)$rrdJ!!!&\rJ!!!!1(N!!%J!!!JiB2rrJ!%!H$JK!("m#!1QZ`(ri%k!!#"&G!-!N!3G!!!!(%9\rd!`#3"!)!!!!J4A3$!*!%0`!!!#4&G3#3"Cm!!!!d4A8!N!94!!!!B%9e!*!&0J!\r!!(4&G!-!N!3@!!!!K%9e!*!&M!!!!)a&G3#3"DJ!!!#S4A8!N!94!!!!h%9e!*!\r&U3!!!2K&G3#3"6B!!!%-4A8!N!@T!!!"(%9Z$3)!!!#r!!!!')!!N!G!!!$J!1!\r!%!%3!4!!%!!!JJ!!1!#3"%9f#J`!!!$!!!!!&%9Z$!3!!!$"!!!!$)!!N!d"4!#\r3"%9h!*!&T`#3"%9h$3#3",m!!!!)4@S!"!!!!-)!!!#!!!!)iJ!!*Xjm#!+QNq(\rrr*!!!3!)P#(r`$[M!!!X(rrr3))!8)"L!!#!!`!!,!!!#d'#!%"!J!!3,!!!"%'\r#!$4)!!!8,!!!*N#!!!`X!!!N3)!!))"L!!#)!`!1+!!!!%'#!"!iB!!05!!!!@!\r!!!!iI`!!J!%!5$JK!%"m#!1QJq(rr%k!!#"&G!-!N!3h!!!!(%9d!`#3"!)!!!"\r-4A8!N!A$!!!!B%9Z$!3!!!$&!!!!$)!!N!Z!!!#!#!!!!%9h!*!&`J#3"%9V!!3\r!!!$'!!!"2!!!#53!!#I0I!J#TVmKrq53!!%!#*3Krj!!N!"K!)L3!)%!M*!!S3#\r3!)2L!!#$`J!!Jk)!!)JH!!Km!!Ge3B)!9%J!!!&J!!!!,!-!!%##!$#!(`!!+!!\r!!%'#!$!iB!!*L*i!#(b%"h5"R`!!5!!!!@!!!!!X!`!!3B)!%$KJ!!4)!!!"5!!\r!$$J!!!#3!"d!!)"L!!#!J3#)5!!!!@!!!!"mI"Yj3B)!M$KK!$L!J3#-J+%!N!"\r)!!!"B!!!!)!"!$`S!!!!3B)!5$Km!!#!J3!mJ+%!3)'F!!+"M!!F5!!!!@!!!!!\rl)`!!Nb%!3%J!!!%lB`!!1'%!1$L!rrp)!!!"B!!!!$Kl!!")!!!X1'!!$%J!!!%\rl3`!!1'%!1$L!rrp)!!!"B!!!!$Kk!!")!!!)1'$rri!"!(Ji)3"`I!J$TVXKrq4\r1J!!J4A3$!*!%(3!!!"a&G!-!N!3#!!!!)%9d!`#3"$F!!!!N4A8!N!@I!!!!0%9\re!*!&83!!!'"&G3#3"6B!!!"d4A3$!*!%&J!!!)4&G3#3"B`!!!#-4A8!N!A(!!!\r!U%9e!*!&83!!!0"&G3#3"F)!!!$J4A8!N!A)!!!!m%9e!*!&0J!!!34&G3#3"FJ\r!!!%84@i0!J!!!-`!!!!BJ!#3"cJ!!03!j!!3!3J"#!!3!!##!!!i!*!%4AB+$!!\r!!-d!!!!84@i-"!!!!-i!!!!-J!#3$3%m!*!%4AF!N!A'!*!%4AF0!*!%c!!!!!K\r&D`!%!!!!c`!!!3!!!!QZ!!!T#(`)!UD6iIrmNm(rq*1Krr56JIr`N!!"!!L8)Iq\r`N!"K!'L3!)%!E*!!S3"`N!$"!(5$iJ!!Jm)!!)1L!!#)(J!)I!!(G8'#!&4)!!!\r"B!!!!#`$!!"!JJ!`J"m!!#J!!!""JJ!`1'!!#BLH!!KmK!GdJCm!!%J!!!&J!!!\r!,!-!!%'#!"!iB!!%5!!!!8J!!!`i!!!!N!!G!!#!BJ!!J)%!D%J!!!&J!!!!I(`\rEH8'#!$3iI!!!J)%!E)#K!(#!`3"d11!!!$N!!!#"R!!#JB`!*%J!!!&J!!!!5!!\r!!8J!!!JiB2rrJ!%!@$JK!&"m#!1QJq(rr)2"rrL$SIrdJi(rm%k!!#"&G!-!N!3\rG!!!!,%9d!`#3"!)!!!!`4A3$!*!%0`!!!$4&G3#3"Cm!!!"%4A8!N!94!!!!F%9\re!*!&0J!!!)4&G!-!N!3@!!!!P%9e!*!&M!!!!*a&G3#3"9%!!!$-4A8!N!A#!!!\r!e%9Z$!3!!!$3!!!!$)!!N!Z!!!%!)!!!!%9h!*!&c`#3"%9V!!3!!!$4!!!"#!!\r!#KJ!!#RHI!J#TT2Krrb6`IriNk(rp*1"rr#3!!%!#*3Krl#3!'%!D*!!J3"XN!#\rK!(#3!-%!G*!!i3"iN3%!I)2L!!#$`J!!Jk)!!)JH!!Km!!Ge3B)!9%J!!!&J!!!\r!,!-!!%##!$#!(`!!+!!!!%'#!$!iB!!*L*i!#(b%"h5"R`!!5!!!!@!!!!!X!`!\r!3B)!%$KJ!!4)!!!"5!!!$$J!!!#3!"d!!)"L!!#!J3"S5!!!!@!!!!"mI"Yj3B)\r!0$Km!!#!J3"XJ+%!F)$"!(5!i3"iJ3%!I)'F!!+"M!!N5!!!!@!!!!")!!!"5!!\r!#$KJrrq!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr5$JIr`6S!!)%9d!`#3""d!!!!\rd4A3$!*!%!J!!!$K&G!-!N!3h!!!!2%9e!*!&R`!!!%a&G3#3"9%!!!"i4A8!N!8\rf!!!!M%9d!`#3""B!!!#F4A8!N!@-!!!!T%9e!*!&83!!!04&G3#3"F)!!!$F4@i\r-"!!!!03!!!!-J!#3#i!!!3JJ!!!!4AF!N!A4!*!%4@X!"!!!!08!!!&)!!!+RJ!\r!+ZKm#!+Q[`(ri*!!!3!)P#(rN!#3!'%!L$Z%!!#3!+%!N!#$iJ!!Jm)!!)1L!!#\r)(J!)I!!(G8'#!&4)!!!"B!!!!#`$!!"!JJ!`J"m!!#J!!!""JJ!`1'!!#BLH!!K\rmK!GdJCm!!%J!!!&J!!!!,!-!!%'#!"!iB!!%5!!!!8J!!!`i!!!!N!!G!!#!BJ!\r!J)%!L%J!!!&J!!!!I(XEH8'#!*JiB3!iJ*`!#)#m!!a)!!!"B!!!!)!"!$`S!!!\r!3B)!9$Kl!!#!J3!mJ+%!3)$"!*!!J2`!!)%F!!5"Q`!#JB`!*%J!!!&J!!!!1`-\r!!*-"!%")!!!"1d-!!$KK!$JiJ2rr5!!!!@!!!!!iHJ!!5!!!,$KJ!!a)!!!"1b-\r!!$KK!$JiJ2rr5!!!!@!!!!!iH3!!5!!!#$KJrrq!!3"i1#%!F(`)!kDl!IrJ6S!\r!)%9d!`#3""d!!!!F4A3$!*!%!J!!!#"&G!-!N!3h!!!!*%9e!*!&R`!!!$4&G3#\r3"9%!!!"J4A8!N!8f!!!!G%9d!`#3""B!!!#%4A8!N!@-!!!!M%9e!*!&a`!!!+K\r&G3#3"9%!!!$F4A8!N!A#!!!!l%9e!*!&b!!!!2a&G3#3"6B!!!%34A8!N!A)!!!\r")%9Z$3)!!!$@!!!!')!!N!G!!!$J!2!!%!%8!43!%!!!JJ!!1!#3"%9f#J`!!!$\r0!!!!&%9Z$!3!!!$A!!!!$)!!N!d"5!#3"%9h!*!&e3#3"%9h$3#3"0B!!!!)4@X\r!"!!!!0J!!!%)!!!,+!!!,-"m#!+Q[f(rl*!!!3!)P#(rS$YM!!!i!!!!Q!%!1MJ\r!!!#B!3!j1!!!!*J"!$Jl`!!!1k!!!)"L!!!iQ`!!5!!!!@!!!!!S!`!!3))!%$K\rJ!!P)!!!"5!!!S)"L!!!iQ`!!5!!!!@!!!!!lJ`!!1r`!!+JF!!a8!!Ir3B)!#$[\r"!$US(`!-9!!([8'#!!JlS3!j1(`!!$LH!!!i[3!!1-!!!)'F!!+"M!"B5!!!!@!\r!!!!X!`!!3B)!2)J"!$NS!!!!3B)!&)"r!!BiJ!!#5!!!!@!!!!#)!3!k+!!!!%'\r#!"5!I`!'1)!!!8J!!!&J!!!!1'!!!)!"!'Ji)3"JI!J$TVYKrqa1J!!J4A3$!*!\r%&J!!!$4&G3#3"B`!!!!m4A8!N!8f!!!!8%9d!`#3""B!!!"B4A8!N!@-!!!!B%9\re!*!&83!!!+K&G3#3"GN!!!$-4A8!N!AC!!!!k%9Z$!3!!!$j!!!!$)!!N!Z!!!%\r)+!!!!%9h!*!&f!#3"%9V!!3!!!$k!!!'#!!!$!`!!#pVI!J#TVi"rm#3!!%!#*3\rKrf!kJ`!!1b3!!$Y&!!!lCJ!!1JF!!),L!!##SJ!!JX)!!$TJ!!!iB3"31)!!!$L\rJ!!K)!!!"B!!!!$KK!%JiJ!!!1+!!#%J!!!&J!!!!1'%!3$L!!!!iS!!)5!!!!@!\r!!!!S%!!!3B)!))"`!!3i!%%DI'-$eS!3!!!F!!!mIN-#&%J!!!`q3(Ff1P+8!%J\r!!!&J!!!!1L-!!$[J!!")!!#B+"N!!%'#!#!iB!!"9q!'rRaJ!$"AiqMkI(NB,R`\r!'$P!JJ"-+"S!!%'#!#!iB!!"9q!'rRaJ!$"AiqMkI(SB,R`!'$P!JJ!S+"X!!%'\r#!%3iB!!"9q!'rRaJ!$"AiqMkI(XB,R`!'$P"JJ!S1(8!!$LI!!")!!!"B!!!!#J\r$!!"!JJ!31'!!#8J!!!&)!!5i1rm!!A`IS!""J2pS1q!!!%J!!23iG3!!1*m!!%J\r!!!&J!!!!I(JEH8'#!0Ji!!!!+"N!!%'#!#3iB!!"9q3'rRaN)$"AiqMkI(NB,Rb\r$'$P"JJ!)1!!!!CJ"!$ii!!!!+"S!!%'#!#3iB!!"9q3'rRaN)$"AiqMkI(SB,Rb\r$'$P"JJ!)1!!!!CJ"!$di!!!!+"X!!%'#!#3iB!!"9q3'rRaN)$"AiqMkI(XB,Rb\r$'$P"JJ!)1!!!!CJ"!$b)!3!q+!!!!%##!"b)!3!p+!!!!%##!"#)!3!m+!!!!%'\r#!#3iH!!!L)%!2SLK!$f)`3!mJCJ!!S'-!&4)!!!"B!!!!$[r!!&m(k!!3B$r$$[\rJ!!")!!')1(8!!$LI!!")!!!"B!!!!(ai'hP"JJ&X1!!!!*J"!$ii!!!!Q!%!26J\r!!!#B!3!m+"N!!%'#!#Ji!!!"9q-'rR`$'$"Ai1MkI"N!,RaJ!$P"JJ!-1m%!2NJ\r!!!Jl`!!!+"S!!%'#!#Ji!!!"9q-'rR`$'$"Ai1MkI"S!,RaJ!$P"JJ!-1k%!28J\r!!!JlS!!!+"X!!%'#!#Ji!!!"9q-'rR`$'$"Ai1MkI"X!,RaJ!$P"JJ!-1i%!2%J\r!!!JlJ!!!+"i!!%##!"3S(3!!3))!$#JF!!""JJ#X1(J!!$LH!!!i[3!!10`!!)'\rB!!+"M!"B5!!!!@!!!!"qFaS8L!%!2LJ!!!""JJ!N9q$SqMKK!&"m``!Z1)!!!9I\rP"[jmK#J`I-3MH(b$!5k)!3!p+!!!!%'#!#4Ai1Mk1'%!5(c$!#iiJ!!"9q8'rRb\r%+$"ma#0iI)-",SJ"!$`S!!!!3B)!*&IJk2SiB3"!I--!,ML!!!&Aj3EqI)3S-(c\r%)hKmJ`%Z1rm!!A`IS!""J2ji,"-!!%##!,#!&J!!N!!"!$Ji!!!!N!!@!!")!!!\r"B!!!!#`$!!"!JJ!XJ"F!!#J!!!""JJ!X1'!!!6L5!!#"P`!!5!!!!@!!!!!X!`!\r!3B)!%$KJ!!4)!!!"5!!!$$J!!!#3!"B!!)!@!!!X!!!!3B)!)$TJrrq!&J!!,!!\r!!%##!$L!!3!iN!!@!!")!!!XJ"B!!#`!!!"!JJ!-J!%!1*!!&J!!5!!!!@!!!!"\rm%4K3I!#3!%""J2fm1q!!!%J!!23iG3!!1*m!!%J!!!&J!!!!I(JEH8'#!0Ji!!!\r!+"N!!%'#!#3iJ!!"9q-'rRb%'$"AiqMkI(NB,Rb$'$P"JJ!)1!!!!CJ"!$ii!!!\r!+"S!!%'#!#3iJ!!"9q-'rRb%'$"AiqMkI(SB,Rb$'$P"JJ!)1!!!!CJ"!$di!!!\r!+"X!!%'#!#3iJ!!"9q-'rRb%'$"AiqMkI(XB,Rb$'$P"JJ!)1!!!!CJ"!$b)!3!\rq+!!!!%##!"b)!3!p+!!!!%##!"#)!3!m+!!!!%'#!#3iH!!!L)%!2SLK!$f)`3!\rmJCJ!!S'-!&a)!!!"B!!!!$[r!!&m(k!!3B$r$#`6!!"!J!!31'!!"%J!!!&)!!"\r3+"N!!%'#!"5!B3"3J!%!9*!!H3!!N!!C!!3S'J!!3B)!&)"K!%L!!3"-N!"k!!#\r3!"S!"#JE!!""JJ!8J'%!3)!"!%53!(X!!*!!'`!%1(-!!)!"!+Ji)3#JI!J$TVS\r"rm"1J!!J4A3$!*!%(3!!!#4&G!-!N!3@!!!!+%9d!`#3"$F!!!!X4A8!N!Al!!!\r!3%9e!*!&q`!!!&4&G3#3"IX!!!"S4A8!N!Am!!!!R%9e!*!&M!!!!54&G3#3"6B\r!!!%i4A8!N!@-!!!"A%9e!*!&83!!!MK&G3#3"B`!!!*F4A8!N!94!!!$4%9e!*!\r&R`!!!rK&G3#3"9%!!!3J4A8!N!8f!!!%0%9e!*!&r!!!")"&G3#3"B`!!!5N4A8\r!N!94!!!&J%9e!*!&0J!!"D"&EJd#!!!"%J!!!"+!!*!(J!!$r!3i!!S!!))!!$J\r!N!C&GJS-!!!"%`!!!!j&EJ`%!!!"&!!!!!b!!*!0"JJ!N!4&G`#3"IS!N!4&G`d\r!!!!"%J!!!!K&D`#%!!!"&3!!!'L!!*!(I!J#TT2Krrb3!!%!#*3Krm"mIaYjX)%\r!AN'#!$L!BJ!!J!-!!#`!!!"!JJ!3J"m!!)"L!!#3!!-!!+J"!&iX!!!!3)%!%$K\rr!!")!!!"B!!!!$Kr!!#!!3")1#%!3(`)!kD$iIrm6S!!)%9d!`#3"$F!!!!F4A3\r$!*!%0`!!!$"&G3#3"!%@!!!!5%9Z$!3!!!%A!!!!$)!!N!Z!!!"S#!!!!%9h!*!\r%!48!N!4&D`!%!!!"'!!!!'`!!!l3!!!hYA`)!UD6iIrmN!!"!!L8)Ir!N!"K!&L\r3!)%!A*!!S3"JJ')!!)#"!&K)!!!"B!!!!(ar'hP"JJ!N1(m!!)#"!&b!S3"JJCm\r!!S'-!#K)!!!"B!!!!%J!!!JiB2rrJ!%!5$JK!%"m#!1QJq(rr%k!!#"&G!-!N!3\r@!!!!(%9e!*!&M!!!!#4&G3#3"9%!!!")4@i-"!!!!4N!!!!-J!#3#i!!!'`)!!!\r!4AF!N!3"'!#3"%9V!!3!!!%D!!!!E!!!$b3!!$K+I!J#TT2Krrb3!!%!#*3Krm#\r3!'%!@*!!J3"FN!#K!'#!BJ!!J)%!@%J!!!&J!!!!I(mEH8'#!#3iI`!!J)%!A)#\rK!'#"R`!#JB`!,%J!!!&J!!!!5!!!#$KJrrq!!3")1#%!3(`)!kD$iIrm6S!!)%9\rd!`#3""B!!!!F4A8!N!@-!!!!*%9e!*!&83!!!%K&EJ`%!!!"'`!!!!b!!*!,J!!\r!E!J!!!"&G`#3"!%D!*!%4@X!"!!!!)3!!!"N!!!2H!!!10pm#!+QNq(rr*!!!3!\r)P#(r`*!!B3"BN!#"!&b!BJ!!J)%!@%J!!!&J!!!!I(mEH8'#!#!iI`!!J)%!A)'\rI!!+"M!"35!!!!@!!!!")!!!)1'$rri!"!%Ji)3"!I!J$TS2Krra1J!!J4A3$!*!\r%&J!!!"K&G3#3"B`!!!!J4A8!N!94!!!!3%9Z$!3!!!%G!!!!$)!!N!Z!!!"N#!!\r!!%9h!*!&K!#3"%9V!!3!!!%H!!!!A!!!$li!!$P*I!J#TT2Krrb3!!%!#*3Krm#\r3!'%!@)"L!!#!J3"B5!!!!@!!!!"mIaYj3B)!()"L!!!iR`!!1+!!!%J!!!&J!!!\r!5!!!#$KJrrq!!3")1#%!3(`)!kD$iIrm6S!!)%9d!`#3""B!!!!84A8!N!@-!!!\r!(%9d!`#3""B!!!!X4A8!N!9e!!!!1%9Z$!3!!!%I!!!!$)!!N!Z!!!"F#!!!!%9\rh!*!%!4i!N!4&D`!%!!!")!!!!*`!!!rf!!!jTR`)!UD6iIrmNm(rq*1Krr53!!%\r!#*3Krl#3!'%!D$ZN!!#$iJ!!1(m!!)#"!'K)!!!"B!!!!(aq'hP!JJ!-1'$rrdJ\r!!%!iI`!!1*d!!%J!!!&J!!!!+!-!!%'#!"3iI`!!1*d!!%J!!!&J!!!!1(m!!$L\rH!!!i[3!!5!!!!@!!!!#!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr41J!!J4A3$!*!\r%&J!!!#"&G3#3"B`!!!!X4A8!N!@-!!!!6%9e!*!&I`!!!'4&G3#3"A8!!!"i4@i\r-"!!!!5)!!!!-J!#3#i!!!*`B!!!!4AF!N!3")!#3"%9V!!3!!!%M!!!!E!!!%&`\r!!$U-I!J#TT2Krrb3!!%!#*3Krm#3!'%!@*!!J3"FN!#K!'#!BJ!!J)%!@%J!!!&\rJ!!!!I(mEH8##!!`iB2rr5!!!)$Kr!!#!J3"FJ+%!B)'I!!+"M!!m5!!!!@!!!!#\r!!3")1#%!3(`)!kD$iIrm6S!!)%9d!`#3""B!!!!F4A8!N!@-!!!!*%9e!*!&83!\r!!&"&EJ`%!!!"*J!!!!b!!*!,J!!!E!J!!!"&G`#3"!%M!*!%4@X!"!!!!5F!!!"\rm!!!3`!!!1bGm#!+QNq(rr*!!!3!)P#(r`*!!B3"BN!#"!&b3!+%!B*!!`3"NN!$\rK!'L!BJ!!J)%!@%J!!!&J!!!!I(mEH8'#!#`iI`!!J)%!A)#K!'#!`3"NJ1%!D)'\rI!!+"M!!`5!!!!@!!!!")!!!)1'$rri!"!%Ji)3"!I!J$TS2Krra1J!!J4A3$!*!\r%&J!!!#4&G3#3"B`!!!!X4A8!N!94!!!!@%9Z$!3!!!%X!!!!$)!!N!Z!!!"m#!!\r!!%9h!*!%!5F!N!4&D`!%!!!",3!!!(`!!"%`!!!lfR`)!UD6iIrmN!!"!!L8)Ir\r!N!"K!&L3!)%!A*!!S3"JN!$"!'53!1%!D)"L!!#!J3"B5!!!!@!!!!"mIaYj3B)\r!,$Kr!!#!J3"FJ+%!B)$"!'5!i3"SJCm!!S'-!$4)!!!"B!!!!%J!!!JiB2rrJ!%\r!5$JK!%"m#!1QJq(rr%k!!#"&G!-!N!3@!!!!*%9e!*!&M!!!!#a&G3#3"9%!!!"\rB4@i-"!!!!5i!!!!-J!#3#i!!!(`)!!!!4AF!N!3",3#3"%9V!!3!!!%[!!!!A!!\r!%D!!!$bD9'!'2L`!!!*"JJ!m3)!!&#`!!!""JJ!B3)!!)%k!!#!X!!!%6)!!)%J\r!!#L!SJ!!N!#&!!"1J!!JJ+)!!*!!K3!!6S!!))#L!!#3!)8!!%k!!##!SJ!!N!#\r&!!"1J!!J4A3$!*!%(3!!!#a&G!-!N!3I!!!!1%9d!`#3"#%!!!"%4A3$!*!%)J!\r!!&"&D`!%!!!"0`!!!'3!!"(i!!!phP4J"MiX!!!#3B)!2%#!!"3X!!!!3B)!'%#\r!!#")!!"!,!!!"%#!!$K)!!!SJ))!!)"N!!"1J!!JJ))!!)"N!!"1J!!JJ))!!)"\rN!!"1J!!JJ))!!)"N!!"1J!!J1'!!!%k!!#"&G!-!N!3G!!!!,%9d!`#3""m!!!!\ri4A3$!*!%)3!!!%4&G!-!N!3L!!!!8%9V!!3!!!%i!!!!C!!!%N)!!$mFNq(rr*!\r!BJ!!1!!!!,!#!!!li!!!5!!!1)##!!"ri!Fd9!!31R`%!#iS!!!!3B)!(+LL!!!\riJ!!"Iq!(0(b!!$"mS!0iX!)!!$[r!!&ri!Fd,!!!%%'!rm3iB!!!Jq(rr%k!!#"\r&Fa!!N!3M!!!!"%9c%!#3"#3!!!!-4A-3!*!%)`!!!"K&Fa!!N!3N!!!!-%9c%!#\r3"#3!!!"%4@X!"!!!!6X!!!!)!!!5NJ!!2p+!BJ!!6S!!)%9c%!#3"#-!N!4&D`#\r%!!!!G!!!!'3!!"+Q!!"!e(`)!UD6iIrmN!!"!!L8)Ir!I(mEH8'!!#!X(`!83)!\r!')"L!!"Ai"!kI!-!,LJ!!!"!JJ!81'!!&NJ!!!%iB!!!5!!!%)"L!!"Ai"!kI'-\r!,S!"!%Ji)3"!I!J$TS2Krra1J!!J4A3$!!!!!6`!!!!J4A8!N!8f!!!!1%9d!`!\r!!!%m!!!!4%9Z$!3!!!&"!!!!$)!!N!Z!!!"N#!!!!%9h!*!&G!#3"%9V!!3!!!&\r#!!!!1!!!%Z!!!%'8I!J#TT!!!3!)P#(r`)"L!!#)!`!!+!!!!%'#!"#!BJ!!5!!\r!!@!!!!#!!3")1#%!3(`)!kC1J!!J4A3$!*!%,J!!!!a&G!-!!!!"23!!!"a&G3#\r3"!&$!!!!)%9Z$!3!!!&%!!!!$)!!N!Z!!!!i!*!%4AF!N!3"3J#3"%9V!!3!!!&\r&!!!!N!!!!"--!!""ih`)!UD6iIrmNm(rq*1Krr53!!%!#*3Krl!l``!!I*dMHB2\rL!!#!!J!!N!!$!!""JJ!3J')!!&HJ%$Tr``%ZJ')!!)J$!!!S!!!!3B)!+)!I!!!\rS!!!!3))!()!I!!3S!!!!3))!%$Kr!!")!!!"B!!!!$Kq!!#!!3"B1#%!8(`)!kD\r$iIrmJm(rq)1Krr41J!!J4A3$!!!!!6d!!!!J4A3$!!!!!8B!!!!N4A3$!!!!!6`\r!!!!`4A3$!*!%,J!!!$a&G3#3"!&(!!!!D%9Z$!3!!!&)!!!!$)!!N!Z!!!#3!"J\r!!!"&G`#3"!&&!*!%4@X!"!!!!8N!!!"8!!!6A!!!3k0m#!+QNq(rr*!!!3!)P#(\rr`(ar'hQ`J3"H3B)!*)!#!!#3!"m!!+J"!&iX!!!!3)%!%$Kr!!")!!!"B!!!!$K\rr!!#!!3")1#%!3(`)!kD$iIrm6S!!)%9d!`!!!!&'!!!!(%9e!*!%!4B!!!!d4@i\r-"!!!!8S!!!!-J!#3#i!!!&3)!!!!4AF!N!3"53#3"%9V!!3!!!&,!!!!+!!!%hi\r!!%3%I!J#TT!!!3!)P#(r`$KJ!#e)!!!"1'!!!)!"!%Ji)3"!I!J$TNk!!#"&G3#\r3"6B!!!!34@i-"!!!!8`!!!!-J!#3#i!!!#J!N!4&G`#3"!&,!*!%4@X!"!!!!8d\r!!!!N!!!6QJ!!4(0m#!+QN!!"!!L8)Ir!1'!!,8J!!!'!!3")1#%!3(`)!kC1J!!\rJ4A8!N!8f!!!!%%9Z$!3!!!&1!!!!$)!!N!Z!!!!N!*!%4AF!N!3"63#3"%9V!!3\r!!!&2!!!!*!!!%lB!!%60I!J#TT!!!3!)P#(r`$KJ!#e)!!!"J!%!5$JK!%"m#!1\rQ6S!!)%9e!*!&0J!!!""&EJ`%!!!"8!!!!!b!!*!,J!!!*!#3"%9h!*!%!8m!N!4\r&D`!%!!!"83!!!!3!!"25!!"&0%k!!#"&DJ!%!!!"8J!!!#J!!"2Q!!"&S(`)!UD\r3!!%!#*3Krm#!BJ!!5!!!!@!!!!#!!3")1#%!3(`)!kC1J!!J4A3$!!!!!9-!!!!\r-4A8!N!3"9!!!!""&EJ`%!!!"93!!!!b!!*!,J!!!+!#3"%9h!*!%!9)!N!4&D`!\r%!!!"9J!!!%!!!"3+!!"&cR`)!UD6iIrmN!!"!!L8)Ir!1q-!!)"L!!")!!!"B!!\r!!$J!!!'B(`%!1(m!!)!"!%Ji)3"!I!J$TS2Krra1J!!J4A3$!!!!!9F!!!!84A8\r!N!3"@!!!!"K&EJ`%!!!"@3!!!!b!!*!,J!!!3!J!!!"&G`#3"!&@!*!%4@X!"!!\r!!(8!!!#d!!!80!!!4Kam#!+QNq(rr*2"rrL6SIrdNi(rm*!!!3!)P#(rX$ZM!!!\rla!!!I,`VH8'!!!`X(!"!3B!!%$KJ!"C)!!!"5!!!@$[m!!")!!!mIq!(0&3!%$T\rm(3!Z+!!!!%##!#4ri!Fd9!!31RrG!5kSIJ!!1!-!!E!H!!"ri`Fd5!!!($[r!!&\rri!Fd,!!!3%'!rm!iB!!B5!!!!B!"!&Ji)3"3I!J$TS2Krrb$`IriJk(rp)1"rr"\r1J!!J4A8!N!8f!!!!1%9e!*!&0J!!!*!!4@i-"!!!!9X!!!!-J!#3#i!!!,3J!!!\r!4AF!N!9e!*!%4@X!"!!!!(m!!!#`!!!8Z!!!4cjm#!+QNq(rr*2"rrL6SIrdN!!\r"!!L8)Iq`1k-!!$[N!!")!!!","m!!%'!!"`X(`"!3)!!&&IJ%$Trh3!Z+"i!!%#\r#!"!iB!!*5!!!!8J!!%JiB!!!9q!31Rap!5kSIJ!!1!2rrl!H!!"m!!Fe3))!*#`\rH!!""JJ!F1(i!!$L!!!'"RJ!#JB`!B%J!!!&J!!!!1'!!!)!"!&Ji)3"3I!J$TS2\rKrrb$`IriJk(rp%k!!#"&G3#3"A!!!!!J4A8!N!8f!!!!5%9e!*!&83!!!)K&EJ`\r%!!!"A!!!!!b!!*!,J!!!X"J!!!"&G`#3"Am!N!4&D`!%!!!!M!!!!(3!!"8Q!!"\r)*(`)!UD6iIrmNm(rq*1Krr53!!%!#*3Krl!lS`!!1q3!!%J!!!%X(`!!3B!!(#`\rI!%"!J!!89q!31RrG!#iS(J!!3))!&$KJ!!P)!!!"1'!!!%J!!!JiIJ!!J!%!@$J\rK!&"m#!1QJq(rr)2"rrL$SIrd6S!!)%9e!*!&F!!!!#"&G3#3"6B!!!")4@i-"!!\r!!9d!!!!-J!#3#i!!!(3B!!!!4AF!N!@-!*!%4@X!"!!!!9i!!!#N!!!9K!!!540\rm#!+QNq(rr*2"rrL3!!%!#*3Krm"mIKYjX)%!AN'#!'b!BJ!!5!!!!@!!!!!i!!!\r!Q"i"!)"L!!")!!!"B!!!!$[J!!")!!!N9q!31R`H!#iS!!!!3B)!%$Kr!!")!!!\r"B!!!!$[r!!%X(`"!3B$rh+J"!&iX!!!!3)%!%$Kq!!")!!!"B!!!!$Kq!!#!!3"\r)1#%!3(`)!kD$iIrmJm(rq%k!!#"&G!-!!!!"8`!!!#"&G3#3"!&8!!!!*%9d!`!\r!!!&I!!!!0%9e!*!%!93!!!!i4A8!N!3"B!!!!&a&G3#3"!%@!!!!J%9Z$!3!!!&\rK!!!!$)!!N!Z!!!#N%!!!!%9h!*!%!9i!N!4&D`!%!!!!R`!!!&`!!"A8!!",0A`\r)!UD3!!%!#*3Krm#!!J!!,!!!!%'#!$4)!!!"B!!!!)!#!!"m!`"!3)%!)$J!!!#\r3!!)!!$KJ!!j)!!!"B!!!!$KJ!!&)!!!)1'!!!)!"!%Ji)3"!I!J$TNk!!#"&Fa!\r!!!!"BJ!!!!a&G3#3"I`!!!!B4A-3!!!!!@)!!!!J4A-3!!!!!@)!!!!`4A8!N!A\r$!!!!1%9Z$!3!!!&M!!!!$)!!N!Z!!!"F!*!%4AF!N!@I!*!%4@X!"!!!!@3!!!#\r8!!!@#!!!5m0m#!+QNq(rr*2"rrL3!!%!#*3Krm!l``!!J!)!!#`!!!""JJ!J5!!\r!!@!!!!#!!J!!I'!B8$J!!$ari`1@5!!!#$[J!!!S(J!!3B)!'%J!!!&J!!!!("i\r!2(`!'K4)!!!)1!!!!*!!!J!!,"m!!%#!!!`iB!!!5!!!#$Kr!!#!!3")1#%!3(`\r)!kD$iIrmJm(rq%k!!#"&Fa!!!!!"BJ!!!"K&G3#3"I`!!!!N4A-3!!!!!@)!!!!\rX4A8!N!Am!!!!6%9c%!!!!!&L!!!!C%9Z$!3!!!&R!!!!$)!!N!Z!!!#8%!!!!%9\rh!*!%!@3!N!4&DJ!%!!!"D!!!!0`!!"Bi!!"-P(`)!UD6iIrmNm(rq*1Krr56JIr\r`N!!"!!L8)Iq`N!"K!'L$`J!!Jk)!!%J!!!&J!!!!J!%!D(rJ'K4)!!!",!-!!%#\r#!$5!(J!!+!!!!%'#!$4)!!!"B!!!!(b$q&!iB!!)JCi!!%J!!!&J!!!!,!-!!%'\r#!"!iB!!%5!!!!8J!!"`i!!!!N!!G!!")!!!"B!!!!(`I'%""JIqN5!!!!@!!!!"\rmIaK31!!!2(q$!jG!J!!-1'!!!%J!!!JiI!!!J!%!@$JK!&"m#!1QJq(rr)2"rrL\r$SIrdJi(rm%k!!#"&G!-!N!3G!!!!)%9d!`#3"$F!!!!N4A8!N!Am!!!!+%9e!*!\r&R`!!!$K&G3#3"I`!!!"34A8!N!94!!!!C%9e!*!&0J!!!(K&G3#3"I`!!!#)4A8\r!N!Am!!!!Q%9Z$!3!!!&V!!!!$)!!N!Z!!!$F)!!!!%9h!*!%!@J!N!4&D`!%!!!\r"E!!!!$J!!"D1!!"0LA`)!UD3!!%!#*3Krm#3!'%!@)!"!&JF!!!$2'!!!6KM`e"\rmB"Z@5!!!!B!"!%Ji)3"!I!J$TNk!!#"&G3#3"!&S!!!!*%9Z$!3!!!&Z!!!!$)!\r!N!Z!!!!i!*!%4AF!N!3"E!#3"%9U!!3!!!&[!!!"(!!!&X!!!&%(I!J#TVl"rpL\r3!!%!#*3Krj!!1q-!!$YJ!!#J!`!!,!!!!d'#!"#J(`!!,!!!"8##!0LJ(`!19!!\r&ld'#!-b!(`!#9"R'2U!I!!j8!!3XI"V,H$J!!!#3!!%!1$[!!!!iB!!Q5!!!!@!\r!!!"mI4Yj3))!2$KJ!"C)!!!"B!!!!$L!!#")!!!"B!!!!$V$!!!mB%Y$1*B!!$K\rM5&*)!!!"B!!!!$[$!!#$S`!!+"d!!%'#!$3iI3!!1*S!!$LK!$K)!!!"B!!!!$Z\r$!!!S(J!!3B)!'$Kq!!")!!!"B!!!!%J!!!L$R`!#9jJ'2PH!!Kjm&iC`,"J!,N'\r#!!`X&`!Z3))!#$YJ!!%iH`!!J!%!H$JK!("m#!1QZX(rf%k!!#"&G3#3"!&`!!!\r!B%9e!*!%!A!!!!"d4A8!N!3"F3!!!)"&G3#3"!&b!!!!Q%9e!*!%!A-!!!#m4A8\r!N!9'!!!!e%9Z$!3!!!'&!!!!$)!!N!Z!!!%F8!!!!%9h!*!%!@m!N!4&D`!%!!!\r"KJ!!!&`!!"IQ!!"@GR`)!UD6iIrmN!!"!!L8)Ir!5!!!!@!!!!#$i`!#5!!!)$K\rr!!C)!!!"9'!'2d'#!!`iB!!"5!!!&)2r!!!S(`!!3),ri$KJ!!#!!3")1#%!3(`\r)!kD$iIrm6S!!)%9e!*!%!BF!!!!34A8!N!3"E`!!!#4&EJ`%!!!"N`!!!!b!!*!\r,J!!!A!J!!!"&G`#3"!''!*!%4@m&"!!!!C3!!!!%!!!!!`!!9fB!!!!"4@X!"!!\r!!CJ!!!+i!!!B-!!!9jCm#!+Q[b(rj*!!!3!)P#(rN!!l)`!!1d3!!)1#!!#$`J!\r!L!)!!(`!"h9!JJ!81!!!!CJ#!!!i!!!"Q!)!!$ZJ!!DS!J!!B"Z%!SJH!!`S!!!\r!3))!$$Kq!!")!!!"L!)!!#J!!!""JJ"39b!'2LJ!!!P!JJ!-1rS!!%J!!!b!BJ!\r!Jq-!!)!F!!"m!2S8N!!F!!#!(!!!9!!'rR`!q!"!J!!-1'!!)%J!!!L!I!!!5!!\r!!@!!!!")!!!"9'!'2d##!G#!BJ!!J!-!!#`!!!"!JJ!`L!)!!#J!!!""JJ!NL"i\r!$bJ!!!"!JJ!3U!)!!'!E"!")!!!-1'!!!%J!!DaA)!Bq,!!!#%'#!#"!J!!3,!!\r!!8'#!"4)!!!F,!!!#N#!!"4)!!!-I"VS!%#!!!JlS!!!1(X!!$L"!$Ji[3!!1-!\r!!%J!!!&J!!!!9'!'2d'#!05J!3!i,!!!$d'#!'a!J!!3,!!!!8'#!"4)!!#i,!!\r!&d'#!(K)!!#XJ!)!!#J!!!""JJ!8J')!!)!$!!3S!!!!3))!N!#!B3"#1)%!5%J\r!!!&J!!!!I'!(0#`!!!*!JJ"d1'%!1)#"!%K)!!!"B!!!!%J!!'#!!3!k9!!(rd'\r#!"!i!!!"Q!)!!%J!!%Ji!!!!Q!)!!%J!!$b!!J!!+!!!!%'#!"5!BJ!!J!-!A#J\r!!!"!JJ!JJ')!!)J$!!!S!!!!3B)!%$KK!$K)!!!"B!!!!+#"!$Ji!!!!9!!%2MK\rJrrpm!#!3I!-"N!#J!3!i+!!!'%#!!%5!!J!!+!!!!%'#!$L!BJ!!S!%!1&3!%$T\rm!`!Z+!!!!%'#!#!iB3!iJ))!!+!"!$K8!"!kIB3!,NJ!!!&J!!!!1'!!!%J!!"`\rmB!!"1)!!!$KMrrp)!!!"B!!!!$KJrrq!!3"i1#%!F(`)!kDl)IrN6S!!)%9d!`!\r!!!'9!!!!'%9d!`#3"!)!!!!F4A-3!!!!!CF!!!!J4A-3!!!!!CB!!!!`4A-3!!!\r!!CF!!!!i4A-3!*!%*!!!!%"&G3#3"@S!!!"B4A-3!!!!!CB!!!"F4A3$!*!%)J!\r!!(a&G3#3"!'C!!!!V%9e!*!%!BB!!!#d4A3$!!!!!C3!!!$!4A-3!!!!!CB!!!$\r34A-3!*!%*!!!!1K&G3#3"!'D!!!"3%9c%!#3"#-!!!&i4A-3!*!%)`!!!B4&G3#\r3"!'E!!!"R%9e!*!%!C`!!!'i4A-3!!!!!CB!!!(84A-3!!!!!CB!!!(J4A-3!*!\r%)`!!!HK&Fa!!N!3M!!!"p%9d!`#3"$3!!!)%4A8!N!3"R3!!!KK&Fa!!N!3M!!!\r#4%9c%!#3"#-!!!*34A-3!*!%)`!!!Qa&G3#3"9%!!!*m4A8!N!3"RJ!!!TK&EJ`\r%!!!"p!!!!!b!!*!,J!!#Z$J!!!"&G`#3"!'B!*!%4@X!"!!!!I8!!!"d!!!CRJ!\r!AUGm#!+QNq(rr*2"rrL3!!%!#*3Krm!li`!!X)%!ATLK!'-mB!!"1)!!!6KMU*p\r)!!!"B!!!!$[$!!#JB3"HL)%!BdJ!!!&J!!!!I'2`8$!$rrpm!"N3Q"m!!$Kr!!#\r!!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G3#3"!(f!!!!,%9e!*!%!IB!!!"!4@i\r-"!!!!IN!!!!-J!#3#i!!!(33!!!!4AF!N!3"p3#3"%9V!!3!!!(k!!!!F!!!'H3\r!!&mlI!J#TT2Krrb6`IriN!!"!!L8)Iq`1q-!!*!!J3"XN!#K!(!l`!!!J'%!E$L\r"!$K)!!!"B!!!!(aJ"c9!JJ!BJ'%!1)!"!("m!`!!3B!!#$[!!!'Eh`!!1(m!!)!\r"!&Ji)3"3I!J$TS2Krrb$`Iri6S!!)%9e!*!%!IX!!!!X4@i-"!!!!Ii!!!!-J!#\r3#i!!!(!3!!!!4AF!N!3"qJ#3"%9V!!3!!!(r!!!!I!!!'MJ!!&qXI!J#TT2Krrb\r6`IriN!!"!!L8)Iq`1q-!!*!!J3"XN!#K!(#3!-%!G$[!!!#!B3"X1)%!1%J!!!&\rJ!!!!I'!(08##!##!J3"dJ'%!1)!"!("mB!!iI!3!!%##!!Jl`!!"Qpm!!$Kr!!#\r!!3"B1#%!8(`)!kD$iIrmJm(rq%k!!#"&G3#3"!(l!!!!-%9Z$!3!!!)!N!3-J!#\r3#i!!!(`3!!!!4AF!N!3"r`#3"%9V!!3!!!)"!!!!E!!!'TS!!'!aI!J#TT2Krrb\r6`IriN!!"!!L8)Ir!1q-!!*!!J3"FN!#K!'!l`!!!J'%!A)J$!!!S!!!!3B)!()'\r"!'")!!!"B!!!!(aJ"c9!JJ!)1m!!!C[I!!!iI`!!J!%!5$JK!%"m#!1QJq(rr)2\r"rrK1J!!J4A8!N!94!!!!1%9Z$!3!!!)%!!!!$)!!N!Z!!!"X%!!!!%9h!*!%!J%\r!N!4&D`!%!!!#"3!!!%`!!"VB!!"JRA`)!UD6iIrmN!!"!!L8)Ir!1q-!!*!!J3"\rFJB%!A%J!!!&J!!!!I'!(0(`!!$48!0PqQ"m!!$Kr!!#!!3")1#%!3(`)!kD$iIr\rm6S!!)%9e!*!&83!!!"a&EJ`%!!!#"J!!!!b!!*!,J!!!6!J!!!"&G`#3"!)&!*!\r%4@X!"!!!!JF!!!"N!!!E%!!!B0Ym#!+QNq(rr*2"rrL3!!%!#*3Krm!li`!!N!#\rK!'#)"!!!+!!!!%'#!"`i!!!"Q"m!!)'"!'")!!!"B!!!!%J!!!`i!!!!Q"m!!$K\rr!!#!!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G3#3"9%!!!!d4@i-"!!!!JJ!!!!\r-J!#3#i!!!'33!!!!4AF!N!3#"`#3"%9V!!3!!!)*!!!!4!!!'hB!!'&VI!J#TT2\rKrrb3!!%!#*3Krm!li`!!N!#"!&`i!!!"Q!-!!)'"!&a)!!!"B!!!!$Kr!!#!!3"\r)1#%!3(`)!kD$iIrm6S!!)%9e!*!&83!!!#4&EJ`%!!!##J!!!!b!!*!,J!!!4!J\r!!!"&G`#3"!)*!*!%4@X!"!!!!JX!!!!S!!!EYJ!!BDii`!!!L!3!!#J!!!""JJ!\r8L!8!!#J!!!""JJ!)1-!!!CM$!!"1J!!J4@X!"!!!!K)!!!#3!!!!'r`!!')+I!J\r#TT!!!3!)P#(r`*!!B3"BN!#"!&b)!J!!I!!(G8##!"3i!!!"X!)!!$J!!!'B!J!\r!U!)!!#`!!!&!JJ!X5!!!!@!!!!#`BJ!!I'!(08##!"JiBJ!!1))!!%J!!!&J!!!\r!X')!!+J#!!#!B3"BX!-!!+J#!!#!B3"FX!-!!+KL!!#!!3")1#%!3(`)!kC1J!!\rJ4A-3!!!!!K%!!!!84A-3!!!!!K!!!!!N4A-3!!!!!K%!!!!X4A-3!!!!!K!!!!!\r`4A8!N!3#%`!!!$a&Fa!!!!!#%!!!!%4&Fa!!!!!#$`!!!&"&Fa!!!!!#$J!!!&4\r&G3#3"!)8!!!!@%9c%!!!!!)3!!!!B%9c%!!!!!)1!!!!C%9c%!!!!!)2!!!!F%9\rc%!!!!!)3!!!!I%9Z$!3!!!)A!!!!$)!!N!Z!!!#3!!#3"%9h!*!%!K)!N!4&D`!\r%!!!#'!!!!'3!!"a8!!"MMR`)!UD3!!%!#*3Krm#!BJ!!5!!!!@!!!!#!BJ!!5!!\r!!@!!!!#!BJ!!5!!!!@!!!!#!BJ!!5!!!!@!!!!#!BJ!!5!!!!@!!!!#!BJ!!5!!\r!!@!!!!#!!3")1#%!3(`)!kC1J!!J4A3$!!!!!KN!!!!-4A8!N!3#'J!!!""&G!-\r!!!!#'`!!!"K&G3#3"!)D!!!!(%9d!`!!!!)F!!!!*%9e!*!%!KS!!!!S4A3$!!!\r!!Kd!!!!`4A8!N!3#'J!!!$4&G!-!!!!#(J!!!$a&G3#3"!)D!!!!3%9d!`!!!!)\rI!!!!5%9e!*!%!KS!!!"-4@i-"!!!!L!!!!!-J!#3#i!!!'3!N!4&G`#3"!)B!*!\r%4@X!"!!!!KS!!!!X!!!FS!!!C(Pm#!+QN!!"!!L8)Ir!N!"K!&L"J3"B5!!!!@!\r!!!#!!3")1#%!3(`)!kC1J!!J4A8!N!94!!!!&%9Z$!3!!!)L!!!!$)!!N!Z!!!!\rX!*!%4AF!N!3#'J#3"%9Z"3%!!!)M!!!!$Irrrl%!!'4j8fpMDf9d4'pYB@PZ!!!\r$c89Z"33!!!)N!!!!#2rrrl!!!'4j!*!)4AB&!!!!!L-!N!4&E`8%!!!"4J!!!"M\rrrrq[!!"NH3#3'%9f"3!!!!)N!*!%4AB+!!!!!L8!!!!84AB+!!!!!LB!!!!34AB\r+!!!!!LF!!!!-4AB+!!!!!LJ!!!!)4@S!"!!!!LN!!!%SJ!#3"h`)!UD3!!%!#*3\rKrm#!BJ!!5!!!!B"L!!")!!!"J))!!)#L!!")!!!"B!!!!)"L!!!mJ'Cc1+!!!MM\r!!!)iK#!J5!!!!B"L!!!mJ'&X1+!!!6M!!!%iK'Pc5!!!!B"L!!!mJ(0d1+!!!6M\r!!!%iK'4Q5!!!!B"L!!!mJ'pc1+!!#$M!!!JiK#!J5!!!!B"L!!!mJ'0b1+!!!6M\r!!!%iK'dJ5!!!!B"L!!#!JJ!!J+)!!%J!!!'!BJ!!J))!!)#L!!")!!!"J')!!$b\r!EQ`iS!!"1-!!!6L%GA")!!!"J')!!)##!!#!SJ!!5!!!!B"L!!!mJ'9f1+!!!6M\r!!!%iK'jd5!!!!B"L!!!mJ(4Y1+!!!ML%Ch*)!!!"J!%!5$JK!%"m#!1Q6S!!)%9\rd!`#3"!)!!!!-4A8!N!8p!!!!%%9d!`#3""B!!!!84A8!N!3"9J!!!"K&G!-!!!!\r#+J!!!"a&G!-!N!39!!!!)%9e!*!%!LX!!!!N4A3$!*!%+3!!!#a&G3#3"!(r!!!\r!3%9d!`#3"#`!!!"%4A8!N!3"r`!!!&K&G!-!N!3Y!!!!A%9e!*!%!Im!!!"`4A3\r$!*!%,J!!!(4&G3#3"!(r!!!!L%9d!`#3"#m!!!#-4A8!N!3"r`!!!+"&G!-!N!3\r`!!!!T%9d!`#3"#m!!!#S4A3$!!!!!L`!!!#X4A8!N!3#!3!!!,"&G!-!N!3a!!!\r!Y%9d!`#3"$!!!!#i4A3$!!!!!Ld!!!#m4A8!N!3#!3!!!-"&G!-!N!3b!!!!a%9\re!*!%!Im!!!$B4A3$!*!%-`!!!0a&G!-!N!3a!!!!i%9d!`#3"$)!!!$N4A8!N!3\r##`!!!1K&G!-!N!3d!!!!l%9e!*!%!Im!!!%!4A3$!*!%03!!!34&G3#3"!(k!!!\r"&%9Z$!3!!!)Z!!!!$)!!N!Z!!!%S!*!%4AF!N!3#+3#3"%9X%!%!!!)4!!!!!3!\r!!!F!!')+4@`3!J!!!K!!!!!#!!!!#`!!BJT&E"!#!!!#$`!!!!)!!!!,!!"L#N9\rX%!)!!!)1!!!!!J!!!!X!!')+4@`3!3!!!CF!!!!"!!!!"`!!9jC&E"!"!!!"PJ!\r!!!%!!!!'!!"APN9Y"33!!!'9!!!!"!!!!!-!!&Gk4@`3"!!!!@)!!!!%!!!!!`!\r!5aP&E38%!!!"23!!!!Mrrrr+!!"!U%9Y"33!!!%m!!!!82rrrmX!!%"[4@d&!J!\r!!$X!!!!#!!!!#`!!#I0&E38"!!!!1J!!!!%!!!!'!!!*a%9Y"3%!!!!e!!!!![r\rrrr8!!!J'4@d&!3!!!$3!!!!#rrrrp3!!"iP&E38"!!!!-`!!!!,rrrre!!!(B89\rY"3%!!!!b!!!!![rrrr8!!!Ef4@d&!3!!!$%!!!!#rrrrp3!!"Xa&E38"!!!!-!!\r!!!,rrrre!!!'U89Y"3%!!!![!!!!![rrrr8!!!C+4@d&!3!!!#i!!!!#rrrrp3!\r!"H"&E38"!!!!,3!!!!,rrrre!!!&F%9Y"3%!!!!X!!!!![rrrr8!!!8"4@d&!3!\r!!#N!!!!#rrrrp3!!"*9&E38"!!!!+!!!!!%!!!!'!!!%Fd9X%!3!!!!R!!!!"!!\r!!!-!!!3h4@`3"!!!!#B!!!!%!!!!!`!!""P&E"!#!!!!*!!!!!)!!!!,!!!$h%9\rX%!3!!!!M!!!!"!!!!'S!!!1b4@d&"!!!!#%!!!!%rrrrpJ!!!fa&E38%!!!!&J!\r!!3,rrrrk!!!#dN9X"3%!!!!9!!!!$2rrrrX!!!,54@d&"!!!!!)!!!!Drj!%!!!\r#Jd9[#J3!!!)[!!!!#)!!N!p&GJ#3"!)D!*!%4AB2!!!!!M!!!!!%4@m+"!!!!M%\r!!!!)J!#3$d9f!*!%!KJ!N!4&GJm!!!!#-!!!!!4&E`S%!!!#-J!!!!L!!*!24AB\r!N!3#%J#3"%9f$`!!!!)`!!!!"%9[#J3!!!)c!!!!#)!!N!p&GJ#3"!),!*!%4AB\r2!!!!!M!!!!!%4@m+"!!!!M3!!!!)J!#3$d9f!*!%!JN!N!4&GJm!!!!#-!!!!!4\r&E`S%!!!#03!!!!L!!*!24AB!N!3#"`#3"%9f$`!!!!)`!!!!"%9[#J3!!!)f!!!\r!#)!!N!p&GJ#3"!)&!*!%4AB2!!!!!M!!!!!%4@m+"!!!!MF!!!!)J!#3$d9f!*!\r%!J%!N!4&GJm!!!!#-!!!!!4&E`S%!!!#1!!!!!L!!*!24AB!N!3"r`#3"%9f$`!\r!!!)`!!!!"%9[#J3!!!)j!!!!#)!!N!p&GJ#3"!(k!*!%4AB2!!!!!M!!!!!%4@m\r+"!!!!MS!!!!)J!#3$d9f!*!%!I8!N!4&GJm!!!!#-!!!!!4&E`S%!!!#1`!!!!L\r!!*!24AB!N!3"KJ#3"%9f$`!!!!)`!!!!"%9[#J3!!!)m!!!!#)!!N!p&GJ#3"!&\rX!*!%4AB2!!!!!M!!!!!%4@m+"!!!!Md!!!!)J!#3$d9f!*!%!@3!N!4&GJm!!!!\r#-!!!!!4&E`S%!!!#2J!!!!L!!*!24AB!N!@I!*!%4AB2!!!!!M!!!!!%4@m+"!!\r!!LS!!!!)J!#3$d9f!*!%!9i!N!4&GJm!!!!#-!!!!!4&E`S%!!!#2`!!!!L!!*!\r24AB!N!@-!*!%4AB2!!!!!M!!!!!%4@m+"!!!!N!!!!!)J!#3$d9f!*!&I`#3"%9\rf$`!!!!)`!!!!"%9[#J3!!!*"!!!!#)!!N!p&GJ#3"A8!N!4&GJm!!!!#-!!!!!4\r&E`S%!!!#3J!!!!L!!*!24AB!N!3"9J#3"%9f$`!!!!)`!!!!"%9Z#J3!!!&A!!!\r!#)!!N!p&GJ#3"!&5!*!%4AB2!!!!!M!!!!!%4@m+"!!!!N-!!!!)J!#3$d9f!*!\r%!9%!N!4&GJm!!!!#-!!!!!4&E`S%!!!#*3!!!!L!!*!24AB!N!3"6`#3"%9f$`!\r!!!)`!!!!"%9[#J3!!!)Q!!!!#)!!N!p&GJ#3"!&0!*!%4AB2!!!!!M!!!!!%4@m\r+"!!!!LF!!!!)J!#3$d9f!*!%!8X!N!4&GJm!!!!#-!!!!!4&E`S%!!!#+!!!!!L\r!!*!24AB!N!3"53#3"%9f$`!!!!)`!!!!"%9[#J3!!!*%!!!!#)!!N!p&GJ#3"!&\r&!*!%4AB2!!!!!M!!!!!%4@m+"!!!!N8!!!!)J!#3$d9f!*!%!8)!N!4&GJm!!!!\r#-!!!!!4&E`U%!!!#4J!!!!L!!*!24AB!N!9d!*!%4AB2!!!!!M!!!!!%4@m+"!!\r!!NF!!!!)J!#3$d9f!*!%!6X!N!4&GJm!!!!#-!!!!!4&E`S%!!!#5!!!!!L!!*!\r24AB!N!3"1!#3"%9f$`!!!!)`!!!!"%9[#J3!!!**!!!!#)!!N!p&GJ#3"!%h!*!\r%4AB2!!!!!M!!!!!%4@m+"!!!!NS!!!!)J!#3$d9f!*!%!5m!N!4&GJm!!!!#-!!\r!!!4&E`S%!!!#5`!!!!L!!*!24AB!N!3",3#3"%9f$`!!!!)`!!!!"%9[#J3!!!*\r-!!!!#)!!N!p&GJ#3"!%R!*!%4AB2!!!!!M!!!!!%4@m+"!!!!Nd!!!!)J!#3$d9\rf!*!%!5-!N!4&GJm!!!!#-!!!!!4&E`S%!!!#6J!!!!L!!*!24AB!N!3")!#3"%9\rf$`!!!!)`!!!!"%9[#J3!!!*2!!!!#)!!N!p&GJ#3"!%H!*!%4AB2!!!!!M!!!!!\r%4@m+"!!!!P!!!!!)J!#3$d9f!*!&K!#3"%9f$`!!!!)`!!!!"%9[#J3!!!*4!!!\r!#)!!N!p&GJ#3"!%D!*!%4AB2!!!!!M!!!!!%4@m+"!!!!P)!!!!)J!#3$d9f!*!\r%!4J!N!4&GJm!!!!#-!!!!!4&E`U%!!!"%`!!!!L!!*!24AB!N!3"&3#3"%9f$`!\r!!!)`!!!!"%9[#J3!!!*6!!!!#)!!N!p&GJ#3"IS!N!4&GJm!!!!#-!!!!!4&E`S\r%!!!#9!!!!!L!!*!24AB!N!AB!*!%4AB2!!!!!M!!!!!%4@m+"!!!!P8!!!!)J!#\r3$d9f!*!&e3#3"%9f$`!!!!)`!!!!"%9[#J3!!!*@!!!!#)!!N!p&GJ#3"G%!N!4\r&GJm!!!!#-!!!!!4&E`S%!!!#9`!!!!L!!*!24AB!N!A2!*!%4AB2!!!!!M!!!!!\r%4@m+"!!!!PJ!!!!)J!#3$d9f!*!&aJ#3"%9f$`!!!!)`!!!!"%9[#J3!!!*C!!!\r!#)!!N!p&GJ#3"DF!N!4&GJm!!!!#-!!!!!4&E`S%!!!#@J!!!!L!!*!24AB!N!@\rN!*!%4AB2!!!!!M!!!!!%4@m+"!!!!PX!!!!)J!#3$d9f!*!&RJ#3"%9f$`!!!!)\r`!!!!"%9[#J3!!!*F!!!!#)!!N!p&GJ#3"C`!N!4&GJm!!!!#-!!!!!4&E`S%!!!\r#A3!!!!L!!*!24AB!N!@D!*!%4AB2!!!!!M!!!!!%4@m+"!!!!Pi!!!!)J!#3$d9\rf!*!&P`#3"%9f$`!!!!)`!!!!"%9[#J3!!!*I!!!!#)!!N!p&GJ#3"C-!N!4&GJm\r!!!!#-!!!!!4&E`S%!!!#B!!!!!L!!*!24AB!N!@,!*!%4AB2!!!!!M!!!!!%4@m\r+"!!!!Q%!!!!)J!#3$d9f!*!&KJ#3"%9f$`!!!!)`!!!!"%9[#J3!!!*L!!!!#)!\r!N!p&GJ#3"B)!N!4&GJm!!!!#-!!!!!4&E`S%!!!#B`!!!!L!!*!24AB!N!9q!*!\r%4AB2!!!!!M!!!!!%4@m+"!!!!Q3!!!!)J!#3$d9f!*!&F`#3"%9f$`!!!!)`!!!\r!"%9[#J3!!!*P!!!!#)!!N!p&GJ#3"A)!N!4&GJm!!!!#-!!!!!4&E`S%!!!#CJ!\r!!!L!!*!24AB!N!9`!*!%4AB2!!!!!M!!!!!%4@m+"!!!!QF!!!!)J!#3$d9f!*!\r&DJ#3"%9f$`!!!!)`!!!!"%9[#J3!!!*S!!!!#)!!N!p&GJ#3"9!!N!4&GJm!!!!\r#-!!!!!4&E`S%!!!#D3!!!!L!!*!24AB!N!8p!*!%4AB2!!!!!M!!!!!%4@m+"!!\r!!QS!!!!)J!#3$d9f!*!&13#3"%9f$`!!!!)`!!!!"%9[#J3!!!*V!!!!#)!!N!p\r&GJ#3"6B!N!4&GJm!!!!#-!!!!!4&E`S%!!!!(J!!!!L!!*!24AB!N!3"Q!#3"%9\rf$`!!!!)`!!!!"%9[!`3!!!!e!!!!")!!N!Y&GJ8!N!3e!*!%4@m$"!!!!$-!!!!\r%J!#3#d9f"3#3"$-!N!4&E`-%!!!!-J!!!!5!!*!,4AB&!*!%-J#3"%9[!`3!!!)\rY!!!!")!!N!Y&GJS!!!!#,3#3"%9[!`3!!!!a!!!!")!!N!Y&GJ8!N!3a!*!%4@m\r$"!!!!L`!!!!%J!#3#d9f#J!!!!)X!*!%4@m$"!!!!$!!!!!%J!#3#d9f"3#3"$!\r!N!4&E`-%!!!!,`!!!!5!!*!,4AB&!*!%,`#3"%9[!`3!!!!Y!!!!")!!N!Y&GJ8\r!N!3Y!*!%4@m$"!!!!#`!!!!%J!#3#d9f"3#3"#`!N!4&E`-%!!!!+3!!!!5!!*!\r,4AB&!*!%+3#3"%9Z!`3!!!!9!!!!")!!N!Y&GJ8!N!39!*!%4@m$"!!!!LS!!!!\r%J!#3#d9f#J!!!!)U!*!%4@m$"!!!!Km!!!!%J!#3#d9f#J!!!!)I!*!%4@m$"!!\r!!Ki!!!!%J!#3#d9f#J!!!!)H!*!%4@m$"!!!!Kd!!!!%J!#3#d9f#J!!!!)G!*!\r%4@m$"!!!!K`!!!!%J!#3#d9f#J!!!!)F!*!%4@m$"!!!!KX!!!!%J!#3#d9f#J!\r!!!)E!*!%4@m$"!!!!KN!!!!%J!#3#d9f#J!!!!)C!*!%4@m$"!!!!$3!!!!%J!#\r3#d9f"3#3"$3!N!4&E`-%!!!"P!!!!!5!!*!,4AB&!!!!!C3!N!4&E`-%!!!"P3!\r!!!5!!*!,4AB&!!!!!C8!N!4&E`-%!!!"A`!!!!5!!*!,4AB+!!!!!9m!N!4&EJ-\r%!!!"9`!!!!5!!*!,4AB+!!!!!9F!N!4&E`-%!!!"8`!!!!5!!*!,4AB+!!!!!9-\r!N!4&E`-%!!!"4J!!!!5!!*!,4AB&!!!!!8B!N!4&E`-%!!!"23!!!!5!!*!,4AB\r&!!!!!6d!N!4&E`-%!!!!,J!!!!5!!*!,4AB&!*!%,J#3"%9[!`3!!!%m!!!!")!\r!N!Y&GJ8!!!!"2!#3"%9[!`3!!!!L!!!!")!!N!Y&GJ8!N!3L!*!%4@m$"!!!!"m\r!!!!%J!#3#d9f"3#3""m!N!4&E`-%!!!!(3!!!!5!!*!,4AB&!*!%(3#3"%9[!`3\r!!!!#!!!!")!!N!Y&GJ8!N!3#!*!%4@m$"!!!!"B!!!!%J!#3#d9f"3#3""B!N!4\r&E`-%!!!!E!!!!!5!!*!,4AB&!*!%E!#3"%9[!`3!!!!K!!!!")!!N!Y&GJ8!N!3\rK!*!%4@m$"!!!!$X!!!!%J!#3#d9f"3#3"$X!N!4&E`-%!!!!1J!!!!5!!*!,4AB\r&!*!%1J#3"%9[!`3!!!!h!!!!")!!N!Y&GJ8!N!3h!*!%4@m2"!!!!M!!N!5!!*!\r(4@J!!&0C68J!!"c5!!!!83!!!!)!N"%"!*!'#-J!!!!)!!!)d`!!!"!!!!MLrj!\r%!!!)l3!"!!!!1!!!!!-"!*!%!`!"!*!'#68!!!!)!!!*3!!!!"!!!!P2rj!%!!!\r*@`!"!!!!1!!!!!-"!*!%!`!"!*!'#MN!!!!B!!!+C!!!!$!!!!UD!!!!2!!!#V-\r!!!"-!!!+a`!!!)J!!!Y1!!!!R!!!#id!!!#S!!!,T!!!!-3!!![T!!!!d!!!$!-\r!!!$B!!!-'!!!!13!!!a6!!!!m!!!$(J!!!$i!!!-M3!!!3J!!!bR!!!"&!!!$-F\r!!!%F!!!-hJ!!!9J!!!fj!!!#R!!!$iX!!!+i!!!2Y!!!!X3!!!r0!!!#d!!!$rB\r!!!,F!!!3#J!!!ZJ!!"!J!!!$"!!!%&!!!!-3!!!3D3!!!c3!!"$F!!!$2!!!%2-\r!!!0B!!!4(`!!!iJ!!"&&!!!$P!!!%9N!!!1S!!!4J3!!!lJ!!"'A!!!$a!!!%E)\r!!!23!!!4drq3"!!!%G-!"J!!!%Irrrrc!3#3""i!!!")!!!!!`#3"4m!!!"*!!!\r!!`#3"4d!!!"+!!!!!`#3"4X!!!",rrrrmJ#3"4`!!!"1!!!!#`#3"4N!N!J5(!!\r!!$3!!"*6!!!!8!!!%US!!!"`!!!5m3!!!)J!!"-C!!!!S!!!%fm!!!$)!!!6hJ!\r!!1`!!"3A!!!"'!!!&)F!!!%S!!!8MJ!!!83!!"6p!!!"A!!!&66rN!3!!"8d!!B\r!!!"(rrrrm`%!N!3H!!!!9rrrrqm"!*!%(3!!!%N!!!!$!*!&(`!!!&hrrrrX!!-\r!!!!i!!!!AJ!!!'B!N!8F!!!!ArrrrqX!!`!!!%!!N!J9CJ!!!"!!!"9T!!!!,!!\r!&Ci!!!!m!!!9YJ!!!%J!!"Adrj!%!!!9p!!"!!!!4rrrrr-"!`!!!&J!N!JB-2q\r3"!!!'$!!N!SB8`!!!#!!!"KX!!!!+!!!')3!!!!X!!!BQ2q3"!!!'*J!!3!!!%I\rrrrrT!3#3""m!!3#3"KN8rj!%!!!C+!!!!!%!N!BC@J!!!#J!!"Q4!!!!,!!!'DX\r!!!"!!!!Ce3!!!'3!!"S!N!5%!!!D,!!!!)`!!"T$!!!!V!!!'P)!!!#m!!!DB!!\r!!-J!!"U$rj!%!!!DMJ!'!!!!GJ!!!!-"!`!!!'J!!!"h!!!!!`%$!!!!E!!!!(J\r!!!!$!3-!!!"`!!!!H3!!!!-!N!8G!!!!H[rrrrJ!N!8I!!!!HrrrrqJ!N!8H!!%\r!N!BDcJ!!!$!!!"Vm!!!!0!!!'aB!!!")!!!E3!!!!(!!!"Y[!!!!N!!!!"ZK!!!\r!X!!!'p3!!!#i!!!ElJ!!!-J!!"a$!!!!k!!!(&F!!!%)!!!FF!!!!4J!!"aq!!!\r"*!!!(+(rN!3!!"bX!!B!!!"f!!!!!`%$!!!!D!!!!(F!!!!$!3-!!!"X!!!!H!!\r!!!-"!`!!!(!!!!#!rrrrjJ%!N!3H!!!!H[rrrq8!!`!!!$J!!!"lrrrrk!#3"4d\r!!3#3"Kc#!!!!&!!!(-8!!!!F!!!Fh`!!!$J!!"d1!!!!3!!!(4S!!!"B!!!G,rq\r3"!!!(9!!!3!!!(RrrrrQ!3#3""m!!3#3"Kfp!!!!-!!!(GB!!!"!!!!H!*!%F!!\r!(NErN!3!!"j4!!J!!!"f!!!!!`%$!!!!@!!!!(F!!!!$!3-!!!"F!!!!K`!!!'B\r"!`!!!'!!!!#)!!!!C!%$!!!!C!!!!%d!!!!$!3-!!!"S!!!!9`!!!'3"!`!!!'`\r!!!#*rrrrjJ%$!!!!F!!!!([rrrrS!*!&(`!"!*!'(Si!!!!N!!!HNIq3"!!!(ZB\r!"!!!!)d!!!!$!3-!!!"B!!!!9rrrrq3"!`!!!&`!!!#*!!!!!`%$!!!!B!!!!(V\rrrrri!*!&(`!"!*!'(bB!!!!N!!!I+Iq3"!!!(i%!"!!!!)d!!!!$!3-!!!"B!!!\r!P2rrrq3"!`!!!&`!!!#9!!!!!`%$!!!!B!!!!(Vrrrri!*!&(`!"!*!'(k!!!!!\rJ!!!ISrq3"!!!(qJ!!`!!!)d!!!!$!3-!!!"B!!!!Q!!!!!-"!`!!!&`!!!"krrr\rrq!#3"4m!!3#3"L!L!!!!+!!!)#8!!!!i!!!J6`!!!&`!!#"k!!!!I!!!)+8!!!#\r%!!!JZ`!!!+3!!#$+rj!%!!!Je3!%!!!!M3!!!!-"!*!%(J!!!*6rrrrN!3-!!!"\rF!!!!PIrrrqB"!`!!!'!!!!"krrrrq!#3"4m!!3#3"L%5!!!!)!!!)5MrN!3!!#&\r#!!%!!!#0!!!!!`%$!!!!@!!"!*!')jm!!!"%!!!MSJ!!!*3!!#1q!!!!T!!!)p2\rrN!3!!#3l!!B!!!#0!!!!!`%$!!!!D!!!!+!!!!"N!3-!!!"X!!!!S3!!!!-"!`!\r!!(!!!!"0!!!!!`%$!!!!G!!!!(Vrrrri!*!&(!!!!+)!!!!$!!-!!!!i!!%!N!B\rNR!!!!%`!!#5I!!!!R!!!*,[rN!3!!#8L!!F!!!#0!!!!!`%$!!!!D!!!!+!!!!"\rN!3-!!!"X!!!!S3!!!!-"!`!!!(!!!!"0!!!!!`%$!!!!G!!!!+ArrrrN!3-!!!"\ri!!!!S[rrrqB"!`!!!(`!!!"krrrrq!#3"4`!!3#3"L9A!!!!0!!!*9S!!!#%!!!\rPGJ!!!*`!!#@L!!!![!!!*I-!!!%)!!!QQ`!!!5`!!#E!rj!%!!!Qb`!&!!!!M3!\r!!!-"!`!!!)J!!!#Urrrri3%!N!3F!!!!63!!!!-"!`!!!*!!!!!!Y[rrrpd!!`!\r!!$J!!!"krrrrq!#3"4X!!3#3"LEh!!!!(!!!*`i!!!"-!!!RIJ!!!&`!!#HD!!!\r!D!!!*l[rN!3!!#I+!!%!!!$%!!!!!`%!N!3I!!%!N!BS!`!!!$3!!#J'!!!!K!!\r!+#)!!!#F!!!S6J!!!,`!!#Kj!!!"!!!!+08!!!%N!!!Sq[q3"!!!+38!"3!!!)d\r!!!!$!3-!!!#)!!!!bIrrrpm"!`!!!)`!!!#p!!!!!`%$!!!!N!!!!!$+rrrrf`!\r$!!!!1!!!!(Vrrrri!*!&(!!"!*!'+8-!!!"%!!!T4J!!!*3!!#PLrj!%!!!Tf`!\r&!!!!M3!!!!-"!`!!!'J!!!#J!!!!C!%$!!!!E!!!!+%!!!!$!3-!!!"`!!!!63!\r!!!-"!`!!!(3!!!"krrrrq!#3"4`!!3#3"LT"!!!!6!!!+N3!!!#F!!!UB2q3"!!\r!+Z8!"`!!!)d!!!!$!3-!!!"S!!!!S!!!!'3"!`!!!'`!!!#K!!!!!`%$!!!!F!!\r!!%d!!!!$!3-!!!"d!!!!d[rrrq3"!`!!!(J!!!$6!!!!!`%$!!!!I!!!!(Vrrrr\ri!*!&(!!"!*!'+b!!!!!d!!!V)`!!!)3!!#Xr!!!!R!!!+fX!!!#m!!!VZJ!!!3`\r!!#aS!!!"-!!!,)hrN!3!!#bB!!8!!!#0!!!!!`%$!!!!L!!!!+VrrrrK!3#3""`\r!!!"0!!!!!`%$!!!!N!!!!!$+rrrrf`!$!!!!1!!!!(Vrrrri!*!&'`!"!*!',0J\r!!!!m!!!YD3!!!%`!!#em!!!!@!!!,CN!!!"m!!!Z&3!!!)!!!#ia!!!!M!!!,Pm\r!!!#3!!!!,R`!!!#i!!!ZY`!!!-3!!#l,!!!!e!!!,`J!!!$J!!!['`!!!2!!!#p\rErj!%!!![D!!)!!!!M3!!!!-"!*!%'`!!!0VrrrrD!*!&(`!!!(Vrrrri!*!&(!!\r!!23!!!"S!*!&(3!!!28!!!"S!*!&(J!!!2B!!!!'!!-!!!!i!!!!p`!!!!B!!`!\r!!$N!!!$i!!!!"J!$!!!!1J!"!*!',p!!!!"!!!!`Q`!!!&3!!$#U!!!!D!!!-,N\r!!!"i!!!`c!!!!*3!!$%0!!!!R!!!-@-!!!#`!!!a[J!!!4`!!$)r!!!"0!!!-P3\r!!!&-!!!bF3!!!93!!$+3!!!!!@`!!$+X!!!##!!!-bJ!!!)J!!!c23!!!N!!!$0\rD!!!#6!!!-fF!!!*8!!!cLJ!!!Q`!!$1R!!!#Y!!!0"!!!!,N!!!d6J!!!a3!!$5\r3!!!!!b`!!$5p!!!$A!!!04)!!!0m!!!e'3!!!iJ!!$8c!!!$U!!!06S!!!1d!!!\re9!!!!p3!!$9M!!!$i!!!0@F!!!2S!!!eN`!!!rJ!!$@l!!!%4!!!0F!!!!43!!!\red!!!"'J!!$AM!!!%E!!!0H`!!!5!!!!el`!!"*3!!$BK!!!%R!!!0N!!!!5d!!!\rfA!!!"9!!!$EB!!!&D!!!0Zd!!!@)!!!h#`!!"C3!!$F4!!!&R!!!0b)!!!@S!!!\rh3!!!"E!!!$G2!!!&`!!!0em!!!A)!!!hE`!!"GJ!!$H!!!!&i!!!0j%!!!A`!!!\rhT2q3"!!!0l)!&!!!!2d!!!!$!3#3""3!!!$qrrrrd`%!N!3C!!!"!Irrrp-"!*!\r%'J!!!3,rrrr6!3#3""X!!!%$rrrrd!%!N!33!!!""rrrrmi!!`!!!$J!!!$f!!!\r!D!#3"4`!!!$h!!!!D!#3"4d!!!$i!!!!D!#3"4i!!!%+!!!!"J!$!!!!2!!!!3X\r!!!!'!!-!!!!p!!!"$!!!!!B!!`!!!$i!!!%0rrrrdJ!$!!!!3!!!!3lrrrr5!!-\r!!!")!!!"$rrrrp)!!`!!!&!!!!%3!!!!!`#3"4)!!!%4!!!!!`#3"4%!!!#0!!!\r!!`#3"4m!!!#p!!!!!`#3"4-!!!"krrrrq!#3"4J!!3#3"MIa!!!!*!!!0r6rN!3\r!!$K(!!3!!!#0!!!!!`%$!!!!@!!!!&IrrrrN!3-!!!"F!!!!LIrrrqB"!`!!!'!\r!!!"krrrrq!#3"4m!!3#3"ML'!!!!*!!!1)RrN!3!!$MF!!3!!!#0!!!!!`%$!!!\r!@!!!!&IrrrrN!3-!!!"F!!!!LIrrrqB"!`!!!'!!!!"krrrrq!#3"4m!!3#3"MM\rm!!!!)!!!12q3"3!!188!!`!!!)d!!!!$!3-!!!"B!!!"(!!!!!-"!`!!!&`!!!"\rkrrrrq!#3"4m!!3#3"MPB!!!!(!!!19[rN!3!!$QM!!)!!!#0!!!!!`%$!!!!@!!\r!!(Vrrrri!*!&(`!"!*!'1Ei!!!!X!!!j`3!!!$`!!$RX!!!!4!!!1IN!!!"F!!!\rk$!!!!'`!!$SLrj!%!!!k4!!$!!!!M3!!!!-"!`!!!'J!!!%K!!!!!`%!N!3G!!!\r!H[rrrrJ!N!8H!!%!N!Bka3!!!#3!!$V)!!!!0!!!1[-!!!!m!!!l!Iq3"!!!1b3\r!"!!!!)d!!!!$!3-!!!"B!!!"*!!!!!)"!`!!!&`!!!%Prrrrc3%$!!!!B!!!!(V\rrrrri!*!&(`!"!*!'1h%!!!!X!!!lG2q3"!!!1pF!"J!!!)d!!!!$!3-!!!"B!!!\r"+!!!!!-"!`!!!&`!!!%T!!!!!`%$!!!!B!!!!5S!!!"N!3-!!!"N!!!"+rrrrqB\r"!`!!!'J!!!"krrrrq!#3"4m!!3#3"M`S!!!!,!!!2#[rN!3!!$bA!!B!!!#0!!!\r!!`%$!!!!@!!!!5J!!!!$!3-!!!"F!!!"+3!!!!-"!`!!!'!!!!%U!!!!C!%$!!!\r!C!!!!5X!!!!$!3-!!!"S!!!!H[rrrrJ!N!8I!*!)20!!!!!X!!!mp`!!!$J!!$d\re!!!!4!!!2A3!!!"3!!!pY3!!!&J!!$hErj!%!!!pf`!#!!!"-2rrrm`"!*!%!`!\r!!6Errrrf!3#3"!3!!3#3"Mi*!!!!,!!!2M!!!!!i!!!qB`!!!%3!!$kA!!!!8!!\r!2X`!!!"F!!!qrj!&!!!r'3!"!!!"-2rrrm`"!*!%!`!"!*!'2d)!!!!%!!!r8J!\r!!"J!!$q@!!!!-!!!2ki!!!"B!!!raIq3"!!!2mm!!J!!!6N!!!"U!3#3"!-!!!%\rk!!!!#`#3"4m!!3#3"Mrkrj!%!!"!$3!!!!%!N!C""!!!!"J!!%%(!!!!0!!!38`\r!!!"%!!""HIq3"!!!3C%!!3!!!(B!!!!$!3#3""m!N!K"V`!!!!`!!%'b!!!!(!!\r!3FF!!!!S!!""i2q3"!!!3H!!!!!"!*!'3JS!!!!`!!"$)!!!!$`!!%-l!!!!C!!\r!3i-!!!"`!!"$S2q3"!!!3k!!!J!!!%IrrrrS!3#3""i!!!"f!!!!!`%!N!3G!!%\r!N!C$`Iq3"!!!3m-!!3!!!%IrrrrS!3#3""m!!3#3"N3Z!!!!$!!!4$(rN!3!!%4\rA!!!!!3#3"N5R!!!!$!!!4+VrN!3!!%6*!!!!!3#3"N82!!!!$!!!44,rN!3!!%8\ra!*!+49ArN!3!!%99!*!+4EN!!!!-!!"&[!!!!"J!!%A,rj!%!!"&b`!!!!%!N!C\r&k3!!!"J!!%AXrj!%!!"''!!"!!!!4rrrrqN"!*!%(`!"!*!'4Nm!!!!X!!"'AJ!\r!!$3!!%D&!!!!3!!!4U)!!!")!!"'b3!!!&`!!%EJ!!!!I!!!4a`!!!#-!!"()2q\r3"!!!4cX!"!!!!%IrrrrT!3#3""d!!!"krrrrq!%!N!3H!!!"@J!!!!-"!*!%(!!\r!!(N!!!!,!*!&(`!"!*!'4ei!!!!J!!"(FJ!!!#3!!%H$!!!!4!!!4ld!!!"3!!"\r(f3!!!(!!!%J)!!!!N!!!!%JArj!%!!"))3!$!!!!4rrrrqN"!*!%(3!!!(N!!!!\r$!3#3""m!!!"krrrrq!#3"4i!!3#3"NK0!!!!)!!!5'%!!!!N!!")F`!!!%3!!%L\r[!!!!9!!!50[rN!3!!%MS!!-!!!"(rrrrk3%!N!3G!!!!H3!!!!-"!*!%(`!!!(V\rrrrri!*!&(J!"!*!'55m!!!!J!!"*E`!!!$J!!%T@!!!!5!!!5Ti!!!"B!!"+XIq\r3"!!!5VX!!J!!!%IrrrrT!3#3""i!!!"*!!!!!`#3"4m!!3#3"NY+!!!!$!!!5dd\r!!!!X!!",I!!!!$J!!%Z0!!!!5!!!5lErN!3!!%[!!!!!!3#3"N[Irj!%!!"-N3!\r#!!!"C3!!!!)"!*!%(J!!!@B!!!!$!*!&(`!"!*!'6,8!!!!S!!"-Z!!!!$J!!%d\rI!!!!Q!!!656rN!3!!%f'!!-!!!&T!!!!!`%$!!!!D!!!!@B!!!!$!*!&(!!!!@S\r!!!!$!*!&(`#3#%fP!!!!*!!!6DJ!!!!S!!"0bIq3"!!!6FN!!3!!!@d!!!!#!3-\r!!!"B!!%!N!C40`!!!#3!!&(`!!!!-!!!8UF!!!!m!!"5dJ!!!'!!!&2U!!!!F!!\r!9$S!!!#B!!"8P`!!!+J!!&6M!!!!X!!!92B!!!$3!!"91!!!!0`!!&96!!!!i!!\r!99i!!!$N!!"9J3!!!2J!!&A8!!!"!!!!9JF!!!%%!!"@A2q3"!!!9R-!#`!!!A6\rrrrr*!3#3""m!!!&l!!!!CJ#3"4d!!!&m!!!!C`#3"4i!!!&p!!!!!J!$!!!!1!!\r!!Ai!!!!$!*!&&J!!!Am!!!!$!*!&&`!!!B!!!!!$!*!&'!!!!B%!!!!$!*!&(!!\r!!B)!!!!$!*!&'3!!!B-!!!!,!*!&'J!!!B3!!!!'!*!&'`!"!*!'9Si!!!!3!!"\r@T3!!!#!!!&EN!!!!-!!!9aN!!!!i!!"A-!!!!%3!!&G9rj!%!!"AB`!"!!!"L2r\rrrmF!N!8I!!%!N!CA`J!!!#`!!&I&!!!!2!!!@"-!!!"8!!"BMJ!!!&`!!&LX!!!\r!D!!!@-)!!!#%!!"C"J!!!,3!!&QL!!!!`!!!@FX!!!$F!!"D(J!!!1J!!&TU!!!\r!p!!!@TF!!!$m!!"DV3!!!53!!&VI!!!",!!!@eX!!!%`!!"EM!!!!9!!!&Zm!!!\r"H!!!@q3!!!'8!!"F%`!!!E!!!&a(!!!"`!!!A')!!!(%!!"FHJ!!!G!!!&b5!!!\r"h!!!A,-!!!(S!!"FlJ!!!J3!!&dM!!!#&!!!A@i!!!)J!!"G[J!!!QJ!!&i(!!!\r#K!!!AL-!!!+-!!"H1J!!!U!!!&j3rj!%!!"H@`!(!!!!U[rrrm)"!*!%'3!!!DS\r!!!!$!3#3""S!!!'V!!!!!`#3"4m!!!'X!!!!#`#3"4X!!!'Y!!!!!`#3"4d!!!'\rZrrrrb!!$!!!!1!!!!Drrrrr"!!-!!!")!!%!N!CHh`!!!#`!!&lLrj!%!!"I1!!\r$!!!!4rrrrl-"!*!%(`!!!IF!!!!+!3-!!!"H!!!"q!!!!!F"!`!!!'-!!3#3"Pp\rP!!!!,!!!AhErN!3!!&qT!!3!!!"(rrrrX`%!N!3I!!!!G`!!!!)"!`!!!'`!!!(\rm!!!!!`%$!!!!F!!!!Id!!!!$!!-!!!!i!!%!N!CIi3!!!$!!!&rbrj!%!!"J,J!\r&!!!!4rrrrl-"!*!%(`!!!(F!!!!#!3-!!!"X!!!"V!!!!!-"!`!!!(!!!!(m!!!\r!!`%$!!!!G!!!!Id!!!!$!!-!!!!i!!%!N!CJGrq3"!!!B*S!!`!!!%Irrrqc!3#\r3""m!!!)#rrrrX`%$!!!!A!!!!J2rrrrf!3-!!!"J!!%!N!CJa3!!!"`!!'$)rj!\r%!!"Jf!!#!!!!4rrrrl-"!*!%(`!!!J2rrrrf!3-!!!"F!!%!N!CK)!!!!#J!!'%\rj!!!!0!!!B8J!!!!m!!"K83!!!%!!!'&D!!!!5!!!B@MrN!3!!'&S!!-!!!"(rrr\rrX`%!N!3I!!!#![rrrl-"!*!%(J!!!J2rrrrf!3-!!!"J!!%!N!CKNJ!!!#3!!''\rM!!!!,!!!BD[rN!3!!''V!!)!!!"(rrrrX`%!N!3I!!!#!rrrrrB"!`!!!&`!!3#\r3"Q(`!!!!*!!!BJIrN!3!!')(!!-!!!"(rrrrX`%!N!3$!!!#$2rrrl-"!*!%"!!\r!!Jhrrrqc!3#3"!8!!3#3"Q)p!!!!)!!!BQX!!!!`!!"LJ`!!!$`!!'+6!!!!8!!\r!BUi!!!"N!!"Lf2q3"!!!B`-!!J!!!KArrrqb!3-!!!"B!!!#&[rrrl)"!`!!!&`\r!N!KMTJ!!!!`!!'1T!!!!'!!!Bmm!!!!N!!"Mp!!!!$!!!'38!!!!2!!!C$3!!!"\r)!!"N93!!!&3!!'4frj!%!!"NGJ#3#Q5B!!!!&!!!C*X!!!!F!!"NSrq3"!!!C+-\r!!3!!!L(rrrrf!3-!!!"B!!(rrrrm!!!!"!!!!!%!!!!(!!,rrrrp!!!!%3!!!!`\r!!`!!!",rrrrm!*!(%`!!!!)!!!!%!!!!&!!!!!)!!!!)!!$rrrrq!!(rrrrp!!,\rrN!3!!!!$!!!!'J!0!!!!"!!!!!)!N!F&!!!!!J!!!!3!!!!'!!!!"`!!!!J!!!!\r(!!!!"J!!!!N!!!!)!!!!"J!!!!S!!!!*!!!!"J!!!!X!!!!+!!!!"J!!!!`!!!!\r,!!!!"J!!!!d!!!!-!!!!"J!!!!i!!!!0!!!!"J!!!!m!!!!1!!!!!J!!!"!!!!!\r2!!!!#`!!!"3!!!!3rrrrrJ!!!"B!!IrrrrX!!!!-!!!!!3!!!!F!![rrrrF!!!!\rC!!!!"J!#!!!!'J!!!!X!N!FE!!!!C!!!!!)!!2rrrrJ!!IrrrrF!!IrrrrN!!!%\r!N!3%rrrrq!!#rrrrqJ!!!"F!!!%#!!)!!!!Brrrrq3#3"a`!!!!'!!!"!!!!rrr\rrpJ!"!!!!DJ!#rrrrp3!!!#S!!!!#!!%!!!!V!!!!"J#3"3(rrrrd!!!!!J!!!!%\r!!!!(!!$rrrrc!!(rN!3!!Irrrr!!!!!-!!!!$2rrrrd!![rrrr%!!!"-!!!!(!!\r(!!!!"!!!!!)!N!F&!!!!!J!!!!3!!!!'!!!!"`!!!!J!!!"0!!!!"J!!!!N!!!!\r1!!!!!J!!!!S!!!!2!!!!#`!!!!i!!!!3rrrrm!!!!"!!!2rrrr)!![rrrr%!![r\rrrqd!!!"D!!!!4J!$!!!!@`!!!!X!N!GF!!!!!`!!!!)!!!"A!!!!!3!!!!B!![r\rrrqi!!!"B!!!!4J!"!!!!@Irrrqd!N!Errrr[!!(rrrrZ!!(rrrrX!!!!"3!!!!%\r!!!!(!!,rrrrU!!!!C3!!!!3!!J!!!'B!!!!,!*!(C`!!!!X!!!!#!!,rrrrV!!!\r!B!!!!"!!"3!!!'%!!!!#!*!(BJ!!!!)!!!!%!!!!B`!!!!S!!!!)!!!!C2rrrqS\r!!!!+!!!!D!!!!!X!!!!1!!$rrrrT!!(rrrrk!!,rrrrR!!!!I!!!!!3!!3!!!"X\r!!!"N!*!'rrrrk!!"rrrrj`!!rrrrjJ!"!!!!!`!"rrrrj3!!!!J!!!!%rrrrq!!\r"rrrriJ!!!!i!!!!"!!!!"`!#rrrri`!!!)i!!!!3!!-!!!#2!!!!"J#3"j!!!!!\r!"J!!!!%!!!#4rrrriJ!!!!)!!2rrrq3!!Irrrq-!![rrrpi!!!#[!!!!#!!#!!!\r!X!!!!'B!N!Ha!!!!!`!!!!3!!2rrrpm!!Irrrpi!![rrrq!!!!#V!!!!(!!(!!!\r!V!!!!'B!N!HY!!!!!J!!!!3!!!#Zrrrrh`!!!!J!!!#b!!!!!J!!!!`!!!#c!!!\r!CJ!!!"!!!!#d!!!!!J!!!"3!!!#e!!!!!`!!!"J!!2rrrq%!!Irrrq!!![rrrp`\r!!!#j!!!!'!!'!!!!ZJ!!!'F!N!Hl!!!!C!!!!!3!!!#m!!!!!`!!!!J!!!#p!!!\r!!`!!!!`!!!#qrrrrh`!!!"!!!!!E!!!!C!!!!"3!![rrrpd!!!#h!!!!'!!"!!!\r!Z2rrrp`!N!8#rrrrf`!!!-X!!!!B!!%!!!#irrrrh!#3"3,rrrr@!!!!l3!!!!3\r!!3!!!1i!!!!#!*!&!Irrrp8!!!!)!!!!!3!!!!F!![rrrpF!!!$S!!!!%!!&!!!\r!k3!!!!B!N!IU!!!!"J!!!!%!!!$V!!!!#J!!!!)!!!$XrrrreJ!!!!3!!!$[rrr\rre3!!!!J!![rrrpJ!!!$G!!!!3J!0!!!!h[rrrrF!N!II!!!!C!!!!!B!!!$J!!!\r!#`!!!!S!!!$K!!!!#`!!!!`!!!$L!!!!!J!!!!i!!!$M!!!!"J!!!")!!!$N!!!\r!"J!!!"-!!!$P!!!!CJ!!!"3!!!$Q!!!!!`!!!"J!!!$Rrrrre`!!!"`!!!$`rrr\rre`!!!#`!!!$a!!!!"J!!!$`!!!$b!!!!!`!!!$i!!2rrrp3!![rrrpN!![rrrpN\r!!!$E!!!!4J!#!!!!h2rrrpJ!N!Icrrrre!!!!%)!!2rrrpS!!IrrrpN!!Irrrp%\r!!!!)!!!!"!!!!!-!![rrrp)!!!$r!!!!#!!"!!!"!2rrrp%!N!Errrr6!!(rrrr\r5!!,rrrr2!!!""!!!!!J!!J!!!38!!!!$!*!'!3B!!!!$!!!!"!!!rrrrd!!"rrr\rrc`!#rrrrcJ!!!3J!!!!%!!%!!!%*!!!!!`#3"[rrrmd!!3!!!!-!!rrrrm`!!!%\ra!!B!"!!!!6)!N!B"-`!!!!%!!!%d!!!!!J!!!68!!!!$!!(rrrr,!!!!8!!!!!6\rrrrrS!!,rrrr+!!!"2J!!!!J!!J!!!6m!!!!#!*!'!8!!!!!#!!!!"!!#rrrrb!!\r!!A8!!!!3!!8!!!&f!!!!#J#3"J&h!!!!!J!!!!)!!!&i!!!!!J!!!!B!!!&jrrr\rrkJ!!!!S!!!&k!!!!#J!!!!i!!2rrrmN!!IrrrmJ!!Irrrm-!!!!#!!!!!J!!!!X\r!![rrrm3!!!',!!!!#!!$!!!"L[rrrm8!N!B"M!!!!!X!!!!%!!!"MIrrrm-!!!!\r'!!$rrrr&!!(rrrr%!!,rrrr'!!!"L3!!!"B!"`!!!BVrrrr&!*!'!B`!!!!,!!!\r!"!!!!Bi!!!!+!!!!"J!!!Bm!!!!#!!!!#!!!!C!!!!!!!J!!!!`!!!'4rrrrkJ!\r!!"!!!!'5!!!!#J!!!"3!!2rrrmF!!IrrrmB!!rrrrm)!!!'I!!B!#J!!!D!!N!B\r"S3!!!!%!!!'L!!!!!J!!!D-!!!!$!!!"T!!!!!3!!!'P!!!!"3!!!DB!!!!'!!!\r"T`!!!!F!!!'S!!!!#!!!!DN!!!!*!!,rrrqq!!!"Y`!!!!J!"!!!!EJ!!!!,!*!\r'!EN!!!!,!!!!!J!!!ES!!!!,!!!!"!!!!EX!!!!,!!!!"J!#rrrr[`!!!E-!!!!\r1!!-!!!'d!!!!CJ#3"J'e!!!!#`!!!!3!!!'frrrr[J!!!!B!![rrrl`!!!'q!!!\r!#J!#!!!"[`!!!!S!N!B"`2rrrli!!!!#!!$rrrqp!!,rrrqm!!(rrrqk!!!!#!!\r!!!%!!!!'!!,rrrql!!!"``!!!!J!!3!!!F6rrrqk!*!&![rrrl3!!!(L!!!!&!!\r(!!!"i`!!!!)!N!B"h3!!!!F!!!!%!!!"j!!!!!F!!!!&!!!"j3!!!!S!!!!'!!!\r"j[rrrrB!!!!)!!!"hJ!!!!)!!!!-!!!"j`!!!!)!!!!3!!(rrrqe!!!!&!!!!"6\rrrrqd!!,rrrqf!!!"fJ!!!#!!#!!!!GX!!!!+!*!($J!!!!F!!!!#!!!"h!!!!!B\r!!!!$!!!"h3!!!!)!!!!%!!!"hJ!!!!B!!!!)!!!"h`!!!!B!!!!*!!!"i!!!!!S\r!!!!+!!!"iIrrrl8!!!!-!!$rrrqh!!(rrrqf!!,rrrqi!!!"f!!!!$3!$3!!!GR\rrrrqh!*!'!HMrrrqh!!!!"!!!!HRrrrqh!!!!#!!!!HVrrrqh!!!!$!!!!H[rrrq\rh!!!!%!!!!Hcrrrqh!!!!&!!!!Hhrrrqh!!!!'!!!!Hlrrrqh!!!!(!!!!Hrrrrq\rh!!!!)!!!!I$rrrqh!!!!*!!!!I(rrrqh!!!!+!!!!I,rrrqh!!!!,!!!!I2rrrq\rh!!!!-!!!rrrrZ3!"rrrrZ!!#rrrr`!!!!E!!!!"X!"N!!!'a!!!!#`#3"J'brrr\rr[`!!!!)!!!'mrrrr[J!!!"!!!!'prrrr[3!!!"J!!!("rrrr[3!!!"`!!!(#rrr\rrZ`!!!#!!!!(&rrrrZ`!!!#J!!!('rrrrkJ!!!$!!!!((rrrrkJ!!!$3!!!()!!!\r!#`!!!$J!!!(*rrrrZ`!!!$S!!!(+!!!!#`!!!%)!!!(,!!!!#`!!!%3!!!(-!!!\r!"J!!!%B!!!(0!!!!#`!!!%J!!!(1!!!!#`!!!%S!!!(2!!!!!`!!!%`!!!(3!!!\r!!`!!!&!!!!(4!!!!!`!!!&3!!!(5!!!!#`!!!&J!!!(6!!!!#`!!!&S!!!(8!!!\r!C`!!!&`!!!(9!!!!C`!!!'!!!!(@!!!!C`!!!'3!!!(ArrrrZ3!!!'J!!2rrrm%\r!!Irrrm!!!2rrrl-!!Irrrr8!!2rrrl)!!3!!!!X!!Irrrl%!!!!0!!!!!3!!!!F\r!![rrrl$rN!3!!!!)!!!!![rrrkrrN!3!!!!B!!!%U%G98dN!!ZK(990*3fpZCQP\rR!!'l4e96580[EQCTCh9bBA4TEfi!!mYNC@CKG@ad9(P`C3!'%'4PCQ&eE(4$FQ9\rKG'pb!!!ZBA9dEe0`D@i!"a&ZEd0SC'Pb!!%bB@0MGA*6G'&d!!,qD'&c3fpZFfp\rXC3!'kQj[3A9dEdPZDA4(FQ&Q!!)(FfKKFQ9N6h"PEJ!(9R0TCe"TF'8!"DTZEd&\r`F'aP4ACPER4c!!G%GQ9bFfP[EJ!$P'jeE90eCQCTBf9c!!#1Fh9QCQPMCA-!!TC\r(990*8h9QCQPi!!D`Fh9QCQPi!!#,Fh9QCP4jF'8!!r"cG@CQ3h*PBA4[FJ!%B8!\rj-6B!"l*6Ef0VCA4c!!0&8fpMDf9d9'&LE'8!"kTcEf0VCA4c!!Ej8fpMDf9d!!!\rFFQ9Q3fpeER3!"r0IAhC`G()N!!5eEQ9PC(0$EfjcEfaP!!"a4e96590`D@i!"eC\r(990*4'9QBA9XG&0`D@i!!"j(990*4AKPB`!(!%G98dP%C@CKG@ad4AKPB`!"0%G\r98dP'9(P`C3!#f'G(990*8h"PC@3!!J&PGR4)B@jNE'9b!!GaCACd6@&cD`!"I'9\rbFQpb8fpMD`!"`'9bFQpb9(P`C3!#Tf9bFQpb3fpeER3!!Lp$BA4MD&0dC%P2!!9\rkD'&c6@&VC8C68h"PB`!(SdCPBA4eFQ8!",pREfpN!!!,D'&c3@aTBA-!!#&SBA0\r1CAG64J!&XfKKFe"bEf0PFh00Ch)!!%jSBA0$8NeI8!!'a'KKFd0563!'q@KKFd0\r83J!$%@KKFe0dC%j#8&p3!!&pD'&c8h4N6N*3!!D`D'&c3A"`E'9&GQ9ZG(-!!Ej\rSBA05CACTFf9N9'PYC8eRFJ!$V5j(990*Af9bFQpb!!AaCA*bEQm!!c9PFR)!"e`\rZ4e9659pPFR*[FPpZD@`!"S*QDA*cG&4TE@9IAc%h4e96580[EQCTCh9bBA4TEfi\r!"eahC9pI-6G(990*3fpZCQPRGA*KG'P[EJ!%!d!j0MJ!"#dZAepMG&pI-6G(990\r*3fpZCQPRGA*KG'P[ENCf!!-[,N0eFP*PFdCTE'8!!jFZ9A0P8Q9c4QPXC3!&U#j\r(CA3a8Q9cEh9bBf8!"XSZ4f9d5'&ZC'aP8fPkC3!$,#jIAfjhB9pI4P9X!!D),NK\r-Ef0V!!GP,QePE@0`H3!'ibjMD'4TFJ!!p5j5C@aPBA0P8Q9cEh9bBf8!"&YdD'P\rc!!&UDJ!"D@N!!$PMEfjQ8fPkC3!')Q0[EQCTC`!'-NG98dP$EfjQD@G5Fh*M!!8\r"CQaKCh-!!Rj[E'45CA0'D@aP!!3%3$Nf13!$6bj6CA4%C@CKG@ad4P4jF'9IAc%\rh4e96580[EQCTCh9bBA4TEfj$4P*$194'D@aP8h"PB`!$P#jIAh"dFPpRE(9P!!)\r(,NK(CA4'5@jQE`!#15j36(0dFR*MD()!!'NZFh4bEQ0`H3!!!#jcG(*ZBfe`!!+\rN,NK6CA4'5@jQE`!%UfjKE@8!!AY84QPXC90`C@-!"b8N4P06F'9M!!B)4P06F'9\rM!!FHGP*PCNjeE3!&bR"KFNP%!!4)Ff9KFQ0SFh9QCQPi!!2cC'pd!!5UD@jQE`!\r&INC*EQC[!!CQCQ48HA"P!!&VCQ4$FQ9KG'pb!!HmCQ4'E'&RF`!#"QCN6'pMBA4\rTEfi!"D43EfPZG!!"GRB!!@KS!!DfCQ4'E'4b!!4$3$Ni0`!(R#j%Ed&eG'p*EQP\rd4h*KCPpI-6G(990*3fpZCQPRGA*KG'P[EN0'GJ!(q#j-68GPG%0eFR*PER4"03!\r#NR&N!!'[,NPZDA4(FQ&Q!!4G3$Nj-3!!!5j*EQPd3fpZFfpXC9pI4RB!"D8Z5@j\rTG%0[ER0[E'9IAc%a8fpMDf9d9'&LE'9'GJ!&HN!a-$!h!!Ea,QGPG'4dB@*XCA0\rTHQ8!"fBZFfpMDf9d!!(H,N4[E@&TEPpI-6*6Ef0VCA4%EfeKD@j'D3!"Pbj*ER0\rdB@aXAema-90[BfYPG&4KBQaP4P!f8fpMDf9dD3!'Gf4[E@&TEJ!%Eh4jF'8!!,9\r`FQpdEf0[E!!#-'CN!!3ZFfpMD`!$l'4[E3!%0&0[BfYPG%4[E@&TEJ!&Y%!a-$)\ra!!0#,R0[BfYPG("KDA)!!-mZ8Q9YEhCPAema-90[BfYPG&4KBQaP4QN!!Z4cGJ!\r&h%!a-$-j!!@2,R"TF'8!"%%Z4e965AGTG'K9EQPi8fpMDf9dF`!"1#jcD(9dC'p\rhEJ!&pN!a-$3c!!HI,Q0SEfpcC3!'mh"bEfe`G!!#Y'0[ER0dFQ&TER3!"k*ZB@e\rPE'9Z!!Ak3$%`0$F!"8BZBQPZC!!'r#jIAhCMAema-90[BfYPG&4KBQaP4QN!!A0\rc!!#IFfpMDf&NC()!"YKcB9pXC@i!!GGcB9pQB@eTE(N!"`KcB9pNBA4K!!Am3$%\r`0$N!!0JZBfpZEQ9MG!!%3'&NC()!"qaKC'4bE'9Z!!883$%`06%!"aSZE'PcG'9\rZ!!5&F@aPEJ!&&N!a-$8c!!HA,Q&MBf9`G!!&0d!a-$Bc!!5S,Q0XEh0PFfpMDf9\rd!!8j3$%`0M8!"3mZFQ9MGJ!$@Lj(990*3fKPBfY"E'&bE9pI4RB!"J0LG@CQCA)\r!"[GLG@CXC@i!"f9QFQpYE'9Z!!9@3$%`0c)!!F3ZFQ9MGQCbEfd!"$0QFQpY!!9\rG3$%`0cN!!1iZFQ9MGQecC`!$JbjIAf0dAemj8f0KG(4PFQ9b4P"$0@P[GQ9MD3!\r$,5jIAf4dAemj8f0KG(4PFQ9b4RB!!fYYFfF!"M9YFfGSC()!!"GYFfGIEQ&YC3!\r$-fecCepZB@ePE'9Z!!GVEA0RAfP[GJ!&-fP[GQ9M!!"bD@pfAf*KFf8!"`aTEhC\rIE'9Z!!+#EA0RAfP[GQaPEJ!$X'ecCepMEfjdFQpX!!BNEA0RAf0[ER4bEfaXC@i\r!!AYYFfGICQaKCh-!"A"cBf&dG!!"390MBA4dCA*PFJ!#2L46Bf&dG%GKG'J!!FC\r6Bf&dG%GKG'J!"aecBh*KG'0S!!1HBR9Q!!2-E'9Z!!8&BfpeER3!!TaTE`!&Q8!\ra-$Ne!!)-AepNG&pI190MBA4dCA*PFNCf!!@D3$%`16B!"JiZ5'&ZC'aP9h*TG'9\r&FR*[FR0IAdCT!!BB,R*KDA0P!!ERFQ9dGQ&X!!@I3$%a-$J!"dJZGh*TG'9f!!,\rH,PpIBh4IAcK(BA4SCA*PFNC33c9TEhCPBfN!!MBZAepNG&pI1%GKG'KPFQ9b4RB\r!!`PTEhB!"!YRBA4S!!"-4f&dD'9bCA)!"GY!-6%b0!!"VPpIC(4IAcK(BA4SCA*\rPFNCf!!AF3$%a-M8!"H-ZFf9ZC!!&q8!a-6-b!!H0,R0PEQ4dE`!#rA4[!!A(G'p\rXC@i!"3"!-6%c13!!I5jcC@jNEA0R!!8p3$%a068!"6j!-6%e0J!&E5jeF'4KG'9\rcG'&dGA-!"hJZGhK0B@06Ef0VCA4)B@jNE'9b8(*[B`!(ZA4MF(0[BfX!!Ep83e"\r6Ef0VCA3!!lXN58j&9&0[BfYPG!!#c%P14946Ef0VCA3!"rBN8fpMDf9d!!$IGhK\rbC@CMEfi!"b9hH'9fC@jd!!2RGhKPGQ9ZG'eKFfX!"R*cG(*PB@d!"XjcG'&dGA-\r!!ieZEfjLE'pMDfPZC`!(pR*PBhC#G@B!"CTbC@0fC!!#ch0K!!2NFfpMDf&NC(*\rID@i!"`*cD@jIE'9Z!!,!FfPZAfCKE@PXH3!!@R0TEPp`Eh*d!!!$FfPZAf&NC()\r!"feTEPpKC'4b!!CpFepKC'4b!!#bFfPZAhTPFQm!"1a`C@9b!!DaFh0dBA4P!!$\r(BA0jEQ0PFR)!"%*cC@aQ!!%FBf&Z9h*TG'93!!$ABf&Z8Q9KC&!!!B&PH'0PF(4\rTEfi!!'CMB@jAFQPdC3!(2'0KEP*PB@3!"AK!-6%h-!!(FLjcC@aPBh3!"cmZE@9\rYFf9d!!0,,Na04f9d9'PMDh-!"3phD@4dD!!(a(*PB@4QC(-!"ReQC&pcCA3!!#"\rQC(0IBQPdF`!!EAGbDA4PCQ4c!!(iCAKMCA"dCQ4c!!G*G'PYC@peG!!(fh4TE@9\rfB@`!"UPdGPpcC@-!"a9dGPpeFf9M!!'BFf&fC89bFQj[!!,'4A*bEQp6BACPFJ!\r$D@C6BACPC%9bFQj[!!&PC3!"GhF!!A*b!!)3C@3!!P*hC!!#XR*N!!"GGf&TG(4\rTE@8!!@KcG'&bG(4TE@8!"9a!-6)f-!!%m&pIC(4IAc%`4A*bEQp6BACPFNCf!!9\rG3$%b0M%!"BFZAepNG&pI-6"&FR*ZEe0KGQ9b4RB!!NmZAepNE&pI4P"f!!9K3$%\rb0M8!"+8ZCf9dFfpMDfjKE@8!"@0!-6)f0`!%@bjRCA4`C@9bEQ&YC3!&C8!a-MB\rj!!-'D'ph!!9p3$%b0c%!"--ZC(9`!!9r3$%b0c-!"DSZC(9`-J!#Rh-a!!@&3$%\rb0cN!"(%ZD@pMG'acEf0VCA3!"c"bCA&eCA0d!!5hBA*RF!!&Rd!a-MJc!!2[,QG\rPG(0[BfY[F(3!"@YXCACPE!!(3'p`G'jKE@8!"[e[F(4fB@`!"MG[F(4XC@i!"D&\r!-6)i03!$DLjcCA4cEf0VEh"d!!@M3$%b1$F!"$JZ4e96590PG%K[EfX!"'"MEf4\rP!!4-4e9658K[EfY$Ef4P!!A[4e9659p6F'PZ5'p[D`!&f%G98dPI4AKPBdK[EfX\r!"J&(990*AdC8HA"P5'p[D`!'"NG98dPI8h"PC@4)EfpV!!4+D'p[D`!%-5j(990\r*4f9d5'p[D`!'0bj(990*8f9d4ACPER4c!!92G'&LE'8!!lKPGR3!"NXZ4e9658G\rPG%9fC@jdF`!(Mf4[E@&TER0IAc%b8fpMDf9d4'pYB@PZ!!HBF(*[Bf9cFepI-6*\r6Ef0VCA4%EfeKD@i!!lY3FQpMCA0c8f9bD@&X6R9YBQ9b!!@-D'PRD%a[EQG2CP"\r66J!%H@a[Gda[EQG2CP"66J!&a8!a-c%f!!!R,P*PB@4jAema-P0[BfYPG%4[E@&\rTENCf!!C2,PGKDf99F&"bEf0PFh-!"Gp!-6-b-!!(kbjIAf0dAema-P0[BfYPG%4\r[E@&TENCT!!4JAepfG&pI-6*6Ef0VCA4%EfeKD@i!!M%Z4f9d3h9bFQ9ZG&"bEf0\rPFh-!"HG!-6-b1!!(i5jIAf4dAema-P0[BfYPG%4[E@&TENCf!!8"3$%c-c)!!KB\rZFfpMDf9dAema-P0[BfYPG%4[E@&TENCTF`!&!d!a-c-d!!H',R0[BfYPG("KDA*\rIAc%b8fpMDf9d4'pYB@PZ4QPc8&!f8fpMDf9d!!8&3$%c-cB!!T8ZBfK[Eh0PAem\ra-P0[BfYPG%4[E@&TENCT8'03GQP3GP"T!!8(3$%c-cJ!"(BZ4'pZG&0dFQP`Aem\ra-P0[BfYPG%4[E@&TENCf!!FL,NCXGA0S8h4ND@pIAdCf!!B&CQCXGA0S!!E-,QC\rhB@aV!!8J3$%c0$%!"Q%ZAepMG&pI-6&6Ef0VCA48B@*XC8Cf!!Eh4QaeFfK6G'4\rTEepI4RB!"j8ZBA4PH'Pd!!8L3$%c0$-!"CPcG'&bG!!&48!a-c8e!!9N3$%c0M3\r!"B&!-6-h-3!'V5jIAf4dAema-90[BfYPG&4KBQaP4RB!"MPQBfa[Ff8!"LNZBfa\r[Ff8!"D*!-6-i-J!"0dG98dP"E'&bE3!&U%!a-cJi!!Bi,Q&XBA*Y!!I1Ff9MEfj\rNF`!"-h*PE@&TEQPZC`!&`%!a-cN`!!6*,N4[8faPCA"IAdCX!!9PG'PMDh-!"Vj\rhB@YPGA!!"D4!-63`-3!(G#jeFfaPCA!!!"PeFf9MEfjNF`!&TN!a0$!c!!-H,N0\rYC&"PFQP[C&pI4P!a-89fC@jd8Q9MEh*N!!&r,NGPG&0MFQP`G%eKEQ&RCA*@BA*\rTB@*XC3!#9#j(CA46Bh*TF(4@BA*TB@*XC3!%6bj(CA45CA0[GA*MC3!&##j,CAP\r8FQ&ZFfaKG'8!!'adD'9&GQ9ZG!!$T89fC@jd8Q9MEh*N!!6CGfKKG!!(5fePFh0\rKCf8!"&0hD'9Z!!92GfKPFQ8!!5aYEf4TCQPPFR-!"mK,3dK58(4b!!9dD%Y$5&)\r!"FTcG'&dC3!'C'YPH80*C!!!3@KTCfK$D'&b!!HqE'ph3fKKFJ!(YfYPH8PZCQm\r!!ZGfDA*dG@&X5f9j!!GUDf9j3fpNC3!$j@C8D@eP9'p4G@Pd!!AM3$%d-M!!!PF\rZ4e9658PZG'9bFR9`G&pI4RB!!28Z6%e(CA4&GQ9ZG&&eCA9P!!CZCACPER44!!9\rN4AC44@`!"4Ya6'PZD`!&Ie&&E'9Y!!@DF94jF'8!"Bja4'&dB3!!Ff9fG&&AD'&\rd!!-*CACd88ePFh0KCf8!!-jPGR449fKPEJ!"[f9fG&&AD'9bC3!&%f9fG&&0Ef4\rTCQPPFR-!"30!-63c-!!#rP0dB@jN3@a[EQ8!!,9R4e96590`D@j$EfjdFQpX!!%\rjD@j'Eh*PCh*[G@jN*$%d-c%!"39!-63c-J!!##j(990*4'9QBA9XG&0`D@i!"98\rZ8QpdBA4P3h9bFfpb!!BR,PGKDA41CAKd4ACPER3!!`8Z4QPZC>EQ4[G`!%`5j\r6HA0dC@e$E'PMD`!%Cbj"49"bEf0PFh0"F("XC89fC@jd!!39,NCXGA0S4ACPER4\rc!!!PFh"TEPpYFfF!"d468&p0590$!!'H8e"I8d9-4808!!IP8e"I6N&043!(8e0\r3Ad&%4&)!"M"68&p69&*&38eI8N9"4!!(i&03Ae088N9"69pA8NP843!&"903Ad4\r(8N&0Ae*&383!"S*68&p%4e*"69pA8NP843!!aP03Ae0-4893!!498e"I39986ep\r68%P1!!-kBA*R!!FaBfpZG(*TBJ!%m@eKFfX!!5pcE'9PF&4TE@8!!L*PGJ!$@(G\rTEJ!!BdGbB@C3Eh*d!!DaC'9fD@0P!!"0F'pbG%*TG(-!"LC#DA40BA!!!,0LBA0\rP3@4NFJ!!IR*[Gd*jG'9c!!BVBQpeEQ4c!!4r8Q9MG!!$,h4[F!!%$'aPCR3!"L*\rLEh4dEfd!"GCbD@GSG!!!*("[FR45C@0d!!B`GQPc8QGZ!!(&6@&M8Q9RD@pZ!!G\r"FQGZ8fPkC3!(cR*REN*#EhJ!"k4ME'P`8QGZ!!@CBQY3BA3!"kT3BA4dCA*Z!!0\rKF'&d!!F8CQPXE&"KG!!&`("Z6'pM!!DVF'j6DATP!!BCF'j0Ef4P!!ArF'j3BA3\r!"4G`EPCTF`!'hR4i4QpZG!!'9A4i4Q&MC3!'-A4i6@pNC3!'ih4i8fPkC3!(Zh0\r`4AKdFQ%!"epQCd0[E'pb!!FiBQY$Efa[FJ!([@0[E(*#DA3!!XC`BA46G(*PG'0\rS!!GdF'PM8f&fC3!(SA*REP0KGQ8!!!a`Efaj8f&fC3!"-QGbB@C3FQpMF`!()e&\r%8(*[Bh-!!%GdCAKd8(*[B`!"[e*[GA4TEQ9%CA0MFQP`G'pb!!FRCfp0DAKPC%e\r[C'98FQ&`!!B)FQpeG'PZC84PFf0bDA"dEh*'E'&RF`!"9R*PFf9bGQ9N-3!"9h*\rPFf9bGQ9N-J!%Gh0PE'9MG'pb5@jQE`!%+R*[GA4TEQ9$Eh9ZG!!'m(*[GA4TEQ9\r5C@0[FQ4c!!8I8QpeG'PZC9*PBfpbC!!![h"bEf0*EQC[!!23590"!!6lFQpeG'P\rZC8CXB@Gc!!D%F(*[Bd4PFf0bDA"dEh)!!0GcC@aPBh4[FJ!!M@aTEQ93FQpM!!#\rjFQ9MG&"bEf-!!3jb8Q9MG&"bEf-!!*&[GQ&X8(*[B`!()@&bBe"bEf-!!2"`Efa\rj8(*[B`!(JA*REP"bEf-!!+TLDA4c8(*[B`!$lQ0[E@ePER43FQpM!!)lG(K0C@&\rc8(*[B`!#j'GPG&"TBe"bEf-!!R&`GA43D@03FQpM!!@N3$%d1$!!",-ZAepMG&p\rI0dCPBA4eFQ9'9A06B`!!Bbj14f9d9(*KF%&NC(*PFh-!"k0dFQ&`6R9Y!!3UG&4\rjF!!&TN!a0$Jb!!1k,PpIBh4IAcG'C@&dGA*P4P9XE!!!-5j(CA0dB@ad!!9BGQ&\rXG@8!")0KG(4b!!@S3$%d1$3!"--ZAepMG&pI0dCPBA4eFQ9'9@aXE!!&UN!a0$J\rf!!IU,PpIBh4IAcG'C@&dGA*P4P*$0dCPBA4eFQ934RCIF`!%`h"bC@0[EQ4TG'P\r[EJ!%$fPZDA3!"Da!-63i1!!&$LjIAf0dAemh4Q9KG(9bC8C34RCIF`!&a%!a0$N\r`!!IY,PpIBh4IAcG'C@&dGA*P4P*$0dCPBA4eFQ934RCIGJ!&b8!a0$Ne!!84,Pp\rIBh4IAcG'C@&dGA*P4P"'GPpf!!A,3$%d16F!"1dZAepMG&pI0dCPBA4eFQ9'8N-\rh4Q9KG(9bC9*$0dCPBA4eFQ8!"@9MEfjN-3!&CQ0[EQ3b!!+rEAPZCA3N-63j13!\r$0fejEQpNC53a06!`!!!aCA*b*$%e-$%!"DP!-68`-J!"ELj"F("XC94KE'Y*C'9\rZG'PdH9pI4P*c8R-!!)iZ69"36h"PEJ!(kLj(CA41Ef4P3@4NFQ9cF`!$ZQjPG!!\r%iQj[C'8!"E"!-68`13!"q#j(990*4'9QBA9XG&0PG(9`!!$D4e965AGTG'K"F("\rXC94KE'Y6Ef0VCA4c!!+Q,NG98dP6CA4eF!!(#%G98dPhDA4S5@jdCA*ZCA46Ef0\rVCA4c!!+)4e965AGTG'K339"6Ef0VCA4c!!,b4e965AGTG'K38%06Ef0VCA4c!!2\rr4e965AGTG'K9EQPi8fpMDf9dF`!%#%G98dPhDA4S8dP299K6Ef0VCA4c!!A)3$%\re-6%!"&*`FQpM!!A+3$%e-6-!"FY!-68a0!!'r&pI8P4859pI-6*6Ef0VCA4%Efe\rKD@i!!8PMD'p[Ff9IAc%b8fpMDf9d4'pYB@PZ4QP3Be"fD9"f8'N!"SpcEf0VCA4\r`B@PbAema-P0[BfYPG%4[E@&TENCTFe"30P0[BfYPG!!"mA0[BfYPG&pI-6*6Ef0\rVCA4%EfeKD@j'DA-!"J0IAf4dAema-P0[BfYPG%4[E@&TENCf!!##,PpIFfPZDA4\rI4e96584TFh"KG'0SAf0`!!@UAepNG&pI-6&6Ef0VCA48B@*XC8Cf!!($,PpIFQ9\rRDA0dCA*ICfa[BQ&XAfpLDQ9MG!!(F%PZDA4$8Nd!!#9*EQPd3e4#9A4TE'PdD@9\rc!!A03$%e-6B!!5P(990*8f9dGA!!!hj86d-!!1C(990*4'9QBA9XG&0PG(9`!!$\r$3A"`E'98B@aV5@4PER4TG(PIAdC5Fe*c!!1MAepMG&pI0dCPBA4eFQ9'8N-h4Q9\rKG(9bC9*$0dCPBA4eFQ8!"&GIAf0dAemh4Q9KG(9bC8C34RCIGJ!'3epIBh4IAcG\r'C@&dGA*P4P*$0dCPBA4eFQ934RCIGJ!%9&pIBh4IAcG'C@&dGA*P4P"'GPpc!!C\r!AepMG&pI0dCPBA4eFQ9'8N-h4Q9KG(9bC9"'GPpc!!25AepMG&pI0dCPBA4eFQ9\r'9@aXE!!#-epIBh4IAcG'C@&dGA*P4P9XE!!$iPpIBh4IAcG'C@&dGA*P4P9c8f-\r!!3T(990*5@jdCA*bGA"dAep'GJ!'fR9cE'9PF!!&E@&XBA*Y!!*,4e96580SC@0\rV3@aKFQeIAdCf!!9fAepfBepI-6&6Ef0VCA48B@*XC8CT!!GT8Q9YEhCPAema-90\r[BfYPG&4KBQaP4QN!!-G*ER0dB@aXAema-90[BfYPG&4KBQaP4P!f8fpMDf9dD3!\r&cPpIBh4IAc%a8fpMDf9d9'&LE'9'GJ!$D84[ER46G(*TF&pI-6*6Ef0VCA4%Efe\rKD@j'GJ!'69pIBh4IAc%b8fpMDf9d4'pYB@PZ4QN!"lT5C@&NH9pI-6*6Ef0VCA4\r%EfeKD@j'GJ!!-%4[E@&TEPpI-6*6Ef0VCA4%EfeKD@j'D3!&e%G98dP(CA4&GQ9\rZG(-!"H"(990*8f9d4ACPER4c!!0M4e9658GPG%K[EfX!!fC(990*8f9d5'p[D`!\r#qR0PG(0[BfY[F(3!!SCRCA4cEf0VEh"d!!-&D@pMG'acEf0VCA3!"%4NGA!b!!1\r3!'4eF!!!RR0SGA4NEhGZ!!1LCf9dF'9PFQjKE@8!!jKRCA4cEf0VEQ&YC3!'jA0\rPE'9MG!!%M(9`C'&dCA0dBA4eF`!(+h0PEQ4YFfF!"J0cC@jNG'm!")&cC@jN!!D\rVGh*TG'9f!!GMFQ9MGQecC`!!6R*PBhCQFQpY!!5aFQ9MGJ!$1Q0XEh0PFfpMDf9\rd!!BKB@0MCA"d!!CeE'PcG'9Z!!G,BfpZEQ9MG!!%k'*TEQ3!"K9MD'p[Ff8!"$"\r`DA"P!!,8FfpMDf9dF'&TFJ!'ZA0[BfYPG!!&2QGPG'4dB@*XCA0THQ8!")T*EQP\rd3fpZFfpXC9pI-6&6Ef0VCA48B@*XC8Cf!!C-4'p"GA4[5@jTG%GbB@CIAc%h4e9\r6580[EQCTCh9bBA4TEfj$4RB!!S46CA4%C@CKG@ad4P4jF'9IAc%h4e96580[EQC\rTCh9bBA4TEfj$4P*$194'D@aP8h"PB`!$U&pIBh4IAc%h4e96580[EQCTCh9bBA4\rTEfj'GJ!'$%G98dPICA*bEh*IEQPX!!+L4e9659pPFR*[FJ!!#3P36eG5!*!'$I!\r!!"4D!!!!4`!!$P`!!!Aq!!!)1!#3"jm!!!!)!*"!4@F!!%9T!*!&!89U!!3!!!!\r#!!!!6!!!!#!!!!)MNq(rr$[J!!&)!!!XL!-!!#`!!$T!JJ!F1!!!!*J$!!#)!`!\r"I!!(G8'#!!Jlr`!"1'-!!BJ$!!"m!!Ge3),rd$Kr!!#$iIrm6S!!)%9U!!3!!!!\r&!!!!H!!!!)!!!!,[L!-!!(`!"h3X!!!U3B)!4%#!!#JX!2r&3B)!1%#!!"!X!2q\rf3B)!0%J!!%3X!!!!3B)!0%J!!$JX!!"F3B)!(%#!!#`X!!!r3B)!#%J!!#!iB!!\r"6S!!))`$!!&m!!Ge3))!$$KJ!!"1J!!J1'-!!8[rrj!!6S!!)%9V!!3!!!!'!!!\r#B!!!!-)!!!3DI!J#TVmKrq53!!%!#*3Krk!li`!!1i3!!$XP!!#$BJ!!1!!!!*!\r!!`")1!!!!*!!!`"-L!3!!(`!"h9!JJ!31!$rfl!E!!")!!#%L"`!!#`!!$T"JJ!\rX1(`!!$L!!$T)!!!"B!!!!#J$!!""JJ!81(m!!%J!!!&J!!!!5!!!8#JC!!""JJ!\rm1,rrq$LCrrJi!!!)I!N$TS4N!!L!"!!%P'8!#*!!"3!%3J$rm)"N!!LJ"!!-N!"\rP!!L`"3!-5!!!%$Kr!!")!!!"B!!!!)JF!!!X!!!k3))!+)`F!!&m!!Ge3))!($J\r!!!#B(`"(1!!!!CJI!%BiI`!!5!!"@$Km!!")!!!"B!!!!$Y$!!#S'`!!I!!!0&3\r!fAkB(`"'9!!'2d'#!"`iHJ!"5!!!!@!!!!#3!(m!5#J$!!"!JJ!-1(m!!%J!!4#\r!I`")1*`!!$Lk!!&)!!!"B!!!!)"r!%K)!!!"1k-!!#`G!(p!J3!81!$rfl!E!!!\riI`!!5!!!f"ap!!a)!!!"B!!!!*!!I`"-+!-!!%##!!`iI`!!5!!!Z*Zr!%H$h`"\r)1k!!!%J!!&3iIJ!!5!!!!94J"Mp"JJ!-1)!!!%J!!!JiJ2rrJ(m!6"`G!!amJ`-\rZJ*m!6"ap!!`i!`!)Im3",MKq!!!l[3!"5!!!!@!!!!"r`r)81pi!!BJI!%Gm!!G\rdI"d!!%'!rk3iI`!!5!!!!@!!!!"8B!Br3B)!%$J!!!#!I`"-X!-!!$Kr!!#!R`"\r-L,m!4hbP"h3i`!!"5!!!!@!!!!#BI`"'1(m!!)!"!'Ji)3"JI!J$TVXKrq41J!!\rJ4A3$!*!%"`!!!"a&G3#3"3J!!!"F4A8!N!8*!!!!F%9e!*!&#J!!!-"&G3#3"3X\r!!!$m4A8!N!8-!!!"*%9e!*!&$3!!!8a&G3#3"3)!!!&B4A8!N!8-!!!"I%9e!*!\r&"3!!!Da&G3#3"3X!!!(S4A8!N!81!!!#$%9e!*!&$`!!!Ma&EJ`%!!!!)J!!!!b\r!!*!,J!!#B$J!!!"&G`#3"3B!N!4&D`!%!!!!)`!!!)`!!!(L!!!)F(`)!UD6iIr\rmNm(rq*!!!3!)P#(r`$[M!!#,``"(Ipi(G%J!!%!iI`!!J*m!6"`H!!amK!)8L"m\r!4h`!"h4m[J"31-!!!%J!!!&J!!!!Q(m!4P4J"Mp"JJ!-1'!!!8J!!"JX(J!!1pl\rrrd##rl`iB!!!Q(m!4S!"!%Ji)3"!I!J$TS2Krrb$`Iri6S!!)%9e!*!&$`!!!%4\r&EJ`%!!!!*3!!!!b!!*!,J!!!M"!!!!"&G`#3"5-!N!4&DJ!%!!!!*J!!!BJ!!!)\rU!!!*%R`)!UDr3IrSN!!"!!L8)Iq`1q-!!$ZN!!!la3!!Jd)!!%J!!35)(3!!I!!\r(G#`!!#T"JJ$83)!!(#`!rm9"JJ$)3)!!1#`!rlC"JJ!J5!!!,#`!!&a"JJ!83)!\r!)#`!!$p"JJ#!5!!!&)`G!!&m!!Ge3))!#$Zprrq)(`!!I!-(G)JG!!"m!!GdI!-\r!!%'#!&5,R`!!Ij`(G#`Frrp!JJ!-1'$rrdJ!!!aAJ!BqI(S!VSYp!!"rH`Gd,"[\rrrd##!!`i!2rr5!!!$&GJ"Mjm'J#ZI!-!!%'#!!`iB!!!5!!!Q$[r!!%l[3!"5!!\r!2#`H!!!lh[rr3)!!$$KJ!!")!!"i1rm!!6Kr!!!iR3!"1,i!!8J!!!&8B!Br3B,\rre$KJ!!&)!!"8,"i!!$[Hrrp!J[li5!!!0)JG!!"m!!Gd,!!!+N'#!"4!J!!B,!$\rra8'#!!K)!!!-1ld!!8J!!!`iB!!!5!!!&)JG!!"m!!Ge3),rb$KJ!!'!!3"B1#%\r!8(`)!kDl3IrS6S!!)%9d!`#3"#F!!!!F4A8!N!8Q!!!"%%9Z$!3!!!!T!!!!$)!\r!N!Z!!!')-!!!!%9h!*!&*J#3"%9Z%!%!!!!U!!!!!IrrrrJ!!!`-!*!%4@X!"!!\r!!!m!!!(N!!!#q!!!$!am#!+Q[f(rl*!!!3!)P#(qN!!li`!!1m3!!(bm+hNlCJ!\r!Jk)!!%##!$3iI`!!5!!!!@!!!!"8B!Br3))!$$KJ!!")!!'3!$Kr!!")!!!"B!!\r!!$KJ!!&)!!&mU"i!!#`!rrp!JJ"i9f!'2d##!!`iB!!!5!!"B)"q!!L)!`!!I!!\r(G8##!"JiB3%31*m!!%J!!!&J!!!!5!!!'$KK!-JiR`!!J,i!#%J!!!&J!!!!U"d\r!!(`!"c9"JJ!-1'!!!%J!!43iI`!!1*i!$$Lmrrmi`!!"5!!!!8J!!2aAB!Br3B)\r!4$KK!)!iR`!!1+)!!%J!!!&J!!!!U"d!!#`!!!""JJ!-1'!!!%J!!-`i!!!!X"i\r!!+JI!!#`(J!#J"m!!T!!(J!%U"i!!V!I!!#!(J!%N!!I!!)iB3!i1*m!!+Lq!!!\ri"3!"X"i!!(`&"c4)!!!"B!!!!$LrrrJiJ3!`1!!!#(`*!kD%C!!)J!3!"*4P!!L\r3!!8!"%)!rr#!C!!)S!3!$*!!C3!)X!8!$+JG!!!X!!!!3))!3$Kr!!H!RJ!)L,m\r!"NJ!!!&8B!Br3B,rI$Kr!!!iRJ!-1,crrcM!!!&)!!!"9'!'2d'#rf!iB!!"5!!\r!#$KJ!!#!!3&i1#%"F(`)!kDlBIrX6S!!)%9d!`#3"!F!!!!J4A8!N!8V!!!!,%9\re!*!&,!!!!%K&G3#3"5d!!!#-4A8!N!8Z!!!!T%9e!*!&$`!!!0"&Fa!!N!3U!!!\r!k%9e!*!&,J!!!1a&G3#3"5m!!!&)4A8!N!8Q!!!"R%9e!*!&$`!!!EK&EJ`%!!!\r!-3!!!!b!!*!,J!!"j#J!!!"&G`#3"3m!N!4&D`!%!!!!-J!!!)!!!!2d!!!29A`\r)!UD6iIrmNm(rq*!!!3!)P#(r`*!!B3"B1'!!8%J!!!&J!!!!I(mEH8'#!"3iI`!\r!J)%!@$LJ!!")!!!"1pm!!)"L!!#S!`!!,!!!!%##!!`iIJ!!5!!!&$Kq!!")!!!\r"B!!!!$KJ!!#!!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G3#3"6-!!!!F4A8!N!8\r'!!!!1%9d!`#3"!F!!!"!4A8!N!8d!!!!A%9Z$3)!!!!f!!!!%S!!N!F3!!!m!$`\r!#J!!LS!!(`#3"N9f#T`!!!!h!!!!$N9Z$!3!!!!i!!!!$)!!N!k!!*!%4AF!N!8\rb!*!%4AF0!*!%0J!!!!K&D`!%!!!!13!!!#J!!!4%!!!2qA`)!UD3!!%!#*3Krm#\r3!'%!@)"K!&K)!!!"J!%!5$JK!%"m#!1Q6S!!)%9e!*!&)`!!!"4&EJ`%!!!!1J!\r!!!b!!*!,J!!!+!#3"%9h!*!&13#3"%9V!!3!!!!l!!!!5!!!"'i!!"!lL!-!4LJ\r!!!""JJ!i116rq$M$rrJi!!!)I!N$TS5Q!!L!"J!%P+F!#*!!"`!%3J$rm)#Q!!L\rJ"J!-N!#R!!L`"`!-L'-!4Nk!!#"&D`!%!!!!23!!!#`!!!5Z!!!3`h`)!UD3!!%\r!#*3Krm#3!'%!@)"K!&K)!!!"B!!!!)!"!%Ji)3"!I!J$TNk!!#"&G3#3"63!!!!\r84@i-"!!!!$i!!!!-J!#3#i!!!#`!N!4&G`#3"6d!N!4&E`S%!!!!2`!!!!L!!*!\r24AB!N!8p!*!%4AB2!*!%3!!!!!4&E`S%!!!!33!!!!L!!*!24AB!N!8l!*!%4AB\r2!*!%3!!!!!4&E`S%!!!!3J!!!!L!!*!24AB!N!8j!*!%4AB2!*!%3!!!!!4&E`S\r%!!!!3`!!!!L!!*!24AB!N!8b!*!%4AB2!*!%3!!!!!4&E`S%!!!!4!!!!!L!!*!\r24AB!N!82!*!%4AB2!*!%3!!!!!4&E`S%!!!!43!!!!L!!*!24AB!N!8M!*!%4AB\r2!*!%3!!!!!4&E`S%!!!!4J!!!!L!!*!24AB!N!8'!*!%4AB2!*!%3!!!!!4&E`-\r%!!!!*`!!!!5!!*!,4AB&!*!%*`#3"%9[!`3!!!!(!!!!")!!N!Y&GJ8!N!3(!*!\r%4@m2"!!!!%!!N!5!!*!(4@J!!&0C68J!!!6J!!!!#3#3&3%!N!B#6!!!!!3!!!*\r2!!!!$!!!!S3!!!!B!!!#RJ!!!#`!!!,(!!!!-!!!!Y8!!!"!!!!#frq3"!!!!Z`\r!!J!!!!-!!!"Q!3#3"!-!!!!%!!!!!`#3"4m!!3#3"J-V!!!!8!!!!fB!!!"B!!!\r$M`!!!'3!!!22!!!!E!!!!rMrN!3!!!3A!!%!!!!$!!!!CJ%!N!3$!!%!N!B%BJ!\r!!$`!!!5G!!!!5!!!",8!!!"X!!!%qJ!!!(`!!!8)!!!!K!!!"4J!!!#m!!!&33!\r!!-J!!!92!!!!e!!!"@J!!!$J!!!&T3!!!2J!!!AJ!!!")!!!"J%!!!%i!!!'2!!\r!!8!!!!C(!!!"@!!!"Qd!!!&S!!!'VJ!!!AJ!!!E6!!!"N!!!!!Ep!!!"Q!!!"`N\r!!!'S!!!(J`!!!HJ!!!IK!!!##!!!##!!!!)F!!!)-!!!!LJ!!!K)rj!%!!!)E3!\r'!!!!%2q3"!%!N!3I!!!!!`!!!'B"!*!%(!!!!"lrrrrj!3#3""N!!!!I!!!!CJ#\r3"4i!!!!J!!!!!`#3"4d!!!!K!!!!!`#3"4S!!3#3"JL+!!!!*!!!#,8!!!"B!!!\r)k3!!!'`!!!Mjrj!%!!!*$`!#!!!!%2q3"!%!N!3I!!!!*!!!!!-!N!8H!!%!N!B\r*B3!!!#3!!!Pk!!!!D!!!#DS!!!"d!!!*[`!!!(J!!!S1!!!!f!!!#P!!!!$J!!!\r+J!!!!1`!!!Vd!!!!q!!!#``!!!%!!!!,+`!!!33!!!Y@!!!"(!!!#eX!!!%N!!!\r,I3!!!6!!!!Z"!!!"0!!!#j3!!!&8!!!,``!!!9`!!![Q!!!"C!!!#rB!!!&`!!!\r,r2q3"!!!$!N!!`!!!"J!!!"Q!3#3""m!!!!$!!!!CJ%!N!3G!!!!+!!!!!-"!*!\r%(J!"!*!'$&!!!!!S!!!-B`!!!$`!!!ae!!!!4!!!$)8!!!"3!!!-N`!!!&J!!!b\rQ!!!!C!!!$0%!!!"X!!!-pJ!!!(3!!!d'!!!!K!!!$4m!!!#B!!!0-J!!!+`!!!e\r3!!!!f!!!$Bm!!!$J!!!0R3!!!23!!!f[!!!"!!!!$Em!!!%)!!!0dJ!!!5!!!!i\rX!!!"5!!!$Q8!!!'3!!!!$VB!!!'S!!!1r`!!!F3!!!mQ!!!"c!!!$cRrN!3!!!p\r(!!3!!!!3rj!%!3#3""m!!!!Errrrq`%!N!3H!!!!*!!!!!-"!*!%(!!!!$!!!!!\r'!3#3""X!!3#3"Jq$!!!!(!!!$iB!!!"3!!!2bJ!!!&J!!!rD!!!!C!!!$qVrN!3\r!!!rf!!)!!!!$!!!!CJ%$!!!!@!!!!$ArN!3!N!8H!!%!N!B3)!!!!"3!!"!Mrj!\r%!!!31!!"!!!!0Iq3"!%$!!!!@!!"!*!'%(F!!!!-!!!3M!!!!%!!!"#Urj!%!!!\r3`!!#!!!!0Iq3"!%!N!3$!!!!22rrrrF"!*!%"!#3#"$U!!!!&!!!%1d!!!!F!!!\r3q[q3"!!!%2S!!3!!!$ArN!3"!`!!!&J!![rrrr`!!!!9!!!!4J!$!!!!&J!!!!X\r!N!FA!!!!!`!!!!)!!!!B!!!!!3!!!!B!![rrrrd!!!!6!!!!4J!"!!!!&2rrrr`\r!N!8#rrrrqJ!!!"`!!!!-!!3!!!!G!!!!#`#3"aB!!!!,!!!!!J!!!"F!!!!$!!!\r!"!!!!!-!!!"Q!!!!#!!!rrrrq`!"rrrrqJ!#rrrrrJ!!!"%!!!"3!!8!!!!5rrr\rrr3#3"aN!!!!'!!!!4J!!!!3!!!!(!!!!4`!!!"S!!!"Q!!!!5!!!!"[rrrrl!!!\r!6!!!rj!%!!(rrrrq!!$rrrrj!!(rrrrp!!(rrrri!!!!!3!!!!%!!!!(!!$rrrr\rh!!(rrrrm"+K(990*!!2E,P0XD@0P8f9RE@9ZG(0IAdC3B`!(SR"KG(4PFQi!!!K\rcC@GYC@jdF`!#Fbj)BA0AD@aN3f&bC(0IAdC3B`!"eLjIAf0dAemj9%CTE'9(E'p\rL4P"$Be"$194'D@aP8h"PB`!"l'9bFQpbAemj9%CTE'96F'9M!!IG,R0dFQ0SFJ!\r$H#j5EfpdAemj9%CTE'96F'9M4RB!"Q%Z4'9QBA9XG&pI194'D@aP8h"PBdCf!!H\rp,R0dFQaPEJ!$,#jIAfjhB9pI4P9X!!GP,QePE@0`H3!&1#j*Fe*[Eh4IAcP84QP\rXC90`C@0'GJ!%!Lj1CAKdAemj9%CTE'9(E'pL4P"4-MP84QPXC8GXEf)j3Q&MDe4\rbB@0VD99M!!4EG'KTF`!"S94'D@aP4fa[BJ!#r5484QPXC90`C@-!!AY84QPXC90\r`C@-!"b8N4P06F'9M!!B)4P06F'9M!!FHGP*PCNjeE3!&bR"KFNP%!!5VEQ&YC3!\r&eRCKE'PN!!DZF'&d3R9Q!!9FG(*KBfX!!F4#B@0V9(*KBfX!"@0TEQ4PH!!!A(0\rdBA*d4'Pb!!EaF'&d8f9R!!"#Ff9R3fpeER3!"Re`BA4XC@i!"2T!1$Bc!!0P,Nj\rPH(4IAcP84QPXC8GXEf*'GJ!&N@4PF(4S!!3C3$Jh-J!%,Lj0BA4MD%jKE@9IAdC\r33f033f0T!!-&AepeF("PFPpYBA!!"b&ZB@eP6'9Z!!4"3$N`0J!%Sd!j-cJ!"M-\rZ4AKTFh4cAemj9%CTE'96F'9M3dCf!!3),N*XCA0cAemj9%CTE'96F'9M4RB!!p3\rZAepYE9pI194'D@aP8h"PBdCf!!Dd,PpIBA"XAemj9%CTE'96F'9M4P"$B`!%)#j\rIAhCMAemj9%CTE'96F'9M3dCc!!32D@jTG!!%T%!j-cN!",BZ6Q9h4QPXC8GXEf)\r!!RXZAepZGepI4P9X!!*2,PpIC'aIAdC3GJ!%X@GXEf)!"-"!163e!!&FAepNE&p\rI4P"f!!6"3$Nd0J!&!Lj1CAKd4QPXC8GXEf)!"-0!163i!!"!,NCTE'9(E'pL-NC\r68h"PB`!%Dh0`C@-!!-BZ4'PcF'pcC8CTE'9(E'pL!!6H3$Ne-`!(2d4TFh"[Ff9\r'D@aP4fa[BJ!$IP423`!(RNCTE'9(E'pL-NC68h"PB`!%58jPH(4'D@aP4fa[BJ!\r$@%jPGdCTE'9(E'pL!!0(6Q9iG&pI194'D@aP4fa[BNC386)j9%CTE'9(E'pL18*\rKBfY8FQ&MDfP9B`!#ZdjPH(4IAcP84QPXC8GXEf*'GJ!!LPpIBh4IAcP84QPXC8G\rXEf*'8%0M8%-j9%CTE'96F'9M!!"36eG5!*!')J3!!%!%!!!"a!!!)R!!!"f8!!!\r-q!!!!"i!!!0&!!!!)!#33%9R!!"&D`!%!!!!Z`!!!!3!!!!J!!!'T%k!!#"&D`!\r%!!!![3!!!!3!!!"#!!!'fdk!!#"&D`!%!!!![J!!!!3!!!"N!!!(&%k!!#"&D`!\r%!!!!`!!!!!3!!!#'!!!(5dk!!#"&D`!%!!!!`3!!!2`!!!#S!!!)#T2Krrb$iJ!\r!,!1Q(%'#!*4!J!!d,!1Q&d'#!+"!J!!F,!1Q"d'#!+"!J!#d,!1Q!d'#!+")!!#\rS,!1Q'8'#!(")!!#F,!1Q)d'#!%"!J!!3,!1Q)8'#!%")!!#%,!-!!%'#!"4!J!"\ri,!1Q+8#!!(")!!!-1'!!!%J!!(`i!!!'N!!I!!")!!"X1!!!1T!!(`!!5!!!B$J\r!!$L3!"m!!%J!!&3i!!!jN!!I!!")!!")1!!!2C!!(`!!5!!!2$J!!$#3!"m!!%J\r!!$!i!!"!N!!I!!")!!!N1!!!3C!!(`!!5!!!'#`$!!"!J3!)5!!!#$KJ!"D3!(m\r!!$KJrrq$iIrm6S!!)%9d!`#3"-)!!!!%4@X!"!!!!-3!!!#J!!!")J!!$&"m#!+\rQNq(rr*!!!3!)P#(r`$[M!!")!!!"B!!!!)!#!!#3!"m!!MKr!"`iJ!!!1+!!%%J\r!!!&J!!!!1(m!,$L!!!!iS!!35!!!!@!!!!!i!!!#Q"m!(6J!!"#B(`!F1!!!!CJ\rI!")i!!!!Q"m!%cJ!!!#3!"m!"MJ!!!#`(`!+J')!!%J!!!&J!!!!1(m!!)!"!%J\ri)3"!I!J$TS2Krra1J!!J4A8!N!A&!!!!&%9d!`#3"-B!!!!F4A8!N!A(!!!!-%9\re!*!&a`!!!%4&G!-!N!3#!!!!I%9e!*!&b!!!!)"&EJd#!!!!bJ!!!"D!!*!(#!!\r!0!#%!!S!!)D!!"m!N!T&GJS-!!!!b`!!!"*&EJ`%!!!!c!!!!!b!!*!1S!#3"%9\rh!*!&a!#3"%9h$3#3"-S!!!!)4@X!"!!!!-d!!!#F!!!"C!!!$S"m#!+QNq(rr*!\r!!3!)P#(r`$[M!!#3!)%!A%J!!!&J!!!!J!)!!*!!(`!#J!%!A*!!(`!11!!!!TJ\rI!"di!!!3Q"m!($J!!!+B(`!Y1!!!%*JI!#`i!!!"Q"m!%MJ!!!@B(`!m1!!!!*J\rI!"-i!!!!N!!I!!Bi!!!!X"m!#S"L!!")!!!"B!!!!$Kr!!#!!3")1#%!3(`)!kD\r$iIrm6S!!)%9e!*!&a3!!!"K&G!-!N!6'!!!!)%9d!`#3"!)!!!"i4A8!N!A)!!!\r!I%9Z$3)!!!$1!!!!&S!!N!F)!!#!!)!!#J!!KS!!(`#3#N9f#J`!!!$,!!!!%N9\rZ$!3!!!$2!!!!$)!!N!kF!*!%4AF!N!A0!*!%4AF0!*!%cJ!!!!K&D`!%!!!!d!!\r!!(!!!!'N!!!3*R`)!UD6iIrmN!!"!!L8)Ir!I(mEHE#"!&j"JJ"!J!)!!*!!(`!\r#J')!!%J!!!&J!!!!1(m!!$L!!!")!!!"B!!!!+J"!&iX!!!!3)%!%$Kr!!")!!!\r"B!!!!$Kr!!#!!3")1#%!3(`)!kD$iIrm6S!!)%9d!`#3"-B!!!!F4A3$!*!%!J!\r!!#4&G3#3"G%!!!!S4A8!N!A5!!!!1%9e!*!&d`!!!&"&EJ`%!!!!e!!!!!b!!*!\r,J!!!F!J!!!"&G`#3"G!!N!4&D`!%!!!!e3!!!!J!!!(1!!!3B6KJ!!"1J!!J4@X\r!"!!!!0B!!!$`!!!"iJ!!%*Gm#!+QNq(rr*2"rrL6SIrdNi(rm*!!!3!)P#(rX$[\rM!!"mR#0jNi-!"N'#!+!i!!!!Q!%!1MJ!!!#B!3!j1m!!!$ZJ!!#S(`!-9!!(rd'\r#!!Jl`3!kU"m!$&3!"le"JJ!)1k%!16Kr!!!iRJ!!1,d!!$M!!!#"R`!#JB`!@%J\r!!!&J!!!!,!-!!%'#!%L)!3!j+!!!!%'#!"5!I`!'1)!!!NJ!!!&J!!!!L!%!1LJ\r!!!""JJ!JJ(m!"ML!!!&)!!!"B!!!!%J!!!`i!!!!X"m!$)!"!&Ji)3"3I!J$TS2\rKrrb$`IriJk(rp)1"rr"1J!!J4A8!N!AA!!!!I%9e!*!&f!!!!+"&G3#3"GJ!!!#\rm4@i-"!!!!0i!!!!-J!#3#i!!!2!J!!!!4AF!N!A@!*!%4@X!"!!!!0m!!!"B!!!\r#UJ!!%`Tm#!+QNq(rr*!!!3!)P#(r`,"K!&U`J3"HN!#K!'#!BJ!!U)%!@NJ!!!&\rJ!!!!1!!!!,!$!!US!3"HX!-!$)#"!'")!!!"J!%!5$JK!%"m#!1QJq(rr%k!!#"\r&G!-!N!6J!!!!(%9e!*!&i3!!!#4&G3#3"GB!!!"!4@i-"!!!!18!!!!-J!#3#i!\r!!&J)!!!!4AF!N!AI!*!%4@X!"!!!!1B!!!$X!!!$$J!!&bCm#!+QNq(rr*2"rrL\r3!!%!#*3Krm!l``!!N!#"!&b3!+%!B)2K!&b!!3"J,!!!%%#!!"3iB!!@5!!!!@!\r!!!")!!#BL"m!!5J!!!*"JJ!81'!!,dJ!!!&J!!!!5!!!I+!H!"iS!!!!3B)!&$K\rJ!"C)!!!"B!!!!%J!!'#!(`!%+!!!!%'#!$L!I`!%2!1"!#J!!!&"JJ!S5!!!!@!\r!!!#!(`!%I!!B3%'#!"3iB!!a5!!!!@!!!!")!!!JJ"m!"*!!(J!JS"m!!V!H!"i\ri!!!3Q"i!($KJ!!#!!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G3#3"HF!!!!d4A8\r!N!AR!!!!8%9e!*!&j`!!!'a&G3#3"HJ!!!#84A8!N!AR!!!!V%9Z$!3!!!$X!!!\r!$)!!N!Z!!!$X%!!!!%9h!*!&jJ#3"%9V!!3!!!$Y!!!!J!!!!k)!!"ZlI!J#TT2\rKrrb3!!%!#*3Krm#3!'%!@*!!J3"F1q8!!)!&!!!X!!!!3)!!&$KJ!"C)!!!"B!!\r!!%J!!$L!B3"FJ)%!@$L%!"b!(`!!,!!!%%#!!!b![`!!5!!!#$LJ!"#3!,m!!%J\r!!!&J!!!!1'!!!)!"!%Ji)3"!I!J$TS2Krra1J!!J4A8!N!AR!!!!,%9e!*!&lJ!\r!!'"&EJ`%!!!!l`!!!!b!!*!,J!!!J!J!!!"&G`#3"Hd!N!4&D`!%!!!!m!!!!+!\r!!!2`!!!H5h`)!UD6iIrmNm(rq*!!!3!)P#(r`$[$!!#3!)%!A$[P!!#!"3!!,!!\r!!%#!!"3iB!!@5!!!!@!!!!")!!"3L"i!,#J!!!"!JJ!81'!!18J!!!&J!!!!5!!\r!0)"K!&`iRJ!XJ"m!!#`!!""!J!!-J,m!!%J!!!JiS!!3N!#r!!")!!!"B!!!!$K\rJ!!#!!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G3#3"HF!!!!`4A8!N!AR!!!!6%9\re!*!&lJ!!!(a&EJ`%!!!!m3!!!!b!!*!,J!!!S"!!!!"&G`#3"I!!N!4&D`!%!!!\r!mJ!!!*J!!!41!!!JaR`)!UD6iIrmN!!"!!L8)Ir!1q-!!*!!J3"FJ!%!A#`!!!&\r"JJ!`3)!!%#`!!!"!J!!85!!!3#`!!!0!J!!i5!!!*)JI!"*J!!!#Q"m!%NJ!!$5\r)(`!5B!!!"*JI!"*)!!!NL"m!%Q!!!!DB(`!55!!!&$KJ!"C)!!!"B!!!!%J!!!J\riB!!!J!%!5$JK!%"m#!1QJq(rr%k!!#"&G3#3"HF!!!"d4@i-"!!!!23!!!!-J!#\r3#i!!!*J)!!!!4AF!N!Ab!*!%4@X!"!!!!28!!!#F!!!%TJ!!*5Pm#!+QNq(rr*!\r!!3!)P#(r`$[M!!#3!)%!A*!!S3"JJ!%!A#`!!!4"JJ!`3)!!9#`!!!0!J!!)5!!\r!5)JI!"-S!!!!3B)!$$KJ!!4)!!"!1'!!!%J!!$L!!3"J9!!(Hd'#!"!i!!!"Q"m\r!%dJ!!!`i!!!!Q"m!%cKJ!!")!!!31'!!,8J!!!&J!!!!J!%!5$JK!%"m#!1QJq(\rrr%k!!#"&G3#3"HF!!!#!4@i-"!!!!2J!!!!-J!#3#i!!!*`)!!!!4AF!N!Ae!*!\r%4@X!"!!!!2N!!!$B!!!&*!!!*c"m#!+QNq(rr*2"rrL6SIrdNi(rm*!!!3!)P#(\rrX$Z$!!!lT!!!1q8!!&5HK2j8J!"$3B)!)#`H!!""JJ!B1(m!!$L!!!!i[J!!5!!\r!!@!!!!#6i3!i2'"!"$KMCRpm(4J!3B)!,%#!!%JmB)!%1'0QIR`G'!""JJ!)5!!\r!0)!I!!#B(!!61'!!!%J!!$!iI!!!JC`!!S'-!'4)!!!"B!!!!*!!I`!!1'!!!%J\r!!"!iB!!Y5!!!!@!!!!#!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr5$JIr`6S!!)%9\re!*!&a`!!!%K&G3#3"GF!!!#B4A8!N!AR!!!!X%9Z$!3!!!$r!!!!$)!!N!Z!!!$\rB)!!!!%9h!*!&q3#3"%9V!!3!!!%!N!3S!!!&VJ!!+MPm#!+QN!!"!!L8)Ir!J')\r!!%J!!!&J!!!!J!%!5$JK!%"m#!1Q6S!!)%9d!`#3"!)!!!!-4A8!N!3"!3!!!""\r&EJ`%!!!"!J!!!!b!!*!,J!!!+!#3"%9h!*!%!3#3"89V!!3!!!%$!!!!I!!!"G)\r!!#U#I!J#TT2Krrb3!!%!#*3Krk!li`!!1)!!!NJ!!!&J!!!!J!)!!*!!(`!!1'%\r!1%J!!!&J!!!!1!!!!E!I!!3i!!!"X"m!"MJ!!!#`(`!)1!!!!,!I!!Si!!!!X"m\r!$$J!!!#3!"m!$MKr!!#!!3"S1#%!B(`)!kD$iIrm6S!!)%9e!*!%!33!!!!B4A3\r$!!!!!38!!!!J4A8!N!3""J!!!#a&EJd#!!!"'3!!!"D!!*!(#!!!-!!`!!S!!)D\r!!"m!N!T&GJS-!!!"'J!!!"*&EJ`%!!!"'`!!!!b!!*!1I!#3"%9h!*!%!3-!N!4\r&G`d!!!!"'3!!!!K&EJ8"!!!"(!!!!!Arrrr)!!!VP`3Z59"3!!!!4@X!"!!!!4d\r!!!"m!!!'#J!!+jGm#!+QNq(rr*!!!3!)P#(rF$[M!!#S!`!%,!!!!8##!$3i!!!\r!N!!"!%5!!J!!N!!"!%Si!!!!Q!%!8cKK!$K)!!!"B!!!!,"r!!5S!3"3X"m!#+J\rI!!3X!!!!3B)!$$KJ!!")!!!)U(m!#)!"!*Ji)3#3!(`)!kD$iIrm6S!!)%9d!`!\r!!!%F!!!!+%9e!*!%!4i!!!!m4@i-"!!!!@i!!!!-J!#3#i!!!(`)!!!!4AF!N!3\r"(3#3"%9V!!3!!!&[!!!!6!!!"P)!!#cKI!J#TT2Krrb3!!%!#*3Krm!li`!!5!!\r!!DJI!!BX!!!"3))!&$KJ!!")!!!"B!!!!,"r!!DSI`!'J!%!5$JK!%"m#!1QJq(\rrr%k!!#"&G3#3"!%G!!!!&%9e!*!%!A!!!!!S4@i-"!!!!A%!!!!-J!#3#i!!!%`\r)!!!!4AF!N!3"E`#3"%9V!!3!!!&b!!!"D!!!"S`!!$09I!J#TVmKrq53!!%!#*3\rKrk#3!'%!H*!!J3"mJq)!!$[!!!#!(`!!N!!"!$Ji!!!!N!!I!!#!B3"i5!!!!Aa\rJ"c9!JJ!`1'!!-NJ!!!&J!!!!1f-!!)!I!!!X!!!!3))!$)!"!$L3!"m!!$Kl!!"\r)!!$XJ!%!I#`!!!*"JJ!m3)!!B#`!!!&!J!!)5!!!9$KJ!%C)!!!"B!!!!(ap'hP\r"JJ!31(d!!%J!!!&J!!!!1pd!!%J!!$JiB!"#5!!!!@!!!!"mI"Yj3B)!%$Km!!"\r)!!!"B!!!!$[F!!")!!!31'!!,%J!!!&J!!!!+"i!!%'#!&#!(`!!,!!!!%'#!%3\rX(J!!3B)!($Kq!!!iJ!!"JCi!!S'-!'")!!!"B!!!!$Y!!!#!(`!!,!!!!%##!!b\r!!3!iN!!I!!!iHJ!!5!!!)$Xq!!#!(`!!,!!!!%##!!b!!3!iN!!I!!!iH3!!J!%\r!D$JK!'"m#!1QZb(rj%k!!#"&G!-!N!6#!!!!'%9e!*!%!4d!!!!d4A8!N!3"F`!\r!!%4&G3#3"!&d!!!!M%9e!*!%!A8!!!#J4A8!N!3"G!!!!,4&G3#3"!&f!!!!b%9\re!*!&j`!!!0a&G3#3"GF!!!%34@i0!J!!!AX!!!"#J!#3"cJ!!$J!N!!!+J#N!+3\r!)J#i!,J!+J$-!-`!-J$J!43!+J!!#S!!(3#3"))!!$J!N!3+J!!F!*!%JJ!!1!#\r3"N9f#J`!!!&m!!!!*N9f#J`!!!&p!!!!,N9f#J`!!!&m!!!!0N9f#J`!!!&p!!!\r!2N9Z$!3!!!&q!!!!$)!!N!d"D!#3"%9h!*!%!A)!N!4&G`d!!!!"H`!!!!K&D`#\r%!!!"I`!!!'L!!*!(I!J#TT2Krrb3!!%!#*3Krm"mIaYjX)%!AN'#!$L!BJ!!J!-\r!!#`!!!"!JJ!3J"m!!)"L!!#3!!-!!+J"!&iX!!!!3)%!%$Kr!!")!!!"B!!!!$K\rr!!#!!3")1#%!3(`)!kD$iIrm6S!!)%9d!`#3"-)!!!!F4A3$!*!%`J!!!$"&G3#\r3"G-!!!")4@i-"!!!!B!!!!!-J!#3#i!!!'J)!!!!4AF!N!3"I`#3"%9V!!3!!!'\r"!!!!6!!!"c!!!$6qNq(rr+L$!!`i"!!"X!-!$(`!"c3X!!!J3))!$$J!!!#`!`!\r-J)-!$UJ$!!`F!!"UIq3#&+JI!"!X!!!"3B,rb$Kr!!#$iIrm6S!!)%9V!!3!!!$\r)!!!!D!!!"i!!!$@mI!J#TT2Krrb3!!%!#*3Krm!li`!!U'-!#MJ$!!'`(`!+I'!\r(08##!$!iB!e!5!!!!@!!!!#3!(m!$LJ$!!"!JJ!B1!!!$)"L!!#3!!-!!$J!!!#\r`(`!+J!%!5$JK!%"m#!1QJq(rr%k!!#"&G3#3"!'$!!!!,%9d!`#3"-)!!!"%4@i\r-"!!!!B3!!!!-J!#3#i!!!'J)!!!!4AF!N!A)!*!%4@X!"!!!!0%!!!"3!!!(ZJ!\r!0P4m#!+QNq(rr*!!!3!)P#(r`$[M!!#SB`!+1!2rrl!I!!Tm!!Fe3))!')"r!!j\r)!!!"B!!!!$J!!!#3!"m!$S!"!%Ji)3"!I!J$TS2Krra1J!!J4A8!N!3"K3!!!#a\r&EJ`%!!!"KJ!!!!b!!*!,J!!!8!J!!!"&G`#3"G%!N!4&EJ8"!!!"K`!!!"(rrrq\rj!!!f9%P14946Ef0VCA4%EfeKD@i!N!4&EJ8"!!!"L!!!!!hrrrqi!!!f9&0[BfY\rPG%4[E@&TEJ!`"2*&EJ8%!!!"L3!!!!Mrrrqh!!!f9!#3#%9f"3!!!!')!*!%4@i\r&"!!!!BS!!!!-rrrrYJ!!0P3!N!a&GJ8!!!!"L3#3"%9Z"33!!!',!!!!#2rrrl8\r!!$C8!*!)4AB&!!!!!BF!N!4&GJ8!!!!"LJ!!!!4&E`8%!!!""3!!!"Mrrrqd!!!\rf9!#3'%9f"3!!!!',!*!%4AB+!!!!!B`!!!!84AB+!!!!!Bd!!!!34AB+!!!!!Bi\r!!!!)4AB+!!!!!Bm!!!!-4@X!K!!!!C!!!!!!C)!!N!Gm#!+QNq(rr*!!!3!)P#(\rr`(ar'hQ`J3"H3B)!0)!#!!#3!"m!!$Kr!!!iJ!!!5!!!!@!!!!#S!3"H,!!!!%#\r"!"!iI`!!5!!!!@!!!!!iI`!!J!%!5$JK!%"m#!1QJq(rr%k!!#"&G!-!!!!""3!\r!!"a&G3#3"!'4!!!!,%9e!*!&d`!!!%4&EJ`%!!!"NJ!!!!b!!*!,J!!!C!J!!!"\r&G`#3"!'3!!#3"%9Z"3%!!!'6!!!!#rrrrl-!!$C858j&9&0[BfYPG!"J4@i&!3!\r!!C3!!!!(rrrrXJ!!0P46Ef0VCA3!mN9Z"33!!!'9!!!!#2rrrl%!!$C8!*!)4AB\r&!!!!!C3!N!4&EJ8%!!!"PJ!!!!crrrq`!!!f9!#3$%9f"3!!!!'9!*!%4@i&"!!\r!!CF!!!!)rrrrV`!!0P3!N!K&GJ8!!!!"N`#3"%9f"3!!!!'@!!!!"%9["33!!!$\r'!!!!D2rrrki!!$C8!*"S4AB&!!!!!CF!N!4&GJS!!!!"Q!!!!&a&GJS!!!!"Q3!\r!!&K&GJS!!!!"QJ!!!&4&GJS!!!!"Q`!!!%a&GJS!!!!"R!!!!%K&GJS!!!!"R3!\r!!%4&GJS!!!!"RJ!!!%"&GJS!!!!"R`!!!$4&GJS!!!!"S!!!!$"&GJS!!!!"S3!\r!!#4&GJS!!!!"SJ!!!#"&GJS!!!!"S`!!!"a&GJS!!!!"T!!!!"K&GJS!!!!"T3!\r!!"4&GJS!!!!"TJ!!!""&GJS!!!!"T`!!!!a&GJS!!!!"U!!!!&"&GJS!!!!"U3!\r!!$a&GJS!!!!"UJ!!!$K&GJS!!!!"U`!!!#a&GJS!!!!"V!!!!#K&GJS!!!!"V3!\r!!!K&GJS!!!!"VJ!!!'4&GJS!!!!"V`!!!'"&DJ!%!!!"X!!!!$5!!*!(I!J#TT!\r!!3!)P#(r`)"L!!")!!!"J))!!)#L!!")!!!"B!!!!)!"!%Ji)3"!I!J$TNk!!#"\r&G!-!N!3#!!!!$%9e!*!%!3-!!!!34A3$!!!!!Bi!!!!84A3$!*!%!3!!!"K&G3#\r3"!'a!!!!(%9Z$!3!!!'b!!!!$)!!N!Z!!!!d!*!%4AF!N!3"X!#3"%9Y"33!!!!\r#!!!!%[rrrri!!!Bp4@`&!3!!!!%!!!!-rj!%!!!'289[#S3!!!'1!!!!#)!!N!p\r&GJ#3"!'3!!#3"%9f$`!!!!'c!!!!"%9[#J3!!!'d!!!!#)!!N!p&GJ#3"G%!N!4\r&GJm!!!!"X`!!!!4&E`S%!!!"Y3!!!!L!!*!24AB!N!A)!*!%4AB2!!!!!E-!!!!\r%4@m+"!!!!EB!!!!)J!#3$d9f!*!%!B%!N!4&GJm!!!!"X`!!!!4&E`U%!!!"I3!\r!!!L!!*!24AB!N!3"I`#3"%9f$`!!!!'c!!!!"%9[#J3!!!'2!!!!#)!!N!p&GJ#\r3"!&b!*!%4AB2!!!!!E-!!!!%4@m+"!!!!EF!!!!)J!#3$d9f!*!%!@m!N!4&GJm\r!!!!"X`!!!!4&E`S%!!!"Z!!!!!L!!*!24AB!N!3"(3#3"%9f$`!!!!'c!!!!"%9\r[#J3!!!'j!!!!#)!!N!p&GJ#3"!%$!*!%4AB2!!!!!E-!!!!%4@m+"!!!!ES!!!!\r)J!#3$d9f!*!%!3#3"89f$`!!!!'c!!!!"%9[#J3!!!'T!!!!#)!!N!p&GJ#3"IN\r!N!4&GJm!!!!"X`!!!!4&E`S%!!!"UJ!!!!L!!*!24AB!N!Ae!*!%4AB2!!!!!E-\r!!!!%4@m+"!!!!DJ!!!!)J!#3$d9f!*!&mJ#3"%9f$`!!!!'c!!!!"%9[#J3!!!'\rV!!!!#)!!N!p&GJ#3"I!!N!4&GJm!!!!"X`!!!!4&E`S%!!!"V!!!!!L!!*!24AB\r!N!AY!*!%4AB2!!!!!E-!!!!%4@m+"!!!!Dd!!!!)J!#3$d9f!*!&jJ#3"%9f$`!\r!!!'c!!!!"%9[#J3!!!'l!!!!#)!!N!p&GJ#3"Gm!N!4&GJm!!!!"X`!!!!4&E`S\r%!!!"[!!!!!L!!*!24AB!N!A@!*!%4AB2!!!!!E-!!!!%4@m+"!!!!Di!!!!)J!#\r3$d9f!*!&e3#3"%9f$`!!!!'c!!!!"%9[#J3!!!'[!!!!#)!!N!p&GJ#3"G!!N!4\r&GJm!!!!"X`!!!!4&E`S%!!!"[3!!!!L!!*!24AB!N!A0!*!%4AB2!!!!!E-!!!!\r%4@m+"!!!!Ei!!!!)J!#3$d9f!*!&a!#3"%9f$`!!!!'c!!!!"%9[#J3!!!'r!!!\r!#)!!N!p&GJ#3"F%!N!4&GJm!!!!"X`!!!!4&E`S%!!!"`!!!!!L!!*!24AB!N!A\r!!*!%4AB2!!!!!E-!!!!%4@m+"!!!!F%!!!!)J!#3$d9f!*!&[J#3"%9f$`!!!!'\rc!!!!"%9[#J3!!!(#!!!!#)!!N!p&GJ#3"Ed!N!4&GJm!!!!"X`!!!!4&E`S%!!!\r"``!!!!L!!*!24AB!N!@l!*!%4AB2!!!!!E-!!!!%4@i$"!!!!!%!!!!%J!#3#d9\rf"3#3"!%!N!4&E`-%!!!"MJ!!!!5!!*!,4AB+!!!!!Bi!N!4&EJ-%!!!"(!!!!!5\r!!*!,4AB&!!!!!4`!N!4&E`-%!!!""3!!!!5!!*!,4AB&!!!!!38!N!4&E`-%!!!\r!i!!!!!5!!*!,4AB&!*!%i!#3"%9[!`3!!!!#!!!!")!!N!Y&GJ8!N!3#!*!%4@m\r$"!!!!-B!!!!%J!#3#d9f"3#3"-B!N!4&E`-%!!!!`J!!!!5!!*!,4AB&!*!%`J#\r3"%9[$`3!!!'c!*!%J!#3"d9S!!"6@8e)!!!(p!!!!&)!!!!)!*!4!3#3"JE1rj!\r%!!!'f!!"!!!![!!!!!)"!*!%!`!"!*!'"`IrN!3!!!F4!!%!!!#m!!!!#J%!N!3\r$!!%!N!B(2[q3"!!!"dJ!!3!!!,m!!!!#!3#3"!-!!3#3"JGhrj!%!!!(J3!"!!!\r![`!!!!S"!*!%!`!"!*!'##F!!!"d!!!)6!!!!(`!!!Ld!!!!L!!!#4X!!!#8!!!\r*H3!!!+!!!!R8!!!!V!!!#Mm!!!#i!!!+X`!!!-3!!!X&!!!!d!!!#dN!!!$F!!!\r,L`!!!2!!!![krj!%!!!-"3!"!!!!``!!!!-"!*!%!`!"!*!'$'S!!!!`!!!-RJ!\r!!%3!!!c*!!!!J!!!$D8!!!#)!!!0[rq3"!!!$Em!!3!!!-RrrrrA!3#3""m!!3#\r3"JkU!!!!I!!!$md!!!#%!!!3)rq3"!!!%#-!!J!!!-RrrrrA!3#3""m!!!#V!!!\r!!J%$!!!!A!!"!*!'%%!!!!!S!!!33rq3"!!!%&i!!3!!!-RrrrrA!3#3""m!!3#\r3"K#+rj!%!!!3P!#3#K$#!!!!,!!!%2)!!!"3!!!4I3!!!&3!!"'9!!!!B!!!%EB\r!!!"N!!!4dJ!!!)`!!"))!!!!Q!!!%K`!!!#S!!!56`!!!,3!!"*L!!!!a!!!%TJ\r!!!$)!!!5T!!!!0!!!"+frj!%!!!5YJ!'!!!!bIrrrpF"!*!%(`!!!0N!!!"N!3#\r3""`!!!$D!!!!D!#3"4d!!!$E!!!!D!#3"4i!!!$F!!!!"J!$!!!!13!!!0d!!!!\r'!!-!!!!k!*!)%dB!!!!N!!!653!!!%!!!"1T!!!!4!!!%m2rN!3!!"2$!!3!!!$\rL!!!!#`%$!!!!@J!!!1-!!!!,!3-!!!"H!!!!j!!!!'3"!`!!!'!!!!#Mrrrre`#\r3"4m!!3#3"KG9!!!!-!!!&m3!!!"!!!!Ai3!!!%`!!"J%!!!!A!!!'#F!!!"S!!!\rB8`!!!(J!!"Lp!!!!P!!!'3S!!!#S!!!C2`!!!,J!!"RJrj!%!!!DEJ!%!!!!bIr\rrrpF"!*!%(J!!!1N!!!"N!3-!!!"F!!!!kJ!!!!-"!`!!!'!!!!$Vrrrrd3#3"4m\r!!3#3"K[a!!!!+!!!(!J!!!!i!!!F*Iq3"!!!((i!!`!!!-RrrrrA!3-!!!"B!!!\r!k`!!!'3"!`!!!&`!!!$Urrrrd!%!N!3I!!%!N!BHJ3!!!#`!!"kB!!!!2!!!(V3\r!!!")!!!HbJ!!!&J!!"lVrj!%!!!I4J!$!!!!bIrrrpF"!*!%(J!!!1X!!!"N!3-\r!!!"F!!!!k[rrrp!"!*!%(`!"!*!')1J!!!"!!!!K"J!!!&!!!#%k!!!!B!!!)@i\r!!!"`!!!KZ!!!!)!!!#(Crj!%!!!Ki`!#!!!!bIrrrpF"!*!%(`!!!2-!!!!$!3-\r!!!"F!!%!N!BP@J!!!$J!!#AY!!!!4!!!*J%!!!"-!!!Q'`!!!&3!!#DR!!!!B!!\r!*Vd!!!"X!!!Qf`!!!(3!!#Ee!!!!I!!!*`[rN!3!!#FY!!-!!!$*rrrre`%!N!3\rI!!!!pJ!!!!)"!`!!!&`!!!$h!!!!!`%$!!!!B!!"!*!'*fJ!!!!d!!!SMJ!!!$`\r!!#M(!!!!8!!!+-X!!!"m!!!T)J!!!)`!!#Q*!!!!V!!!+FcrN!3!!#RZ!!8!!!$\r*rrrre`%!N!3F!!!!qJ!!!!)"!*!%(3!!!2X!!!"N!3#3""m!!!$m!!!!!`#3"4i\r!!!$prrrrc`!$!!!!1!#3##TM!!!!$!!!+QB!!!!B!!!UIrq3"!!!+Rm!!!!"!*!\r'+UJ!!!!X!!!Ua2q3"!!!+j3!!J!!!-Rrrrr0!3#3""m!!!%(rrrrc!!$!!!!1!!\r"!*!'+lJ!!!!J!!!Vl!!!!$`!!#aQ!!!!8!!!,,RrN!3!!#cH!!)!!!$*rrrrc3%\r!N!3I!!!!$[rrrmF!!`!!!$J!!3#3"Ld%!!!!&!!!,3F!!!!N!!!Y,!!!!$3!!#e\r5rj!%!!!YD!!"!!!!bIrrrmd"!*!%(`!"!*!'-iJ!!!!d!!!c[J!!!%!!!$22!!!\r!E!!!-rm!!!#)!!!d*!!!!,!!!$4C!!!!f!!!0)B!!!$N!!!dUJ!!!1`!!$5f!!!\r!q!!!0-B!!!%B!!!df3!!!6J!!$6Zrj!%!!!dq`!%!!!!bIrrrmd"!`!!!(J!!!&\rh!!!!!`%$!!!!I!!!!AMrrrqk!!-!!!!i!!!!SrrrrpF!N!8H!!%!N!Be*J!!!!3\r!!$9)!!!!(!!!0@3!!!!N!!!eG3!!!%!!!$@Vrj!%!!!eZ3!#!!!!bIrrrmd"!*!\r%!`!!!B,rrrrm!*!&(`#3#$AJ!!!!+!!!0IJ!!!"!!!!f*`!!!&3!!$C4rj!%!!!\rf83!"!!!!bIrrrmd"!*!%(`#3#$Cj!!!!+!!!0T)!!!!d!!!fU3!!!$`!!$Dkrj!\r%!!!fZJ!"!!!!bIrrrmd"!*!%(`!"rj!%!!!!$!!!!!%!!!!(!!,rrrrp!!!!"3!\r!!!3!!3!!!!B!!!"N!*!&!IrrrrJ!!!!-!!!!!3!!!!F!!2rrrr-!!3!!!'S!![r\rrrr3!!!!G!!!!&!!(!!!!(J!!!!)!N!FB!!!!"`!!!!3!!!!I!!!!"`!!!!8!!!!\rJ!!!!#J!!!!B!!!!Krrrrm`!!!!J!!!!C!!!!!J!!!!`!!!!L!!!!!J!!!"!!!Ir\rrrr8!!!!8!!!!&2rrrr3!![rrrrB!!!!8!!!!)!!)!!!!&3!!!!S!N!F@!!!!"`!\r!!!)!!!!A!!!!"J!!!!-!!!!B!!!!!J!!!!3!!!!C!!!!"J!!!!J!!!!D!!!!"J!\r!!!N!!!!E!!!!#J!!!!S!!!!Frrrrp3!!!!`!!2rrrrF!!IrrrrB!![rrrr%!!!!\rX!!!!%!!%!!!!,3!!!'B!N!FZ!!!!!J!!!!3!!!![rrrrp`!!!!J!!!!`!!!!CJ!\r!!!`!!Irrrqm!!!!S!!!!!3!!!!F!![rrrr!!!!!b!!!!3J!3!!!!-`!!!!F!N!F\rd!!!!"`!!!!%!!!!e!!!!"`!!!!)!!!!f!!!!"`!!!!-!!!!h!!!!!J!!!!3!!!!\ri!!!!#J!!!!J!!!!j!!!!!J!!!!S!!!!k!!!!#J!!!!i!!!!l!!!!"`!!!"!!!!!\rm!!!!"`!!!"%!!!!p!!!!"J!!!")!!!!q!!!!"`!!!"-!!!!r!!!!"`!!!"3!!!"\r!!!!!"`!!!"8!!!""rrrrl`!!!"B!!!!`!!!!CJ!!!$i!![rrrqi!!!"$!!!!&!!\r+!!!!-`!!!!F!N!Fd!!!!"`!!!!%!!!!e!!!!"`!!!!)!!!"%!!!!"J!!!!-!!!"\r&!!!!"J!!!!3!!!"'!!!!"`!!!!8!!!"(!!!!CJ!!!!B!!!")!!!!!J!!!!S!!!"\r*!!!!#J!!!!i!!!!`!!!!CJ!!!"!!![rrrqd!!!",!!!!&J!+!!!!0J!!!!F!N!G\r-!!!!"J!!!!%!!!"&!!!!"J!!!!)!!!"'!!!!"`!!!!-!!!!Y!!!!CJ!!!!3!!!!\rZ!!!!#J!!!!J!!!"0!!!!CJ!!!!S!!!"1!!!!#J!!!!i!!!"2!!!!#J!!!"!!!!!\r`!!!!CJ!!!")!![rrrq`!!!"4!!!!#!!&!!!!-`!!!!F!N!Fd!!!!"`!!!!%!!!!\re!!!!"`!!!!)!!!"'!!!!"`!!!!-!!!!`!!!!CJ!!!!3!![rrrqX!!!"6!!!!"!!\r"!!!!-!!!!'B!N!8#rrrrjJ!!!(!!!!!'!!)!!!"a!!!!#J#3"h)!!!!#!!!!!J!\r"rrrrj`!!!#S!!!!'rrrrjJ!#rrrrk!!!!'8!!!"@!"!!!!"Q!!!!!J#3"fF!!!!\r#!!!!"!!!!'J!!!!#!!!!#!!!!'N!!!!#!!!!$!!!!'S!!!!#!!!!%!!!!'X!!!!\r#!!!!&!!!!'`!!!!#!!!!'!!!!'d!!!!#!!!!(!!!!'i!!!!+!!!!)!!!!'rrrrr\rR!!!!)J!!!')!!!!+!!!!6!!!!(-!!!!+!!!!6J!!!(3!!!!+!!!!8!!!!(8!!!!\r+!!!!8J!!!(B!!!!(!!!!9!!!!(F!!!!(!!!!93!!rrrrk3!"rrrrk!!#rrrrkJ!\r!!&8!!!"'!"N!!!!c!!!!"`#3"c3!!!!(!!!!!3!!!&B!!!!$!!!!!J!!!$F!!!!\r#!!!!"J!!!$J!!!!+!!!!#J!!!$N!!!!#!!!!$!!!!$S!!!!+!!!!%!!!!$X!!!!\r(!!!!%J!!!$`!!!!(!!!!%`!!!&F!!!!(!!!!&!!!!%B!!!!(!!!!&3!!!&J!!!!\r+!!!!&J!!!&N!!!!+!!!!'!!!!&S!!!!+!!!!'J!!!&X!!!!+!!!!(!!!!&`!!!"\rQ!!!!(J!!!&d!!!!#!!!!)J!!!&i!!!!#!!!!*J!!!&m!!!!#!!!!+J!!!'!!!!!\r#!!!!,J!!!'%!!!!#!!!!-J!!!')!!!!#!!!!0J!!!'-!!!!#!!!!1J!!!'6rrrr\rT!!!!2J!!!$!!!!"Q!!!!3J!#rrrri`!!!(X!!!!B!!B!!!"m!!!!!J#3"hd!!!!\r#!!!!"!!!!(i!!!!#!!!!#!!!!(m!!!!#!!!!$!!!!)!!!!!#!!!!%!!!!)%!!!!\r#!!!!&!!!rrrrj!!"rrrri`!#rrrri3!!!)-!!!!d!!d!!!#%!!!!!J#3"i8!!!!\r#!!!!"!!!!)B!!!!#!!!!#!!!!)F!!!!#!!!!$!!!!)J!!!!#!!!!%!!!!)N!!!!\r#!!!!&!!!!)S!!!!#!!!!'!!!!)X!!!!#!!!!(!!!!)`!!!!#!!!!)!!!!)d!!!!\r#!!!!*!!!!)i!!!!#!!!!+!!!!)m!!!!#!!!!,!!!!*!!!!!!!J!!!$!!!2rrrq)\r!!Irrrq%!!2rrrpm!!3!!!!)!!Irrrq!!!!!%!!!!"2rrrpm!![rrrq8!!!"j!!!\r!%J!&!!!!H[rrrq3!N!H#rrrriJ!!!!3!!!#4rrrri!!!!!J!!!!`!!!!CJ!!!!`\r!!!#5!!!!#J!!!"!!![rrrr)!!!!U!!!!4J!)!!!!+rrrrr%!N!Farrrrm!#3"d,\rrrrrZ!*!(5[rrrqd!N!G3rrrrl!#3"e,rrrrV!*!(92rrrqS!N!Girrrrj3#3"3,\rrrrrj!!!!%3!!!'B!#3!!!",rrrri!*!(%rrrrrF!!!!-!!!!)`!!!!X!!!!3!!!\r!*!!!!'B!!!!5!!!!*3!!!!X!!!!@!!!!*J!!!!X!!!!B!!!!*`!!!!X!!!!D!!!\r!+!!!!!)!!!!F!!!!+Irrrr)!!!!J!!(rrrrG!!!!$!!!!!%!!!!(!!,rrrrE!!!\r!P`!!!"3!"J!!!#d!!!"Q!*!(,J!!!!)!!!!%!!!!,rrrrrF!!!!)!!!!1J!!!!S\r!!!!-!!!!-!!!!'B!!!!1!!!!Q!!!!!S!!!!5!!,rrrrD!!!!Q3!!!"B!#3!!!*S\r!!!!+!*!(0`!!!!)!!!!#!!!!1!!!!!S!!!!'!!!!4`!!!'B!!!!)!!!!Q`!!!!B\r!!!!-!!!!4J!!!!F!!!!0!!!!53!!!!S!!!!1!!!!-!!!!'B!!!!3!!!!1J!!!!S\r!!!!8!!,rrrrC!!!!R!!!!"S!#3!!!*d!!!!+!*!(0`!!!!)!!!!#!!!!1!!!!!S\r!!!!'!!!!,3!!!'B!!!!)!!!!,J!!!!S!!!!-!!!!6`!!!!S!!!!1!!!!-!!!!'B\r!!!!3!!!!RJ!!!!)!!!!8!!!!R`!!!!S!!!!B!!,rrrrB!!!!S3!!!!S!!`!!!+)\r!!!!+!*!(0`!!!!)!!!!#!!!!-!!!!'B!!!!'!!,rrrrF!!!!PJ!!!"S!"!!!!#[\rrrrrE!*!(3[rrrpS!N!G+rrrrf3#3"k$rrrrB!*!&![rrrpi!!!#8!!!!1J!*!!!\r!%[rrrpd!N!F6rrrrp`!!!!`!!!!M!!!!#`!!!"!!!!!N!!!!CJ!!!")!!!!P!!!\r!#`!!!"B!!!!Q!!!!#`!!!"J!!!!R!!!!#`!!!"S!!!#9!!!!!J!!!"`!!!!Trrr\rrh!!!!#!!![rrrrS!!!!2!!!!CJ!#!!!!%2rrrrN!N!H6rrrrhJ#3"3,rrrr9!!!\r!TJ!!!!B!!J!!!+F!!!!,!*!("J!!!'3!!!!#!!,rrrr6!!!!Y3!!!!3!!3!!!,B\r!!!!#!*!&!Irrrp)!!!!)!!!!!3!!!!F!![rrrp3!!!#`!!!!%!!&!!!!X3!!!!B\r!N!Hb!!!!"J!!!!%!!!#c!!!!#J!!!!)!!!#drrrrd`!!!!3!!!#hrrrrdJ!!!!J\r!![rrrpB!!!#N!!!!3J!0!!!!TIrrrp8!N!HS!!!!C!!!!!B!!!#T!!!!#`!!!!S\r!!!#U!!!!#`!!!!`!!!#V!!!!!J!!!!i!!!"8!!!!"J!!!")!!!#X!!!!"J!!!"-\r!!!#Y!!!!CJ!!!"3!!!#Z!!!!!`!!!"J!!!#[rrrre!!!!"`!!!#irrrre!!!!#`\r!!!#j!!!!"J!!!$`!!!#k!!!!!`!!!$i!!2rrrpF!!IrrrpB!![rrrrX!!!!0!!!\r!DJ!#!!!!$[rrrrS!N!HMrrrre`!!!'B!!2rrrr`!!IrrrrX!![rrrri!!!!$!!!\r!%J!(!!!!"2rrrrd!N!F(!!!!#`!!!!3!!!!)!!!!#`!!!!B!!!!*!!!!#`!!!!J\r!!!!+!!!!#`!!!!S!!!!,!!!!#`!!!!`!!!!-rrrrr!!!!!i!!2rrrp%!!Irrrp3\r!!2rrrp!!!3!!!!-!![rrrmi!!!$q!*!)rrrrc`!"rrrrcJ!!rrrrc3!"rrrrrJ!\r"rrrrb3!!!!3!!!!"!!!!"`!#rrrrbJ!!!48!!!!-!!-!!!%@rrrrb3#3"J%A!!!\r!!J!!!!3!!!%B!!!!!J!!!!J!!2rrrmX!!IrrrmS!![rrrm`!!!%)!!!!'J!0!!!\r"#3!!!!)!N!B"#J!!!!)!!!!%!!!"#`!!!!F!!!!)!!!"$!!!!!B!!!!*!!!"$3!\r!!!B!!!!+!!!"$J!!!!B!!!!,!!!"$`!!!!B!!!!-!!!"%!!!!!B!!!!0!!!"%3!\r!!!B!!!!1!!!"%J!!!!B!!!!2!!!!&J!!!!)!!!!3!!!"%`!!!!X!!!!8!!!"&2r\rrrmX!!!!@!!(rrrr)!!!!"3!!!!%!!!!'!!(rrrr$!!!!!J!!!!)!!!!,!!,rrrr\r%!!!")`!!!!J!!`!!!5,rrrr&!*!'!53!!!!,!!!!"!!!!5Arrrr$!!!!"J!!rrr\rra3!"rrrra!!#rrrraJ!!!5%!!!!b!"%!!!%Lrrrra3#3"J%N!!!!#`!!!!3!!!%\rQ!!!!#`!!!!B!!!%R!!!!CJ!!!!J!!!!6rrrrp`!!!!`!!!!M!!!!#`!!!"!!!!!\rN!!!!D`!!!")!!!!P!!!!#`!!!"B!!!%S!!!!#`!!!"J!!!%T!!!!"`!!!"S!!!%\rU!!!!"`!!!"X!!!%V!!!!CJ!!!"`!!!%X!!!!CJ!!!#!!!!%Y!!!!!`!!!#3!!!%\rZ!!!!!`!!!#J!!!%[!!!!#`!!!#`!!!%`!!!!!`!!!#i!![rrrm!!!!%r!!!!"!!\r#!!!"3!!!!!X!N!Hm!!!!#`!!!!)!![rrrm%!!!%k!!!!%!!&!!!"1`!!!!)!N!B\r"2!!!!!)!!!!%!!!"23!!!!S!!!!)!!!"2[rrrm!!!!!+!!!"33!!!!X!!!!1!!,\rrrrr#!!!"-J!!!&!!'!!!!5,rrrr&!*!'!53!!!!,!!!!"!!!!5B!!!!,!!!!"J!\r!!5F!!!"Q!!!!#!!!!"2rrrrh!!!!$!!!!#-!!!!,!!!!%!!!!#3!!!"V!!!!%J!\r!!#8!!!!,!!!!&J!!!6-!!!!,!!!!'!!!!63!!!!(!!!!'J!!!68!!!!(!!!!'`!\r!!6B!!!!,!!!!(!!!!6F!!!!(!!!!(J!!!6J!!!!(!!!!(`!!!6Rrrrr"!!!!)!!\r!!8)!!!!#!!!!-!!!!8-!!!!+!!!!0!!!!83!!!!$!!!!0J!!!88!!!!$!!!!1J!\r!!8B!!!!+!!!!2J!!!8F!!!!$!!!!3!!!!8J!!!!$!!!!4!!!!8N!!!!#!!!!5!!\r!!8S!!!!#!!!!6!!#rrrr[`!!!8`!!!"!!"B!!!%Lrrrra3#3"J%N!!!!#`!!!!3\r!!!%Q!!!!#`!!!!B!!!%R!!!!CJ!!!!J!!!!6rrrrp`!!!!`!!!!M!!!!#`!!!"!\r!!!!N!!!!D`!!!")!!!!P!!!!#`!!!"B!!!&0!!!!!`!!!"J!!!&1!!!!#`!!!"`\r!!!&2!!!!!J!!!"i!!!&3!!!!!J!!!#)!!!&4!!!!#J!!!#B!!!&5!!!!#J!!!#J\r!!!&6!!!!#J!!!#S!!!&8!!!!#`!!!#`!!!&9!!!!#J!!!#i!!!&@!!!!!J!!!$!\r!!!&A!!!!!J!!!$3!!!&B!!!!#J!!!$J!!!&C!!!!!J!!!$S!!!&D!!!!#J!!!$i\r!!Irrrld!!!!@!!!!!J!!!!X!![rrrli!!!&F!!!!-J!,!!!")[rrrm8!N!B"*!!\r!!!X!!!!%!!!"*J!!!!X!!!!'!!!"*`!!!'B!!!!)!!!!%rrrrrF!!!!-!!!!)`!\r!!!X!!!!3!!!!*!!!!'X!!!!5!!!!*3!!!!X!!!!@!!!!*J!!!!X!!!!B!!!!*`!\r!!!X!!!!D!!!!+Irrrld!!!!F!!,rrrqm!!!"AJ!!!#3!$`!!!5,rrrr&!*!'!53\r!!!!,!!!!"!!!!5B!!!!,!!!!"J!!!5F!!!"Q!!!!#!!!!"2rrrrh!!!!$!!!!#-\r!!!!,!!!!%!!!!#3!!!"V!!!!%J!!!#8!!!!,!!!!&J!!!9m!!!!,!!!!'!!!!@!\r!!!!(!!!!'J!!!@%!!!!(!!!!'`!!!@)!!!"Q!!!!(!!!!@-!!!!,!!!!)!!!!@3\r!!!!(!!!!)J!!!@8!!!!(!!!!)`!#rrrrZ`!!!@F!!!!Q!!i!!!%Lrrrra3#3"J%\rN!!!!#`!!!!3!!!%Q!!!!#`!!!!B!!!%R!!!!CJ!!!!J!!!!6rrrrp`!!!!`!!!!\rM!!!!#`!!!"!!!!!N!!!!D`!!!")!!!!P!!!!#`!!!"B!!!&S!!!!#`!!!"J!!!&\rT!!!!"`!!!"S!!!&U!!!!"`!!!"X!!!&V!!!!CJ!!!"`!!!&X!!!!#`!!!#!!!!&\rY!!!!CJ!!!#)!![rrrmF!!!%I!!!!8!!'!!!")2rrrmB!N!B"-Irrrm)!N!B"5rr\rrrlm!N!B"@rrrrli!N!B"AIrrrl`!N!B"C[rrrlX!N!8#rrrrZJ!!!AN!!!!%!!%\r!!!&k!!!!!`#3"3(rrrqj!!!!%3!!!!%!!!!(!!(rrrqi!!!!$3!!!!%!!!!(!!,\rrrrqhrj!%!!!!#!!!!!,rrrqfrj!%!!!!$!!!!!,rrrqerj!%!!!!#!!!!!,rrrq\rdrj!%!!!!'!!!!!(rrrqc!!!!#`!!!!%!!!!(!!(rrrqb!!!!"`!!!!%!!!!(!!,\rrrrqarj!%!!!!#!!!!!,rrrq`rj!%!!!!$!!!!!,rrrq[rj!%!!!!#!!!!!,rrrq\rZrj!%!!!!D!!!"&p!1$%i!!--58j&9&0[BfYPG(-!!&P*6N988fpMDf9d4'pYB@P\rZ!!Ab*&0[BfYPG%4[E@&TEJ!%0&0[BfYPG%4[E@&TEJ!(mepIGR"dFL3!!q*NFQP\rfCA*6G'&dC3!&&(*PFfpXGQ9b8h4KG'8!!YPNFRCb8Q9Q6R9Y!!%1D@jPG%0[G@j\rd!!CeF'*-BA0d!!D9F'*-DA0d!!-#3@jZEh4KG'9N8%)!!R"`BJ!&b8"ME'&cFb3\rh16K(990*58j&9&pMF!!$VR4MF!!(Fe4$8'P[F')!"[*QD@aX-6)!"0YTEd0[EA"\rXCA4TEfi!!Ep5Eh9dD@jP4'9cBh*TF(4[FJ!(*fG[6@PiC@40Ef4P9(*KF!!(4(C\rPFR0TEfi!"JKbEh9dD@jP4'9cBh*TF(4[FNCXB@Gc!!&@FQ9cCA*fC@3a!!&AFQ9\rcCA*fC@3b!!4hFf9XC@0dEh**EQC[!!3UFQpeG'PZC80[G@jd!!E`FQpeG'PZC9*\rPBfpbC(-!"4p5Eh9dD@jP8Q9MEh*N!!#rF(*[BdPZCQm!!p"*8d%!"2YbEh9dD@j\rP4QaKCh-!"S4`FQpM4'9cBh*TF(4[FJ!!eh0PE'9MG'pb!!"rD@p5CA0eE(3!!GC\rTEdjKE@93G()!!@aTEeC5C@C1G@d!!4CTEd05C@C1G@d!"UTMFd0[C'8!!IpdBh"\r6G(*PB@d!"mKMFe"KFQ&Y!!@l3'0XBA0c*$Fi0dG98dP*6N98Af0`!!DCBh*PBA4\rP!!1k9%033h*PBA4P8%)!"p"bBhC#G@CQ!!+8FQ0f3R9QCNaPEJ!#h@j[G'PQH9"\rbEf-!!bTeFf9b4'&dB9"dFJ!%F'p`C@i!!4p83e"2F'9Z8%)!"iaeE("8D@ePEh9\rd9Q&XG@8!!(peE("8D@ePEh9d3@0dD@pZ!!@NGQ&XD@4TG(P'E'&RF`!$$@0[E@e\rKEQ48D@ePEh9d9Q&XG@8!!YTbC@e[G'9)Eh0d!!+qFQ9YEh4P8'pbG!!"cQa[Bf&\rX5'pcG!!"XQa[Bf&X8'pbG!!!i(4[FdCXB@Gc!!*rF(*PBf9NC@jMC3!!Ff4[ER4\r'FQ&R!!)rG'PYC94[6'PfC3!!kA0PBh9bDA4j!!(eEh"dD@pZ3fjd!!FNEh"dD@p\rZF`!%JA0PEQ3!!9"83e"6C@jN8%)!!,C`GA0S4QaKC`!#2(9bCf9ZG%CXB@F!"VP\rQD@aXCA)!"[ahC(03G()!!"*cC@jN4R*PC3!#QR0PEQ4-C@jRG'J!"`PbC@0PDAC\rP!!4c9%038Q9MC@PfC9"#!!#&E@&bDdCXB@F!"LCbC(03G()!!CabC(0-C@jRG'J\r!"qYcC@0[EQ48D@eP8h4KEA!!"IeME'pcC3!#ie4$8%0XEh0P8%)!"F0KBQpbG!!\r#Qe4$8%&LEh*d8%)!"XjcG'&dGA-!!ep83e"6G'&dGA033J!'@R9ZGA0PC!!(Kf0\r[EQjPBh4TEfj6G'&dC3!#Sh0PEQ4AD@jNEhF!!3PbBhCAD@jNEhF!"V&KEA49EQ&\rMDf9N4'&dB3!&D'&YG&9ZFQ9KC%4KG'%!!,jcC@0eFQPdH8aPGQ9X8(4b!!11Ff9\rZC&9ZB@0VC@3!!&0cC@jN6Q9iG!!!KQ0[EQGPFh4TEfjAD@jNEhF!"`TbBhC1CAK\rd!!5'Fh*dG!!(BfaKFh459&3!"NKcC@jN6@&i8f9R8fPkC3!$H@0[EQj6G'&d8(4\rb!!,99%033fpZEQ9MG'P[EP0dBA4c!!4&C'&dB9"VG(05BhCN!!6GC'&dB9"VG(0\r6C@jd!!EGC'&dB9"VG(05CA0PER3!!ICLHA4PFe*MGQ3!"+GLHA4PFe*MGQ4%GA!\r!!i9LHA4PFe*MGQ43BA0d9fPZC'ph!!'+BRPdCA06C@jd!!1JBRPdCA05CA0PER3\r!"jaZG@e)DA0dEd*eBfYPG(-!"44cC@jd8fPkC8KTFh4[!!1m5'PcG'p#G@0VCA3\r!"9KfB@aeC3!(%Q0[G@jdCA)!"r"dEA*68P48!!-mFR4d9Q&bD@&ZBf8!"KYdEA*\r59%m!!FCcC@jN9(*TCA-!!0CcEh9bBfK4G@9ZBfK5BhCN!!,rCfa[BQ&X5@jQE`!\r(T94$8%GXEf*KE%PZCQp33J!$%R4MF&"KFQ&Y8(4b!!!Q9%038'&bB@d!"j!!G'0\r`8R4[33!"$A4MF&*dEdeTEJ!"&R4MF&*dEdeKH!!&qR4MF%eKH&0PCe0THQ8!!Pe\rdBh"0BAK$EfjZ!!4TG'0`6@&i9fPZC'ph!!2MG'0`8h4KG(03G()!!)K83e"6G'&\rdF`!(C(4MF%0[EQj"G(4PEA"dF`!&dh4MF%0[EQj2F'9ZC@3!"fPdBh"$EfjZ3@0\rMCA"dC@3!"5"dBh"$EfjZ3fa[Ff9N!!BrG'0`3fpZEN&LEh*dC@3!!lCdBh"2Bh4\rPG(0*EJ!%3h4MF%pMG'9dFdpeG!!'Kh4MF%pMG'9dFdPZ4(9`!!!cG'0`6f0dCA4\rc8Q9dFQ&ZF`!%IA4MF%PZF(9d8'YdF`!&)(4MF%peG("eG&"VG(-!!JpdBh"%GA"\r3Dh4c!!EfG'0`8Q9dFQ&ZFe"VG(-!!kCdBh"$4%*8B@*XC3!"G'eKH&4$8%0[EQj\rPBh4TEfjc!!1bG@4`!!F`9843D@p`BJ!"rR9NF&0dFQ9KE3!&r%"ME'&cFb3h16"\r(990*58j&9&pMF!!$cP9%8%0bC@&dC9"#!!*3C@jND@jR8'pbG!!"@99%8&0PEQ4\r33J!!+A*PFf9bGQ9N!!"!BfKPBfY6G@d!"&a94&"5C@0PDACP8%)!"mPdD@eP6h9\rd!!"UC'9cG%K[Fh3!!%jNCA0d8'pbG!!$Q@edG3!!qP9%8%e899"#!!HCEA4e8fP\rkC3!%,R0[BfX!!Xa*6N988fpMDf9d!!If*&0[BfYPG!!'q90[BfYPG!!!((*PCN0\r[G@jd!!$IGhKbC@CMEfi!"b9hH'9fC@jd!!2RGhKPGQ9ZG'eKFfX!"R*cG(*PB@d\r!!ieZEfjLE'pMDfPZC`!(pR*PBhC#G@B!"CTbC@0fC!!#ch0K!!2NFfpMDf&NC(*\rID@i!"`*cD@jIE'9Z!!,!FfPZAfCKE@PXH3!!@R0TEPp`Eh*d!!!$FfPZAf&NC()\r!"feTEPpKC'4b!!CpFepKC'4b!!#bFfPZAhTPFQm!"1a`C@9b!!DaFh0dBA4P!!$\r(BA0jEQ0PFR)!"S3ZD(4[EQ`!!@KS!!D,,QKdEfjc!!DN,QjdEfKX!!&ZEJ!'Ubj\rZG'pSF`!'a#j83e"ICA*bEh*IAdCT!!AaCA*bEQm!!B40B@083e"PFR)!"G%ZAep\rMG&pI-6"*6N988fpMDf9d4RB!!$-ZAepMG&pI0P0[BfYPG%Cf!!+EAepfG&pI-6"\r*6N988fpMDf9d!!Fr,QePEA0PG!!"$5j2F'9Z8fpMDf9dAema0NP14946Ef0VCA4\r%EfeKD@j'GJ!%@h4SDA-!",G!1$3`!!I8AepNG&pI0P0[BfYPG%Cf!!5i3$Jd-3!\r'JLjIAf0dAema-%P14946Ef0VCA4'9@`!",T!1$3c!!5l3$Jd0!!&"#jIAf4dAem\ra-%P14946Ef0VCA4'GJ!#`5j$E'pcC90[BfYPG&pI-6C*6N988fpMDf9d4'pYB@P\rZ4RB!!%)ZAepNG&pI0P0[BfYPG%Cf!!*2,PpIC'aIAdC3GJ!%[d!i0$J!!Z!Z3AC\rKD@aKBQaPAema-%P14946Ef0VCA4'GJ!$#bj6CA45C@C$EfjIAc%`58j&9&0[BfY\rPG%C3GJ!$P#jIAh"dFPpRE(9P!!Gi,RGi6@&M8fpMDf9d5'&ZC'aPFP"bEf-!"MG\rbC@CMEfi!!4aMB@jAFQPdC9!!!0GMB@j5C@&N8!!!CQ0KEPGbDA4P!!FmBf&Z8Q9\rKC!!%qd!i0M3!!EBZ4e96590PG&*PCQ9bC@jMC3!(XP0[BfYPG(-!"[`ZAepfBep\rI-6&6Ef0VCA48B@*XC8CT!!&cF`!%m@eKFfX!")GNBA4K!!6p3$Jf0J!(R5jLD@j\rNAema-%P14946Ef0VCA4'8(CT!!1Y,NG98dPICA*bEh)!!PJZCf9dD'pcG'PN!!4\r!B@4NFJ!(SQjKE@9XC@i!"+YZB@eP!!3J3$Jh13!(hbjRCA4cEf0VEQ&YC9pI-6"\r*6N988fpMDf9d4P"f8'N!"f8ZE@9YBh"j!!3l3$Ji-`!(p#jRCA4`C@9bEQ&YC9p\rI-6"*6N988fpMDf9d4P"f8'N!"%&!1$Jj!!&%,R0SGA4NEhGZAema-%P14946Ef0\rVCA4'D3!$"QK[G`!%AN!i16B!!$8ZCQ0ZG'aIAc%`58j&9&0[BfYPG%C9D@N!!jp\rME@3!!cTKFQF!"%0!16!i!!'Y,QP[Bh4XAema-%P14946Ef0VCA4'9@P3GJ!(-(*\rPFA9PFh3!",GKFQG`!!6cFfPkC3!$j'PQFJ!&N@PQFQ9a!!4M3$Na1!!!Tbj(990\r*GfPdD%PZG'9bEQ9d8fpMDf9dF`!%GLj%Efjd8h4bDA"IAc%b8fpMDf9d4'pYB@P\rZ4RB!"(Y!16)`!!-&,PpIBh4IAc%f58j&9&0[BfYPG%4[E@&TENCf!!IV,PpIBh4\rIAc%b8fpMDf9d4'pYB@PZ4QN!!*0IAhCdAema0NP14946Ef0VCA4%EfeKD@i!"#d\rZAepMG&pI-6G(990*3fpZCQPRGA*KG'P[ENCf!!5MBfpZCJ!"ZdG98dP$EfjQD@G\reFQ&dD@pZ!!2,C'9QBA9XG&4jF'8!"K"NC@CKG@ad3h*PBA4[FJ!!,Q&eG'p6F'P\rZ!!F4EQp$D'4TFJ!"-Q&MBh9b8h4KG!!#rQKKFd0[ER0[E'8!"ZTZEd&eG'p*EQP\rd4h*KCJ!#"h0SBA*PC%p`C@i!"eCcD@G3DA"P!!@UEQp"F("XC89fC@jdF`!$P'j\reE90eCQCTBf9c!!#1Fh9QCQPMCA-!!TC(990*8h9QCQPi!!D`Fh9QCQPi!!#,Fh9\rQCP4jF'8!!r"cG@CQ3h*PBA4[FJ!%I8!j-M)!"J0IAf4dAema-P0[BfYPG%4[E@&\rTENCf!!4q3$Nb-`!%JN!j-MF!"8iZ4(*TGQ9bAema0NP14946Ef0VCA4%EfeKD@j\r'GJ!$bbj33Np`C@j6H@jM!!8T8'&bB@e#E'pMDe*PB`!(,@P[8'&bB@d!"iP*6e"\rKFQ&Y!!8EF8aTEQX!"Ap44@aPE3!&QR&8HA"P!!@1F84KG'%!"M9TEe4bBA!!!G9\rTEd0YC%&NC()!!(TTEe*PCNjeE3!"fQP[9Q9bFdjeE3!"bfP[8'9bEA0cEJ!'afP\r[6@PcB`!!2@P[3R9QCQ9b!!+UD@p5CA&$Eh9ZG!!#C@P[3@0d3fpeER3!!@4TEe"\r[Fde[C'8!!e*TEe"[FdpQCR0PG!!"0fCTE'93BA*KE3!"edCTE'93BA*KE3!"D'P\r[4P*PCNjeE3!#-'P[4PCPFR01G@d!"fKQD@aXCA)a!!0BD@p'4'Pb5@jNCAJ!!M"\rTEdCX3A4dFQPL!!-#D@p'E&CPFR01G@d!"0&TEdCX4QjNFNPZCQm!"Aj'5@jQE`!\r'CQCN9(P`C3!"DfCN3h*PBA4[FJ!(['CN4QaKCh-!!JCQC%a[Bf&dD@pZ!!@N8'p\rTER3!!ACf!!DfCQ4'E'4b!!FND@p'E%jeE3!"$fP[4Qa6G%*XD`!"rfP[4Qa-Cda\rPEJ!"c'P[4Qa3H8aPEJ!#k@P[4Qa58h4#E'X!!N"TEdCX8NaR6'9Z!!++D@p'E&*\r3H8aPEJ!"[@P[4Qa$FN4KG!!"efP[4Qa0C%4KG!!$ZhC[E(9YC9"KFQ&Y!!-j9Qp\rXG@eP8'&bB@d!"fPQD@aXCA)b!!*MD@p@Efa*EQ4PH!!"`fP[9N0b4'&dC3!",fP\r[9Nac3QY9F!!([@P[9N&dFQ)!!)9TEeC1E8CXF`!!9'P[9N4TFP0d!!GND@p@3Qa\r-EJ!$,@P[9NjY3@a#E'Yc!!1JD@p@3@a#E'Y6DAS!!I"TEeC$E("6DAS!!*&TEd&\rX3Qa6G!!#FfP[9NjiG%C1G@d!!&*TEeC'FN*XD`!#c'0ZG(*X8'&bB@d!!X"$ER4\rbE&"KFQ&Y!!5+Ffa[G%4PGP"KFQ&Y!!6D8fa[G%4PGP"KFQ&Y!!%UD@p68Q9Q6R9\rY!!))D@p69Q9bFdjeE3!#Z@P[8e"PFQecFfi!"NPTEe00DAJ!!"eTEe0'E'&RF`!\r'JfP[8fa[G!!%hfP[583!"6YYG@adD84PGP"KFQ&Y!!@c6A9XG'P%CAC3BA*KE3!\r"UfP[69*PCNjeE3!#R@P[69CPFR01G@d!!QPTEde3CA*YFh0Z!!C+D@p06@Pi!!"\r"D@p04QaKCh-!!PTTEe0&3QaV8(4b!!5$3$Nb1!!(C5j5CA0[E(CPFPpI-6C*6N9\r88fpMDf9d4'pYB@PZ4RB!"IBZ6h"PEP*PFfpXGQ9b!!5G3$Nc-J!'%#jcEf0VCA4\rIAc%f58j&9&0[BfYPG%4[E@&TENCTF`!(A#j(990*Af9bFQpbAfjTE!!#HbjIAfj\rhAep'9@`!!h)ZAepMG&pI194$8&0[BfYPG%Cf!!2R,PpIBh4IAcP94&"6Ef0VCA4\r'GJ!%Eh4jF'8!!CKcBACP4A*bEQm!!XC&FR*ZEe0KGQ9b!!0TCP0KGQ9N4A*bEQm\r!"2e!16Bb!!&FAepNE&pI4P"f!!6`AepNG&pI-6"&FR*ZEe0KGQ9b4RB!"2j!16B\rc!!@(,PpIC(4IAc%`4A*bEQp6BACPFNCf!!3#3$Nf0`!%$Lj(CA433PpI-6C*6N9\r88fpMDf9d4'pYB@PZ4RB!"HCMGA*33J!$,#jIAfjhB9pI4P9X!!3m3$Ni-!!$Sbj\rIAf4XB9pI4P"f!!4!3$Ni0!!%38!j1$8!"%0!16Jh!!EmAep59&4*Aema-P0[BfY\rPG%4[E@&TEJ!%3N!j1$B!!N0IAe*89%PIAc%f58j&9&0[BfYPG%4[E@&TEJ!"5@0\rSEfpcC9pI-6*6Ef0VCA4%EfeKD@j'D9"M8(CT8(C3D3!'Mh0[BfYPG("KDA*IAc%\rb8fpMDf9d4'pYB@PZ4QPc8&!f8fpMDf9d!!,dAepNG&pI-6C*6N988fpMDf9d4'p\rYB@PZ4RB!"E9cEf0VCA4IAc%f58j&9&0[BfYPG%4[E@&TENCTF`!$cbjIAf4dAem\ra0NP14946Ef0VCA4%EfeKD@j'GJ!(i5jIAf4dAema-P0[BfYPG%4[E@&TENCf!!4\rG3$Nj-3!%AN!j16)!"'"!16Nd!!IrAep59&4*Aemf8fpMDf9d!!4I3$Nj-`!%"Pp\rI8P4859pI-6"*6N988fpMDf9d!!0hF'pcG&pcC@aPBh4IAcC6Ef0VCA4'9@09Be9\rM!!&)Ff9XC@0dAemf8fpMDf9d4P"9Be"9Be"9B`!#E("bC9pcC@aPBh4IAcC6Ef0\rVCA4'9@09Be9M!!&#DA0KG(4jAemf8fpMDf9d4RB!"(eQG(*eEQ0KG'9IAcC6Ef0\rVCA4'E!!"B'acC@9VAemf8fpMDf9d4QaT!!8[CR0dBA4IAcC6Ef0VCA4'8$4cG'&\rd!!&,Ff9dFfpMDfp`G&pI0P0[BfYPG%CTD9"fD3!#b'GPG(0[BfY[F(4IAcC6Ef0\rVCA4'D@P3GP"T!!FFFf9ZC(4[Aemf8fpMDf9d4P"fD@P3GQN!!R"bC@0fCR*[E9p\rI0P0[BfYPG%C3GQPT8(C3D3!#2AGbDA4PAemf8fpMDf9d4P"fD3!"TR*PB@4IAcC\r6Ef0VCA4'8(CT!!5@B@0MCA"dAemf8fpMDf9d4P"f8'N!!FKXDA0dC@jIAcC6Ef0\rVCA4'D3!%kQ0[EQjPBh4IAcC6Ef0VCA4'8(CT!!#&FfKeG'4[GfjIAc%`58j&9&0\r[BfYPG%CT!!$UD@pMG'aIAc%`58j&9&0[BfYPG%C9D9"f!!G4CQ0ZG'aIAc%`58j\r&9&0[BfYPG%C9D@N!"P9RCA4`C@9bEQ&YC9pI-6"*6N988fpMDf9d4P"f8'N!"Qa\rRCA4cEf0VEQ&YC9pI-6"*6N988fpMDf9d4P"f8'N!"Q&LD@jNAema-%P14946Ef0\rVCA4'8(CT!!%"3ACKD@aKBQaPAema-%P14946Ef0VCA4'GJ!%!PpIC(4IAc%`58j\r&9&0[BfYPG%Cf!!6L,PpIFfPZDA4I4e9658P1494IBh!!!F-ZAepbC@GTFh4PFPp\rRE'pLB@aIEf*UC@0d!!4L3$Nj0J!$IP423`!"!%0XEh0P8fpMDf9dAema0NP1494\r6Ef0VCA4%EfeKD@j'GJ!!6%p`C@j6Ef0VCA4IAc%f58j&9&0[BfYPG%4[E@&TENC\rf!!2f4f9d8%*IAc%f58j&9&0[BfYPG%4[E@&TENCf!!CL8Q9cEfafCA*IAc%f58j\r&9&0[BfYPG%4[E@&TENCf!!3T4(*TGQ9bAema0NP14946Ef0VCA4%EfeKD@j'GJ!\r#-&pIBh4IAc%f58j&9&0[BfYPG%4[E@&TENCf!!F)4e965AGTG'K*ER4PFQjPG&0\r[BfYPG(-!!"a(990*8f9d8Q9QCA*PEQ0P!!,f8f9d8Q9Q3fpZAema-%P14946Ef0\rVCA4'8(B!"HTIAf0dAema-%P14946Ef0VCA4'9@`!""4IAf0dAema-%P14946Ef0\rVCA4'GJ!&d&4$8&pPFR*[FPpI4QN!"EjZG'pSF`!&YfjdEfKX!!@ID(4[ER-!"CK\rSG'pZE!!!8%pA8J#3"MES!!"G-J!!!J-!!$G8!!!PhJ!!&I!!!!*f!!!%9J!!!%!\r!N%"&C`!!4AX!N!8"XJXHZd9T!*!&"%9V!!3!!!!&!!!!C!!!!#!!!!PkI!J#TT2\rKrrb3!!%!#*3Krm!mB!!"1)!!!6KMUQj)!!!"B!!!!$[M!!!mB!!"1)!!!6KMU'j\r)!!!"B!!!!(`$q%"!JJ!-1'!#!%J!!!JiB!3!J!%!5$JK!%"m#!1QJq(rr%k!!#"\r&G3#3"3B!!!!F4A8!N!8'!!!!0%9Z$!3!!!!(!!!!$)!!N!Z!!!"N#!!!!%9h!*!\r&"3#3"%9T!*!&"%9V!!3!!!!)!!!!'!!!!%`!!!SX9'!&+8##!!`iB!!!6S!!)$K\rJ!!&1J!!J4@X!"!!!!!S!!!#F!!!!IJ!!#Z9m#!+QNq(rr*2"rrL6SIrdN!!"!!L\r8)Iq`1q-!!%J!!!%l``!!Im!(G#`!!!&!JJ!J5!!!!AaM"c4Ar`9qIq!(0(`!'!"\r"J!!)1q#SRcKr!!!iRJ!!5!!!!@!!!!!lS`!!2'!!!6L!!!%iBkLI5!!!!@!!!!"\rmBqK3-!2rrhaJ'4#!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr41J!!J4A8!N!8)!!!\r!(%9e!*!&"3!!!$"&G3#3"3B!!!"84A8!N!8'!!!!E%9Z$!3!!!!-!!!!$)!!N!Z\r!!!#F'!!!!%9h!*!&#J#3"%9V!!3!!!!0!!!!G!!!!-i!!!`4I!J#TT2Krrb6`Ir\riN!!"!!L8)IqJ1m-!!$[N!!!iB!!"1)%!2%J!!!&J!!!!U'%!5MLH!!!i[`!!1-%\r!1%J!!!&J!!!!I'!(08'#!"3i!!!!X"i!!$J!!!#3!"m!!)!"!'Ji)3"JI!J$TS2\rKrrb$`Iri6S!!)%9e!*!&$J!!!#4&G3#3"3m!!!!m4@i-"!!!!"i!!!!-J!#3#i!\r!!(33!!!!4AF!N!80!*!%4@X!"!!!!"m!!!$!!!!"1J!!$20m#!+QNq(rr*2"rrL\r6SIrdN!!"!!L8)Iq`1k-!!$[%!!!li!!!1'#KV8J!!!&8B!Br3B)!*$aJCQmiBfa\rN1)%!1%J!!!&J!!!!I'!(08##!!Jli!!"9q!'2d##!"3iI3!!1*i!!%J!!!&)!!!\rm1'#!!$b!Bh3iS!!!10d!!$Mq!!!iK(*X5!!!!@!!!!"mB!Fe3B)!&$J!!!#`(3!\r!1!!!!*!!(J!!J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIrd6S!!)%9e!*!&#J!!!#K\r&G3#3"5!!!!"!4A8!N!80!!!!C%9e!*!&)3!!!)4&EJ`%!!!!*!!!!!b!!*!,J!!\r!`"J!!!"&G`#3"4m!N!4&D`!%!!!!*3!!!1J!!!(1!!!2)(`)!UDrBIrXN!!"!!L\r8)Ii`1f-!!$Z%!!!lT3!!1mB!!$J!!!#3!!%"4$J"!$L3!!%"5V1K!8k6`3&S1!!\r!!E!"!94)!!"mJ!%"@(`!f%"!JJ"JJ!%"A(`!i%"!JJ"81(d!!$LH!!!iS3!i1-!\r!!8J!!!&J!!!!1q-!!$aJC'iiJ!!"1'0bF%J!!!&J!!!!+!-!!%##!"3iI`!!5!!\r!!@!!!!")!!!-1(m!!%J!!#bSB3&81!-!!E!"!956`3&S1'%"1%J!!!&J!!!!I'!\r(08'#rhJiB2rrJ!%"f$JK!G"m#!1QZf(rl%k!!#"&G3#3"5B!!!"X4A8!N!8R!!!\r!K%9e!*!&+!!!!*K&G3#3"5N!!!$!4@i-"!!!!3%!!!!-J!#3#i!!!1JS!!!!4AF\r!N!8P!*!%4@X!"!!!!3)!!!$S!!!#K!!!%[0m#!+QNq(rr*!!!3!)P#(rX$KK!$`\riJ3!i5!!!!6aJBf3mJ(TdU+%!2)$"!$JiBf9f1)4MF%J!!!%li`!!Iq!(0#`!rrp\r"JJ!-1(m!!%J!!)JiB3!m1)%!1%J!!!%mB'0N2)"YG+LK!$b!`3!i1'0PGML%Bh"\r)!!!"1q-!!(rJ"c3X!2rr3B)!$$Kr!!")!!")1'%!2$L"!$K)!!!"2'"MC$b!EA5\rSS3!mJ-%!1$KMCABiK'0`5!!!!6[M!!"ri!Fd,!$rrd'#!!`iI`!!5!!!#$KJrrq\r!!3"B1#%!8(`)!kD$iIrm6S!!)%9e!*!&(`!!!"K&G3#3"58!!!!d4A8!N!80!!!\r!@%9e!*!&*3!!!(4&G3#3"4m!!!#B4A8!N!8P!!!!Y%9Z$!3!!!%$!!!!$)!!N!Z\r!!!$S#!!!!%9h!*!%!3)!N!4&D`!%!!!""!!!!3`!!!-5!!!9J(`)!UD6iIrmNm(\rrq*!!!3!)P#(r`*!!B3"BJ!)!!#J!!!""JJ!-1'!!!%J!!-a)!!!"1q-!!$aJC'i\riJ!!"1'0bF%J!!!&J!!!!N!"L!!#!!J!!+!!!!%##!"")!!!"B!!!!%J!!*5!BJ!\r!5!!!!@!!!!"ri!Fd,!$rrd'#!"!iI`!!5!!!!@!!!!#!BJ!!5!!!!@!!!!#!BJ!\r!5!!!!@!!!!#!BJ!!J!-!!*!!!J!!J')!!$L!!q%iS!!"J-%!@%J!!!&J!!!!1m-\r!!(r!"c9"JJ!NJ')!!%J!!!&J!!!!J')!!%J!!!&J!!!!1!!!!*!!!J!!1(i!!)!\r"!%Ji)3"!I!J$TS2Krrb$`Iri6S!!)%9c%!#3"!-!!!!B4A8!N!3"!J!!!#a&G3#\r3"5F!!!"!4A-3!*!%!J!!!%K&Fa!!N!3#!!!!6%9e!*!%!38!!!"B4A-3!*!%!J!\r!!'4&G3#3"!%'!!!!D%9e!*!&+!!!!)"&Fa!!N!3#!!!!L%9e!*!%!3F!!!#-4A-\r3!*!%!J!!!*4&G3#3"!%)!!!!Q%9c%!#3"!)!!!#J4A-3!*!%!`!!!+K&Fa!!N!3\r$!!!!V%9e!*!%!3N!!!#m4A-3!*!%!J!!!0"&G3#3"!%+!!!!e%9c%!#3"!)!!!$\rF4A8!N!3"#`!!!1"&Fa!!N!3$!!!!l%9Z$!3!!!%1!!!!$)!!N!Z!!!%-%!!!!%9\rh!*!%!33!N!4&D`!%!!!"$`!!!'J!!!2)!!!D%A`)!UD3!!%!#*3Krm#!!J!!+!!\r!!%##!!`iB2rN5!!!2)"L!!!iJ!$K1+!!!NJ!!!&J!!!!J')!!%J!!!&J!!!!J')\r!!%J!!!&J!!!!1!!!!*!!!J!!1'!!!)!"!%Ji)3"!I!J$TNk!!#"&Fa!!N!3$!!!\r!$%9c%!#3"!-!!!!J4A8!N!3"#3!!!#a&Fa!!N!3#!!!!0%9e!*!%!3S!!!!i4A-\r3!*!%!J!!!%"&G3#3"!%,!!!!4%9c%!#3"!-!!!"34@i-"!!!!4!!!!!-J!#3#i!\r!!'J!N!4&G`#3"!%2!*!%4@X!"!!!!4%!!!"S!!!%$!!!(%&m#!+QN!!"!!L8)Ir\r!N!"K!&L3!)%!A*!!S3"JN!$"!'5!!J!!+!!!!%##!!`iB2rN5!!!,)"L!!!mJ!!\r"1+!!!i$"!&L!i3"FJ3%!B)%K!'3iK2rK5!!!!@!!!!#!!3")1#%!3(`)!kC1J!!\rJ4A-3!*!%!`!!!"a&Fa!!N!3$!!!!-%9e!*!%!3N!!!"34@i-"!!!!4X!!!!-J!#\r3#i!!!'J!N!4&G`#3"!%4!*!%4@X!"!!!!4`!!!"F!!!%D!!!(JGm#!+QN!!"!!L\r8)Ir!N!"K!&L3!)%!A)!#!!!S!!!!3))!$$KJrq4)!!!SJ')!!$L!$q%iS!!%J-%\r!@)$K!&a)!!!"B!!!!,"K!$JiB!!!J!%!5$JK!%"m#!1Q6S!!)%9c%!#3"!-!!!!\r84A-3!*!%!`!!!#K&G3#3"!%*!!!!2%9Z$!3!!!%I!!!!$)!!N!Z!!!"F!*!%4AF\r!N!3"(!#3"%9V!!3!!!%J!!!!9!!!",B!!"pUI!J#TT!!!3!)P#(r`*!!B3"BN!#\r"!&b!!J!!+!!!!%##!!`iB2rN5!!!))"L!!!iJ!rK1+!!"B$"!&L!i3"F5!!!!@!\r!!!#!!3")1#%!3(`)!kC1J!!J4A-3!*!%!`!!!"4&Fa!!N!3$!!!!+%9e!*!%!3N\r!!!!m4@i-"!!!!5%!!!!-J!#3#i!!!&3!N!4&G`#3"!%J!*!%4@X!"!!!!5)!!!"\rS!!!%pJ!!)0Tm#!+QN!!"!!L8)Ir!N!"K!&L3!)%!A*!!S3"JN!$"!'5!!J!!+!!\r!!%##!!`iB2rN5!!!,)"L!!!mJ!!"1+!!"S$"!&L!i3"FJ3%!B)%K!'3iK2rK5!!\r!!@!!!!#!!3")1#%!3(`)!kC1J!!J4A-3!*!%!`!!!"a&Fa!!N!3$!!!!-%9e!*!\r%!3N!!!"34@i-"!!!!5-!!!!-J!#3#i!!!'J!N!4&G`#3"!%L!*!%4@X!"!!!!53\r!!!"S!!!&8J!!)Tjm#!+QN!!"!!L8)Ir!N!"K!&L3!)%!A*!!S3"JN!$"!'5!!J!\r!+!!!!%##!!`iB2rN5!!!,)"L!!!mJ!!"1+!!"i$"!&L!i3"FJ3%!B)%K!'3iK2r\rK5!!!!@!!!!#!!3")1#%!3(`)!kC1J!!J4A-3!*!%!`!!!"a&Fa!!N!3$!!!!-%9\re!*!%!3N!!!"34@i-"!!!!6)!!!!-J!#3#i!!!'J!N!4&G`#3"!%N!*!%4@X!"!!\r!!6-!!!"S!!!&VJ!!*'"m#!+QN!!"!!L8)Ir!N!"K!&L3!)%!A*!!S3"JN!$"!'5\r!!J!!+!!!!%##!!`iB2rN5!!!,)"L!!!mJ!!"1+!!#)$"!&L!i3"FJ3%!B)%K!'3\riK2rK5!!!!@!!!!#!!3")1#%!3(`)!kC1J!!J4A-3!*!%!`!!!"a&Fa!!N!3$!!!\r!-%9e!*!%!3N!!!"34@i-"!!!!63!!!!-J!#3#i!!!'J!N!4&G`#3"!%c!*!%4AX\r!N!T&DJ!%!!!"03!!!!`!!!B+!!!&UMJ!!!'B"!!!6S!!)%9["33!!!%h!!!!)2r\rrrr8!!!B1U[i(!*!,!m!!!3!%!*!-4AB+!!!!!6J!!!!84@i3"!!!!6X!!!!%rrr\rrc!!!$p8!N!4&EJ8%!!!"23!!!"6rrrr*!!!3-!!!!!3!N!F#!!!!"!#3"%9f"3!\r!!!%m!!!!%%9f"3!!!!%l!!!!"%9f"3!!!!%k!*!%4@i&!3!!!83!!!!+rrrrb!!\r!%4*XEf0KE'K[Fh3!8Q4&D`!%!!!"43!!!Y`!!!Bd!!!4%R`)!UDr)IrNN!!"!!L\r8)Iq3!$XM!!#$BJ!!Jk)!!)2#!!#$JJ!!J))!!%J!!!&J!!!!,!-!!%##!&")!!!\r"B!!!!$Y$!!#633!iJ!%!1*!!!3!mJ!%!2#J!!!""JJ!F1'%!2$L!!!3iS!!#5!!\r!!@!!!!")!!*B1!!!!C!!(!!!1'!!!%J!!NL!BJ!!5!!!!@!!!!"mB!Fe3B)!&$J\r!!!13!"`!!$KJ!!")!!)N1q!!!%J!!"JiJ!!!9q-31MJ$!34mRJ%Z1rm!!5`I!!4\r"J2rS1!!!!*J"!%!iH3!!1*i!!)#L!!!i`3"!5!!!!AaJ"c3X!+Aq3))!A%J!!!&\rJ!!!!,!-!!%##!#b!(3!!+!!!!%'#!$3iB!!#1)!!!)'G!!")!!!"B!!!!#`$!!"\r"JJ!B1'!!"%J!!!&J!!!!1'!!!%J!!Bb)!3"!+!!!!%'#rkb!(J!!,!#Pr8'#!'a\r!J!!X,!#PqN'#!*!!3)!!&#`!TIK"JJ#N3)!!N!")!!#X,!#Pr%#!!&4)!!"J,!!\r!!%'#!+K!J!#8,!#Prd'#!!a!J!#)5!!!&$J!!!'3!"`!!$KJ!!")!!%F1!!!!j!\r!(!!!1'!!!%J!!3`i!!!$N!!F!!!iB!!!5!!!r$J!!!'3!"`!!$KJ!!")!!$X1!!\r!!C!!(!!!1'!!!%J!!0`i!!!#N!!F!!!iB!!!5!!!c$J!!!13!"`!!$KJ!!")!!#\rm1!!!!T!!(!!!1'!!!%J!!+`i!!!$N!!F!!!iB!!!5!!!R)JH!!4m!!Ge3))!&$J\r!!!'3!"`!!$KJ!!")!!#!1(i!"%J!!!&J!!!!1q2rrcJI!!4m(J#ZI!!(G#`!!#j\r!JJ!31'!!!$JI!!4mIJ'Z1q!!!%J!!"aAia!k1!-""(aq!K4Ai"!kI(X",M[r!!%\rX(`!%3)!!'&IM%$Si!`%%I"i!,LJ!!!"!J[r31'!!!&IJ%$TmH`%ZJ')!!)!"!(J\ri)3"`I!J$TVXKrq41J!!J4A3$!!!!!6`!!!!84A3$!!!!!8B!!!!B4A3$!!!!!6S\r!!!!F4A3$!!!!!6N!!!!J4A3$!!!!!83!!!!N4A8!N!3"4`!!!#K&G3#3"!&)!!!\r!1%9e!*!%!8N!!!"S4A3$!!!!!8S!!!#%4A8!N!3"5`!!!)K&G!-!!!!"0`!!!0a\r&G3#3"!%4!!!!j%9e!*!%!8`!!!$d4A8!N!3"63!!!4a&G3#3"!&1!!!"-%9e!*!\r%!8m!!!*34A3$!!!!!6d!!!,%4@i-"!!!!93!!!!-J!#3#i!!!Y`i!!!!4AF!N!3\r"43#3"%9V!!3!!!&*!!!#8!!!"f!!!"FRI!J#TVmKrq53!!%!#*3Krk!l)`!!Ji)\r!!)1L!!#$`J!!Jf)!!)"L!!")!!!"B!!!!(aJ"c9"JJ!81!!!!j!!'`!!1'!!!%J\r!!IJli!!!5!!!'$L!!!"Aia!k1!-""(bH!5ilr`!","m!"%'!rqJi!!!!Q!%!1)"\rj!!!m!i%!+!!!!8##!"")!!!"B!!!!%J!!!L!H3!!1d-!!$LH!!#!SJ!!1-%!1%J\r!!!&mB!Fd,!#PrN##!&a)!!!"B!!!!#`$!!"!JJ!XJ"d!!#J!!!""JJ!d1'!!!cL\r!!!#"R3!!5!!!!@!!!!!X!`!!3B)!'$KJ!!4)!!!"B!!!!$KJ!!")!!&!L!%!1#J\r!!!""J[qXJ"i!!#`!TIa"JJ"83)!!+#`!TIP"JJ"i3)!!%#`!TIK!J!"m5!!!L#`\r!TIY!J!"!5!!!6#`!!!""JJ#%3)!!F#`!TIj"JJ!)5!!!C$J!!!13!"X!!$KJ!!"\r)!!$B1!!!!C!!'`!!1'!!!%J!!-Ji!!!"N!!E!!!iB!!!5!!!Z$J!!!+3!"X!!$K\rJ!!")!!#S1!!!!j!!'`!!1'!!!%J!!*Ji!!!#N!!E!!!iB!!!5!!!L$J!!!13!"X\r!!$KJ!!")!!"i1(i!"%J!!!&J!!!!1q2rrcJI!!4m(J#ZI!!(G#`!!#j!JJ!31'!\r!!$JI!!4mIJ'ZJ"i""#J!!!"!JJ!)Nei""$[J!!")!!!F9q-31MJ$!34mIJ)89q!\r31Ram!5ilr`!","m!"%'!rq3i!!!!N!!F!"#!BJ!!J!%!D$JK!'"m#!1QZb(rj%k\r!!#"&G!-!!!!"2!!!!"4&G!-!!!!"4J!!!"K&G!-!!!!"1J!!!"a&G!-!!!!"13!\r!!#"&G!-!!!!"5J!!!#4&G3#3"!&,!!!!+%9e!*!%!8J!!!#%4A3$!!!!!6F!!!#\rF4A8!N!3")J!!!+4&G3#3"!&-!!!!Y%9e!*!%!8d!!!$F4A8!N!3"6J!!!2"&G3#\r3"!&2!!!"c%9d!`!!!!%p!!!#1%9Z$!3!!!&@!!!!$)!!N!Z!!!*31!!!!%9h!*!\r%!8N!N!4&D`!%!!!"9`!!!'!!!!KF!!!F&(`)!UD3!!%!#*3Krm#3!'%!@)"L!!"\r)!!!"B!!!!(aJ"c9"JJ!B1!!!!i"L!!#3!!-!!$KJ!!")!!!FJ'%!@)##!!!iK!!\r%5!!!!B"L!!!iB`!%J!%!5$JK!%"m#!1Q6S!!)%9d!`!!!!&+!!!!%%9e!*!%!8X\r!!!!84A3$!!!!!6N!!!!S4A3$!!!!!6S!!!!m4A8!N!3"(!!!!%4&G!-!!!!"1J!\r!!%K&EJ`%!!!"@3!!!!b!!*!,J!!!B!#3"%9h!*!%!9F!N!4&D`!%!!!"@J!!!23\r!!!L@!!!Feh`)!UD6iIrmNm(rq*!!!3!)P#(rS*!!B3"iN!#"!(b$iJ!!J')!!%J\r!!!&J!!!!I'!(08'#!#Ji!!!$J')!!*!!!`!!1!$rrj!!!3"3J'%!H)!"!!!-\r!!%J!!)L!B3"m1*m!!$LJ!!!i`!!!5!!!!AaJ"c9"JJ!NJ!%!H*!!!3")1!$rrj!\r!!3"-J'%!5)!"!%b3!!-!!%J!!%b)(`!%I!!(G8'#!#5!!3"iN!!"!%!i!2rrN!!\r"!%5!B3"!J!%!4*!!!`!!5!!!))2I!35!!3"iN!!"!$L6`3!mJ'%!1)!"!$b3!!-\r!!)!"!'Ji)3"JI!J$TS2Krrb$`Iri6S!!)%9d!`!!!!%k!!!!(%9d!`!!!!&+!!!\r!)%9e!*!%!8X!!!!N4A3$!!!!!6N!!!!i4A8!N!3"%3!!!'K&EJ`%!!!"A!!!!!b\r!!*!,J!!!p"!!!!"&G`#3"!&D!*!%4@X!"!!!!8J!!!#)!!!)m!!!(Spm#!+QN!!\r"!!L8)IqJL!)!!(`!"h9!JJ!81!!!!*!!!J!!1!!!!CJ#!!#!!J!!,!!!!%'#!!b\r!BJ!!5!!!3)"L!!")!!!"B!!!!,"K!&!i!!!2X!%!8MKK!$K)!!!"B!!!!(aJ"c9\r"JJ!-1'!!!%J!!!b!B3"8N!"L!!#!!3"S1#%!B(`)!kC1J!!J4A-3!!!!!9i!!!!\r-4A-3!!!!!9d!!!!F4A-3!!!!!9i!!!!N4A-3!!!!!9d!!!!S4A-3!!!!!9d!!!!\rd4A3$!!!!!8S!!!!m4A8!N!3"A`!!!%"&G3#3"!&J!!!!@%9c%!!!!!&G!!!!G%9\rZ$!3!!!&R!!!!$)!!N!Z!!!#)!*!%4AF!N!3"5!#3"%9Z"3%!!!&U!!!!$2rrrm8\r!!#"N*@3Z*@3Z*@3Z*@3!4@X!"!!!!@X!!!&8!!!*5J!!)'4m#!+QNq(rr*2"rrL\r6SIrdNi(rm*!!!3!)P#(rX$Z$!!!lT!!!L!)!!(`!"h9!JJ!81!!!!*!!!J!!1!!\r!!CJ#!!#!!J!!+!!!!%##!-K)!!!"1m-!!*2"!$L!!3!iN!!"!$b!!3!m+!!!!%#\r#!"3iB!!b5!!!!@!!!!")!!#m1'%!2$L!!!3iS!!#5!!!!Aar'hP!JJ"8,"d!%%#\r!!"3iB!!@5!!!!@!!!!")!!#-1(`!!)##!!#!!3!m9!9'2S!"!$a8"SBqJ!%!2&3\r(aMk!!3!m9!J'2NJ!!!&J!!!!1'!!!%J!!&5!I`!!5!!!!@!!!!!iB`!"5!!!!@!\r!!!#3!')!!)"L!!#!R`!!5!!!!@!!!!!iI!!!J))!!$Lp!!")!!!"B!!!!$J!!!"\rmIH)8Q!2rrcKJ!!#!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr5$JIr`6S!!)%9c%!!\r!!!&T!!!!*%9c%!!!!!&S!!!!0%9c%!!!!!&T!!!!2%9c%!!!!!&S!!!!3%9e!*!\r%!8J!!!"-4A8!N!3"6J!!!("&G3#3"!&*!!!!L%9e!*!%!8i!!!#J4A3$!!!!!@S\r!!!#`4A8!N!3"E!!!!04&G3#3"!&2!!!!k%9e!*!%!@d!!!$d4A-3!!!!!@J!!!$\rm4A-3!!!!!@J!!!%!4A8!N!3"EJ!!!3K&Fa!!!!!"D!!!!44&G3#3"!&[!!!"(%9\rZ$!3!!!&c!!!!$)!!N!Z!!!&8)!!!!%9h!*!%!@X!N!4&EJ8"!!!"G!!!!"(rrrr\r$!!!MqQ9MD'mJ)#!*#5!J0bpeC(!!N!4&EJ8"!!!"G3!!!"2rrrr#!!!MqQ4TFf0\rKFQ3J)#!*)#!j,h9NF!#%4@i&!3!!!AB!!!!4rrrr`3!!)rTdD@eP)#!J#3NJ-cF\r[G@4`!'PZG89Z"3%!!!&h!!!!%[rrrm!!!#2kC'pYB@PZ)#!J#5!e-bpeC(!!!`"\r&EJ8"!!!"H!!!!",rrrqr!!!MqR0eER*`Bb!J)!Na-6%[G@4`!!E#4@i&!3!!!AN\r!!!!3rrrr[J!!)rTdCR4`)#!*#5!f15peC(!!4@i&!3!!!AS!!!!4rrrr[3!!)rT\rLD@CQ)#!J#3Ne-6)[G@4`!-1V#%9Z"3%!!!&l!!!!%2rrrl`!!#2kGfK[)#!J#3N\re-6-[G@4`!%9Z"3%!!!&m!!!!%IrrrlX!!#2kG'&XDb!J)!N*06%h,h9NF!"6!!"\r&EJ8"!!!"I3!!!"2rrrqk!!!MqQCdF#eNBA4K)#!*)$)`,h4MF!#J4@i&!3!!!Ai\r!!!!2rrrrZ3!!)rTQG(!J)!N*)$)a,h4MF!!!4@i&!3!!!Am!!!!4rrrrZ!!!)rT\rdC@aZCA3J)!NJ-M-[G'0`!*!%4@i&!3!!!B!!!!!3rrrrY`!!)rTcEA4`)#!*#5!\rb05pdBh!!4@i&!3!!!B%!!!!3rrrrYJ!!)rTdD@eP)#!*#5!c0bpdBh!!4@i&!3!\r!!B)!!!!4rrrrY3!!)rThD'pTFb!J#3NJ0$-[G'0`!*!%4@i&!3!!!B-!!!!5rrr\rrY!!!)rTNEfeKD@iJ#5!*)$8c,h4MF!#Vc%9Z"3%!!!'%!!!!%rrrrl-!!#2kD'p\rcG'jKE@9c)#!a-$%[G'0`!!"&EJ8"!!!"K3!!!"(rrrqb!!!MqQjZG(!J)#!*#6%\ra15pdBh!!N!4&EJ8"!!!"KJ!!!"(rrrqa!!!MqQCTEQGPFL!J#5!h15pdBh!!N!4\r&EJ8"!!!"K`!!!"$rrrq`!!!MqQjdF#!J)!N*-6)c,h4MF!"&EJ8"!!!"L!!!!"(\rrrrq[!!!MqR9eBh!J)#!*#68d-#pdBh!!Z+[-4@i&"!!!!BN!!!"BrrrrVJ!!)rS\r!N&K&GJ8!!!!"L!!!!&"&GJ8!!!!"K`!!!%a&GJ8!!!!"KJ!!!%K&GJ8!!!!"K3!\r!!%4&GJ8!!!!"K!!!!%"&GJ8!!!!"J`!!!$a&GJ8!!!!"JJ!!!$K&GJ8!!!!"J3!\r!!$4&GJ8!!!!"J!!!!$"&GJ8!!!!"I`!!!#a&GJ8!!!!"IJ!!!#K&GJ8!!!!"I3!\r!!#4&GJ8!!!!"I!!!!#"&GJ8!!!!"H`!!!"a&GJ8!!!!"HJ!!!"K&GJ8!!!!"H3!\r!!"4&GJ8!!!!"H!!!!""&GJ8!!!!"G`!!!!a&GJ8!!!!"GJ!!!!K&GJ8!!!!"G3!\r!!!4&GJ8!!!!"G!#3"%9V!!3!!!'f!!!!G!!!#Hi!!#D(I!J#TT!!!3!)P#(r`*!\r!B3"BJ!)!!#J!!!""JJ!JJ')!!$J!rrpm!`"!3B)!%)"L!!")!!!"B!!!!$J!!!#\r3!!)!!$KJ!!#!!J!!,!!!!%##!"#!!3"B,!!!!%'#!!JiB!!"N!"L!!#!!3")1#%\r!3(`)!kC1J!!J4A-3!!!!!C%!!!!34A-3!!!!!C%!!!!F4A-3!!!!!C%!!!!X4A8\r!N!3"Y`!!!$"&Fa!!!!!"X`!!!$a&Fa!!!!!"Y3!!!%4&Fa!!!!!"Y3!!!'"&EJ`\r%!!!"Z3!!!!b!!*!,J!!!G!#3"%9h!*!%!EB!N!4&D`!%!!!"ZJ!!!&3!!!S`!!!\rR'R`)!UD3!!%!#*3Krm#!!J!!+!!!!%'#!#L!BJ!!1!$rrh`$!%""JJ!BJ')!!%J\r!!!&J!!!!1!!!!*!!!J!!1!!!!*!!!J!!J!%!5$JK!%"m#!1Q6S!!)%9c%!!!!!'\r4!!!!$%9c%!!!!!'4!!!!'%9c%!!!!!'4!!!!+%9e!*!%!EX!!!!X4A-3!!!!!C%\r!!!!i4A-3!!!!!E8!!!"!4@i-"!!!!E`!!!!-J!#3#i!!!&3!N!4&G`#3"!'k!*!\r%4@i&!3!!!Ed!!!!1rrrrT!!!*j30,f9dBbpcCA*fD@0PF`!!4@i3!3!!!Ei!!!!\r#rrrrS`!!*j4b!()!4@i3!3!!!Em!!!!$rrrrSJ!!*j3M$3!!4@i3!3!!!F!!!!!\r$rrrrS3!!*j3J#3#)4@i3!3!!!F%!!!!$rrrrS!!!*j3[,!!!4@X!"!!!!F)!!!)\r-!!!+C!!!*j4m#!+Q[f(rl*!!!3!)P#(rB)2#!!#$SJ!!Ji)!!)!#!!!S!!!!3))\r!F$KJJ!!mJ("b1+!!!$M"!$Jii3!k1)4PCNJ!!!&J!!!!I'!(08##!$JiB3!qJ))\r!!%J!!!&J!!!!1'%!1%J!!!&J!!!!1))!!%J!!!&J!!!!N!"L!!!S!`!!3))!&$J\r!rrq3!!)!!$J!!!#3!!)!!)"L!!!i!2rrI!-!3%##!%b!BJ!!J!)!!&3!%$Tm!`!\rZ+!!!!%##!!`iB!!!5!!"1$Km!!#!SJ!!J))!!$J%!!'3!!)!!&5!%$TmK3!Z5!!\r!!@!!!!")!!!S1(`!!$L!!)#!SJ!!5!!!!@!!!!!S!`!!3))!$$KJ!!")!!$X1(`\r!!$L#!!")!!!"B!!!!(al'hP"JJ!-1!!!!*JE!!#)(!!!I!!(G8'#re`iI!!!1))\r!!%J!!!&J!!!!N!"p!!!S!`!!3B,r3$KJ!!!iJJ!!5!!!!@!!!!"mHaYj3B,r+$K\rl!!!iJJ!!5!!!!@!!!!#3!(d!$#J$!!""J[m-1)!!!)"p!!`i!`!"N!!G!!bBJ`!\r!1(X!!%J!!!&J!!!!N!"p!!L6h3!%1q!!!%J!!#JiB!!!1))!!%J!!!&J!!!!9q!\r31Raq!5iS!`!!1rm!!8'#!!`X(`!(3B$rf$KJ!!"Ai"!kI(i",MKp!!#!!3#S1#%\r!S(`)!kDlBIrX6S!!)%9d!`!!!!'d!!!!%%9d!`!!!!',!!!!&%9d!`!!!!'+!!!\r!'%9c%!!!!!'4!!!!(%9e!*!&)3!!!%"&G!-!!!!"[3!!!&4&G3#3"!($!!!!@%9\re!*!%!F3!!!"N4A-3!!!!!Ei!!!"X4A8!N!3"a3!!!("&Fa!!!!!"N3!!!(K&Fa!\r!!!!"N3!!!)K&Fa!!!!!"X`!!!*!!4A-3!!!!!C%!!!#84A3$!!!!!BN!!!#N4A-\r3!!!!!E-!!!#S4A3$!!!!!BN!!!$)4A-3!!!!!E-!!!$-4A-3!!!!!E-!!!$84A8\r!N!3"EJ!!!1"&Fa!!!!!"N3!!!24&G3#3"!('!!!!q%9c%!!!!!'r!!!"&%9e!*!\r%!FF!!!%B4A-3!!!!!F!!!!&!4A8!N!3"b!!!!84&Fa!!!!!"`!!!!9a&G3#3"!(\r)!!!"B%9c%!!!!!("!!!"G%9e!*!%!FF!!!&i4A8!N!3"b3!!!D4&Fa!!!!!"`!!\r!!F"&G3#3"!()!!!"a%9Z$!3!!!(1!!!!$)!!N!Z!!!)-+!!!!%9h!*!%!F)!N!4\r&D`!%!!!"c`!!!0`!!!Y+!!!X!A`)!UD6iIrmNm(rq*1Krr56JIr`N!!"!!L8)Iq\r`1m-!!$Z%!!!iB!!!5!!!!8J!!(!iIJ!!J*d!!%J!!!&J!!!!,!-!!%'#!$L$r3!\r%5!!!)$Kq!!#!R`!!5!!!!@!!!!!X!`!!3B)!'$[r!!5!(`!!+!!!!%##rpa)!!!\rN+"`!!%'#!#JiI!!!J*d!$%J!!!&J!!!!,!-!!%'#!"")!!!"I(dEH8##rib!!J!\r!,!!!!%##!!K)!!!"1(d!!)!"!&Ji)3"3I!J$TS2Krrb$`IriJk(rp)1"rr"1J!!\rJ4A8!N!3"YJ!!!#K&G3#3"!&(!!!!1%9e!*!%!8F!!!"B4A8!N!3"4`!!!)a&G3#\r3"!(#!!!!R%9c%!!!!!'e!!!!U%9e!*!%!ES!!!#d4@i-"!!!!G-!!!!-J!#3#i!\r!!0`J!!!!4AF!N!3"c`#3"%9V!!3!!!(8!!!!P!!!#rB!!#ffI!J#TT2Krrb6`Ir\riNk(rp*!!!3!)P#(rX$ZM!!!la!!!1'!!!%J!!!&)!!!`J"m!#(`G!!"!JJ!N+"i\r!!%'#!#JiIJ!!J*m!$%J!!!&J!!!!,!-!!%'#!"")!!!"I(mEH8##rmb!!J!!,!!\r!!%##!!K)!!!"1(m!!)!"!&Ji)3"3I!J$TS2Krrb$`IriJk(rp%k!!#"&G3#3"!'\rf!!!!*%9e!*!%!8F!!!")4A8!N!3"`J!!!&K&Fa!!!!!"Y3!!!'4&G3#3"!'k!!!\r!F%9Z$!3!!!(@!!!!$)!!N!Z!!!#8'!!!!%9h!*!%!G3!N!4&EK!"!!!"e`!!!!6\rrrrqG!!!Z`A4MF!"&EK!"!!!"f!!!!!6rrrqF!!!Zh(9NF!"&EK!"!!!"h`!!!!6\rrrrqC!!![Ch9NF!"&EK!"!!!"i!!!!!6rrrqB!!![Ch4MF!"&D`!%!!!"i3!!!03\r!!!aX!!![Ch`)!UD6iIrmNm(rq*!!!3!)P#(r`$[$!!#!BJ!!J!)!!"`!!!ari`)\r81(i!!$L#!!")!!!"B!!!!#`$!!"!JJ!B1!)!!*!!(`!!1!!!%C!!(`!)5!!!4$K\rq!!!iJJ!!5!!!!@!!!!!X!`!!3))!'$J#!!#3!"m!!$J!!!D3!"m!#%J!!"Ji!!!\rVJ')!!*!!!`!!1'!!!%J!!#`i!J!!N!!I!!5!BJ!!1)-!!6KJ!!Tm""[@I!!CeR`\r!)!!)!!$Kr!!#!!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G!-!!!!"f3!!!"K\r&Fa!!!!!"hJ!!!"a&Fa!!!!!"h`!!!#a&G3#3"!&(!!!!-%9c%!!!!!(B!!!!3%9\rc%!!!!!(J!!!!@%9e!*!%!8F!!!"F4A-3!!!!!GF!!!"X4A3$!!!!!H)!!!#%4A-\r3!!!!!6X!!!#84A-3!!!!!Gi!!!#F4A-3!!!!!Gi!!!#d4@i-"!!!!H3!!!!-J!#\r3#i!!!033!!!!4AF!N!3"i3#3"%9V!!3!!!(P!!!!N!!!!!c-!!!a'j2Krrb!JJ!\r!J!)!!"`!!!arj!)8,!-!%8##!"Ji!J!!N!!I!!!i!!!4N!!I!!K)!!!d,!-!"N#\r#!"Ji!J!!N!!I!!!i!!!'N!!I!!K)!!!B1!!!+i##!!#3!!3!!$KJ!!")!!!X1!)\r!!*!!(`!%J))!!$LN!!%iJ!!+I!8MeR`!)GCm!#K3N!!#!!!iI`!!Jq(rr%k!!#"\r&G!-!!!!"f3!!!!4&Fa!!!!!"hJ!!!!K&Fa!!!!!"f!!!!"a&Fa!!!!!"e`!!!$K\r&G!-!!!!"iJ!!!&"&Fa!!!!!"1`!!!'"&Fa!!!!!"hJ!!!'K&Fa!!!!!"hJ!!!)"\r&E"!%!!!"hJ!!!!3!!!!$!!![3d9X"33!!!(C!!!!H2rrrjX!!#m44@`3"!!!!E8\r!!!!%!!!!!`!!*QP&E!8%!!!"Y!!!!#$rrrqP!!!Q5N9X%!3!!!'c!!!!"!!!!!-\r!!#Bb4@`3"!!!!C%!!!!%rrrrU`!!*KG&E!8%!!!"L`!!!"$rrrqX!!!Pqd9X"3%\r!!!'+!!!!J2rrrkd!!#AF4@`3!3!!!@N!!!!"!!!!"`!!)'4&E"!%!!!"D!!!!!3\r!!!"Q!!!JC%9X%!%!!!&H!!!!!3!!!!F!!"k24@`3"!!!!9d!!!!%!!!!!`!!(Sp\r&E!8%!!!"2!!!!"6rrrr,!!!3"%9X"33!!!%k!!!"&2rrrpF!!!qI4@d&"!!!!6N\r!!!!%!!!!!`!!"SY&E"!%!!!!!`!!!!6rN!3!!!Hq4@`3"!!!!!)!!!!%!!!!C`!\r!"jP&E`S%!!!"jJ!!!!L!!*!24AB!N!3"j3#3"%9f$`!!!!(R!!!!"%9[#J3!!!(\rS!!!!#)!!N!p&GJ#3"!(K!*!%4AB2!!!!!HF!!!!%4@m+"!!!!HN!!!!)J!#3$d9\rf!*!%!G3!N!4&GJm!!!!"j`!!!!4&E`S%!!!"kJ!!!!L!!*!24AB!N!3"c`#3"%9\rf$`!!!!(R!!!!"%9[#J3!!!(V!!!!#)!!N!p&GJ#3"!(#!*!%4AB2!!!!!HF!!!!\r%4@m+"!!!!H`!!!!)J!#3$d9f!*!%!ES!N!4&GJm!!!!"j`!!!!4&E`S%!!!"l3!\r!!!L!!*!24AB!N!3"YJ#3"%9f$`!!!!(R!!!!"%9[#J3!!!(Z!!!!#)!!N!p&GJ#\r3"!&V!*!%4AB2!!!!!HF!!!!%4@m+"!!!!Hm!!!!)J!#3$d9f!*!%!8J!N!4&GJm\r!!!!"j`!!!!4&E`S%!!!"m!!!!!L!!*!24AB!N!3"@J#3"%9f$`!!!!(R!!!!"%9\r[#J3!!!(a!!!!#)!!N!p&GJ#3"!&A!*!%4AB2!!!!!HF!!!!%4@m+"!!!!I)!!!!\r)J!#3$d9f!*!%!8N!N!4&GJm!!!!"j`!!!!4&E`S%!!!"m`!!!!L!!*!24AB!N!3\r"43#3"%9f$`!!!!(R!!!!"%9Z#J3!!!%i!!!!#)!!N!p&GJ#3"!%e!*!%4AB2!!!\r!!HF!!!!%4@m+"!!!!I3!!!!)J!#3$d9f!*!%!6-!N!4&GJm!!!!"j`!!!!4&E`S\r%!!!"p3!!!!L!!*!24AB!N!3"*!#3"%9f$`!!!!(R!!!!"%9[#J3!!!(f!!!!#)!\r!N!p&GJ#3"!%L!*!%4AB2!!!!!HF!!!!%4@m+"!!!!IF!!!!)J!#3$d9f!*!%!5!\r!N!4&GJm!!!!"j`!!!!4&E`S%!!!"q!!!!!L!!*!24AB!N!3"(!#3"%9f$`!!!!(\rR!!!!"%9[#J3!!!(j!!!!#)!!N!p&GJ#3"!%4!*!%4AB2!!!!!HF!!!!%4@m+"!!\r!!IS!!!!)J!#3$d9f!*!%!3m!N!4&GJm!!!!"j`!!!!4&E`S%!!!"q`!!!!L!!*!\r24AB!N!3""!#3"%9f$`!!!!(R!!!!"%9[#J3!!!(m!!!!#)!!N!p&GJ#3"!%#!*!\r%4AB2!!!!!HF!!!!%4@m+"!!!!Id!!!!)J!#3$d9f!*!&*3#3"%9f$`!!!!(R!!!\r!"%9[#J3!!!(q!!!!#)!!N!p&GJ#3"4m!N!4&GJm!!!!"j`!!!!4&E`S%!!!"r`!\r!!!L!!*!24AB!N!80!*!%4AB2!!!!!HF!!!!%4@m+"!!!!J#3"!L!!*!24AB!N!8\r+!*!%4AB2!!!!!HF!!!!%4@m+"!!!!J%!!!!)J!#3$d9f!*!&#!#3"%9f$`!!!!(\rR!!!!"%9[#J3!!!)#!!!!#)!!N!p&GJ#3"38!N!4&GJm!!!!"j`!!!!4&E`-%!!!\r"iJ!!!!5!!*!,4AB&!!!!!H)!N!4&EJ-%!!!"f3!!!!5!!*!,4AB&!!!!!GN!N!4\r&EJ-%!!!"Y!!!!!5!!*!,4AB&!!!!!E3!N!4&EJ-%!!!"L`!!!!5!!*!,4AB&!!!\r!!BX!N!4&EJ-%!!!"LJ!!!!5!!*!,4AB&!!!!!BS!N!4&EJ-%!!!"L3!!!!5!!*!\r,4AB&!!!!!BN!N!4&EJ-%!!!"[3!!!!5!!*!,4AB&!!!!!Ed!N!4&EJ-%!!!"DJ!\r!!!5!!*!,4AB&!!!!!@S!N!4&EJ-%!!!"23!!!!5!!*!,4AB&!!!!!6d!N!4&EJ-\r%!!!"2!!!!!5!!*!,4AB&!!!!!6`!N!4&E`-%!!!"4J!!!!5!!*!,4AB&!!!!!8B\r!N!4&E`-%!!!"0`!!!!5!!*!,4AB&!!!!!6F!N!4&EJ-%!!!"1J!!!!5!!*!,4AB\r&!!!!!6S!N!4&E`-%!!!"5J!!!!5!!*!,4AB&!!!!!8S!N!4&E`-%!!!"13!!!!5\r!!*!,4AB&!!!!!6N!N!4&EJ-%!!!"4!!!!!5!!*!,4AB&!!!!!83!N!4&E`m%!!!\r"j`#3")!!N!G&D!!!8eP05!!!$5`!!!"T!*!9!3#3"JQ@!!!!%!!!#CN!!!"%!!!\r*kJ!!!%`!!!S"rj!%!!!+%!!!!!%!N!B+KJ!!!!J!!!Ui!!!!%!!!#Y$rN!3!!!V\rL!!%!!!!*!!!!#`%!N!3$!!%!N!B,"`!!!"`!!!XL!!!!-!!!#dF!!!")!!!,PJ!\r!!%`!!!Zbrj!%!!!-$J!#!!!!#3!!!!X"!*!%(`!!!!X!!!!(!*!&(J#3#!a&!!!\r!*!!!$'X!!!!m!!!-J`!!!%`!!!c2!!!!A!!!$2$rN!3!!!c`!!3!!!!3rrrrrJ%\r!N!3H!!!!%Irrrrd"!*!%(`!!!")!!!!$!!-!!!!i!!!!%rrrrr`!!`!!!$`!N!J\r0*`!!!#J!!!eD!!!!0!!!$A`!!!"3!!!0X`!!!&3!!!h*!!!!A!!!$H)!!!"S!!!\r1"`!!!'`!!!iH!!!!P!!!$S`!!!#N!!!1X[q3"!!!$V)!"!!!!"$rrrrq!3#3""d\r!!!!4rrrrr3%!N!3H!!!!)J!!!!-!!`!!!$J!!!!M!!!!"J#3"4m!!3#3"Jpk!!!\r!4!!!%0J!!!"F!!!4GJ!!!)3!!"'d!!!!P!!!%Gm!!!#N!!!5!3!!!+`!!")r!!!\r![!!!%U%!!!$3!!!5T2q3"!!!%V!!"`!!!#S!!!!$!3#3""X!!!!V!!!!!`%!N!3\rF!!!!,!!!!!X"!*!%(3!!!#d!!!!$!3#3""i!!!!Z!!!!#`#3"4m!!!![!!!!!3!\r$!!!!1!!!!$$rrrrl!!-!!!%i!!%!N!B6#3!!!"!!!"0X!!!!(!!!%j!!!!!!5!!\r!%q%!!!"3!!!8*`!!!&`!!"4,!!!!L!!!&*`!!!#3!!!!&1F!!!#F!!!9#`!!!-J\r!!"9F!!!!d!!!&A$rN!3!!"9l!!-!!!!Y!!!!!`!$!!!!1!!!!#`!!!!,!!-!!!!\rm!!!!,J!!!!X!N!8I!!%!N!B9S`!!!#3!!"B&!!!!,!!!&T3!!!"!!!!A63!!!&J\r!!"HY!!!!C!!!&mF!!!"`!!!AjJ!!!(`!!"Iq!!!!L!!!''%!!!#8!!!BH3!!!+!\r!!"L4!!!![!!!'4`!!!$3!!!CXJ!!!0`!!"R,!!!!k!!!'HS!!!$`!!!D!Iq3"!!\r!'Jd!!`!!!3`!!!"Q!3-!!!"B!!!"$3!!!!X!N!8H!!!!,J!!!!X!N!8I!!%!N!B\rD+`!!!!`!!"S`!!!!'!!!'Q`!!!!J!!!E6!!!!$J!!"Yj!!!!3!!!'j%!!!"-!!!\rEVrq3"!!!'p)!!!!"!*!'(+J!!!!S!!!Fj`!!!$!!!"f6rj!%!!!H!`!%!!!"%J!\r!!'B"!`!!!&J!!!%6rrrrf!%$!!!!A!!!!4Rrrrrf!3-!!!"J!!!"'J!!!'B"!`!\r!!'3!!3#3"Kik!!!!)!!!(S8!!!!S!!!I#2q3"!!!(fB!!`!!!4J!!!!#!3-!!!"\rB!!!"(3!!!'B"!`!!!&`!!!%H!!!!#`!$!!!!1!!"!*!'(k8!!!!J!!!Ij3!!!#J\r!!#"jrj!%!!!Je!!#!!!"'IrrrrB"!`!!!&J!!!%D!!!!CJ%$!!!!A!!"!*!')8B\r!!!!S!!!KK3!!!$!!!#)Xrj!%!!!LQJ!%!!!"'!!!!!)"!`!!!&J!!!%6rrrrf!%\r$!!!!A!!!!4Rrrrrf!3-!!!"J!!!"'J!!!'B"!`!!!'3!!3#3"L-4!!!!+!!!)e!\r!!!!`!!!Mp2q3"!!!*&`!"!!!!4)!!!"Q!3-!!!"B!!!"*Irrrp8"!`!!!&`!!!%\rarrrrpJ%$!!!!B!!!!4S!!!"Q!3-!!!"N!!%!N!BNe!!!!#J!!#86!!!!-!!!*EM\rrN!3!!#BL!!3!!!%5!!!!CJ%$!!!!@!!!!5Arrrr9!3-!!!"F!!!"-IrrrrB"!`!\r!!'!!!!%D!!!!CJ%$!!!!C!#3#!AV!!!!#!!!"IRrN!3!!!Aj!!%!!!%f!!!!D!%\r!N!3%!!%!N!B423!!!#J!!"&B!!!!1!!!%Bm!!!"F!!!4e3!!!(3!!")D!!!!K!!\r!%Nd!!!#B!!!5E3!!!+J!!"+D!!!!X!!!%V`!!!$-!!!5d`!!!13!!",M!!!!p!!\r!%dm!!!&-!!!68`!!!D!!!"1B!!!"X!!!%p-!!!(!!!!8$3!!!G!!!"4(!!!"i!!\r!&)-!!!(`!!!8[3!!!J!!!"6b!!!#%!!!&5`!!!)J!!!9A`!!!M!!!"@[!!!#2!!\r!&Fi!!!*-!!!@1J!!!R!!!"Cq!!!#I!!!&TB!!!+%!!!@cJ!!!VJ!!"Emrj!%!!!\rA*!!%!!!![J!!!'B"!*!%'3!!!9$rrrr(!!-!!!!m!!!"8`!!!!-!N!8I!!!"0J!\r!!!B!!`!!!%!!!3#3"KGM!!!!+!!!&i!!!!!i!!!AS!!!!%J!!"I-!!!!8!!!&qi\r!!!"X!!!B"3!!!+3!!"K)!!!!Y!!!',8!!!%-!!!BZ3!!!9J!!"Mr!!!"D!!!'6N\r!!!&i!!!CG3!!!BJ!!"Q[!!!"Q!!!'H3!!!'S!!!D(J!!!EJ!!"T4!!!"b!!!'VN\r!!!(X!!!Dr3!!!IJ!!"YC!!!#"!!!'h%!!!))!!!EM3!!!K!!!"Z[!!!#-!!!'ph\rrN!3!!"`4!!3!!!&9!!!!CJ%!N!3C!!!"'!!!!!)!N!8D!!!"8`!!!!-!N!8I!!!\r"0J!!!!B!!`!!!$J!!3#3"K`m!!!!&!!!($m!!!!N!!!FA`!!!$J!!"b-rj!%!!!\rFe!!"!!!"@2rrrmF"!`!!!&J!!3#3"Kcr!!!!*!!!(3)!!!!d!!!G)J!!!&J!!"e\rM!!!!G!!!(CN!!!#8!!!Gj!!!!+!!!"i"!!!!`!!!(L6rN!3!!"j+!!%!!!&E!!!\r!CJ%$!!!!I!!"!*!'(U!!!!!-!!!HS`!!!#J!!"kp!!!!0!!!(X`!!!!m!!!I!3!\r!!&J!!"p)!!!!D!!!(fm!!!"`!!!IJIq3"!!!(kJ!!3!!!@(rrrr'!!-!!!!i!!%\r!N!BJN!!!!!!`!!!JN`!!!%!!!##e!!!!6!!!)2)!!!"X!!!K9J!!!(`!!#&i!!!\r!P!!!)G`!!!#F!!!L#J!!!+`!!#)T!!!!j!!!)a3!!!%)!!!M3`!!!4!!!#0Urj!\r%!!!MeJ!%!!!"F!!!!'B"!*!%(!!!!A%!!!!$!3#3""d!!!&brrrra!#3"4m!!!&\r3rrrra`!$!!!!2!#3##DP!!!!(!!!*UJ!!!!X!!!Qd`!!!$J!!#ES!!!!C!!!*aI\rrN!3!!#FA!!%!!!'i!!!!!`%$!!!!@!#3##FX!!!!$!!!*bm!!!!S!!!R@J!!!$`\r!!#H$!!!!4!!!*j(rN!3!!#H4!!!!!3#3"LHc!!!!+!!!*r`!!!"3!!!SJ`!!!'3\r!!#Lp!!!!K!!!+2m!!!#8!!!T-`!!!+3!!#P4!!!![!!!+@`!!!$%!!!TPJ!!!1`\r!!#R$!!!"#!!!+HX!!!%3!!!U$`!!!5J!!#Sc!!!"-!!!+M`!!!%m!!!UA`!!!9J\r!!#UI!!!"F!!!+Y!!!!'-!!!V#J!!!D3!!#XK!!!"[!!!+i`!!!(J!!!Va3!!!HJ\r!!#[2rj!%!!!VrJ!$!!!"Lrrrrjm!!`!!!$J!!!(-!!!!!`#3"4m!!!(0!!!!CJ#\r3"4X!!3#3"La(!!!!+!!!,(-!!!!X!!!XK3!!!$!!!#bN!!!!5!!!,0X!!!"3!!!\rY!`!!!'J!!#dI!!!!H!!!,6-!!!"m!!!Y53!!!*`!!#f!!!!!U!!!,B8!!!#d!!!\rYPJ!!!,J!!#fRrj!%!!!YX`!%!!!![J!!!'B"!*!%(J!!!G!!!!"Q!3#3""`!!!(\r4!!!!C`#3"4m!!!(5rrrrRJ#3"4d!!3#3"Lhc!!!!*!!!,Jm!!!!S!!!Z)3!!!#`\r!!#iq!!!!@!!!,SB!!!"N!!!ZN!!!!!"`!!!ZS3!!!(3!!#kbrj!%!!!Z[J!$!!!\r"e3!!!!-"!*!%(3!!!G!!!!"Q!3#3""i!!!(5rrrrRJ#3"4m!!3#3"LqE!!!!-!!\r!,pF!!!"!!!![q3!!!&3!!$!`!!!!E!!!-&3!!!#!!!!`M`!!!*3!!$#lrj!%!!!\ra'!!#!!!![J!!!'B"!*!%(J!!!H2rrrqA!*!&(`!"!*!'-8N!!!!%!!!aB`!!!"`\r!!$'M!!!!-!!!-GS!!!!i!!!aq3!!!%`!!$)d!!!!B!!!-Q$rN!3!!$+p!!)!!!(\r3!!!!!`%!N!3$!!!"irrrrjF!N!8I!!$rN!3!!3!!!'S!!2rrrri!!3!!!!X!!2r\rrrrd!!3!!!!-!![rrrr`!!!!8!!!!%!!*!!!!&3!!!!X!N!F@!!!!#`!!!!)!!!!\rA!!!!#`!!!!3!!!!B!!!!#`!!!!B!!!!C!!!!"J!!!!J!!!!D!!!!"J!!!!N!!!!\rE!!!!#`!!!!S!!!!F!!!!#`!!!!`!!!!G!!!!#`!!!!i!!IrrrrF!!!!#!!!!!J!\r!!!X!![rrrrJ!!!!e!!!!#!!$!!!!02rrrrN!N!Ff!!!!#`!!!!3!!!!hrrrrp`!\r!!!B!!2rrrrN!!IrrrrJ!![rrrr-!!!"%!!!!&!!(!!!!43!!!!)!N!Fr!!!!"`!\r!!!3!!!"'!!!!"`!!!!8!!!"(!!!!#J!!!!B!!!")rj!%!!!!#!!!!%!!!!!#!!!\r!$!!!!%N!!!!#!!!!%!!"rrrrp!!!!"3!!!!8rrrrm`!#rrrrp3!!!$X!!!!J!!J\r!!!!m!!!!#J#3"cd!!!!(!!!!!J!!!$i!!!!'!!!!!`!!!$m!!!!#!!!!"!!!!%!\r!!!!'!!!!#!!!!%%!!!!'!!!!#3!!!%)!!!!+!!!!#J!!!%2rrrrd!!!!$!!!rrr\rrpJ!"rrrrp3!#rrrrqJ!!!$-!!!!b!"%!!!!drrrrq3#3"cB!!!!,!!!!"!!!!$J\r!!!!,!!!!"J!!!$N!!!"Q!!!!#!!!!$Vrrrrf!!!!$!!!!%S!!!!,!!!!%!!!!%X\r!!!"V!!!!%J!!!%`!!!!,!!!!&J!!!%d!!!!,!!!!'!!!!%i!!!!(!!!!'J!!!%m\r!!!!(!!!!'`!!!&!!!!"Q!!!!(!!!!&%!!!"Q!!!!)!!!!&)!!!!$!!!!*!!!!&-\r!!!!$!!!!+!!!!&3!!!!,!!!!,!!!!&8!!!!$!!!!,J!#rrrrm!!!!'3!!!!%!!)\r!!!"P!!!!#`#3"fB!!!!,!!!!!J!#rrrrm3!!!&m!!!!3!!8!!!"J!!!!!J#3"f%\r!!!!#!!!!"!!!!')!!!!+!!!!#!!!!'2rrrr`!!!!#J!!!'F!!!!,!!!!$J!#rrr\rrmJ!!!&F!!!"3!"J!!!!drrrrq3#3"cB!!!!,!!!!"!!!!$J!!!!,!!!!"J!!!$N\r!!!"Q!!!!#!!!!$Vrrrrf!!!!$!!!!%S!!!!,!!!!%!!!!%X!!!"V!!!!%J!!!%`\r!!!!,!!!!&J!!!&J!!!!,!!!!'!!!!&N!!!!(!!!!'J!!!&S!!!!(!!!!'`!!!&X\r!!!!,!!!!(!!!!&`!!!!(!!!!(J!!!&d!!!!(!!!!(`!!!&lrrrra!!!!)!!!!'J\r!!!!$!!!!-!!!!'N!!!!+!!!!0!!!!'S!!!!$!!!!0J!!!'X!!!!$!!!!1J!!!'`\r!!!!+!!!!2J!!!'d!!!!$!!!!3!!!!'i!!!!$!!!!4!!!!'m!!!!#!!!!5!!!!(!\r!!!!#!!!!6!!"rrrrlJ!!!#!!!!!%!!!!!`!#rrrrl`!!!()!!!"k!#!!!!!drrr\rrq3#3"cB!!!!,!!!!"!!!!$J!!!!,!!!!"J!!!$N!!!"Q!!!!#!!!!$Vrrrrf!!!\r!$!!!!%S!!!!,!!!!%!!!!%X!!!"V!!!!%J!!!%`!!!!,!!!!&J!!!(-!!!!$!!!\r!'!!!!(3!!!!,!!!!(!!!!(8!!!!#!!!!(J!!!(B!!!!#!!!!)J!!!(F!!!!,!!!\r!*J!!!(J!!!!+!!!!+!!!!(N!!!!+!!!!+J!!!(S!!!!+!!!!,!!!!(X!!!!+!!!\r!,J!!!(`!!!!#!!!!-!!!!(d!!!!#!!!!0!!!!(i!!!!+!!!!1!!!!(m!!!!#!!!\r!1J!!!)!!!!!+!!!!2J!!!)%!!!!+!!!!3!!!!))!!!!,!!!!3J!!!)-!!!!,!!!\r!4!!!!)3!!!!,!!!!4J!!!)8!!!!#!!!!5!!!!)B!!!!,!!!!6!!!!)F!!!!#!!!\r!6J!!!)J!!!!#!!!!8J!!!)N!!!!#!!!!9J!!!)VrrrrZ!!!!@J!#rrrrl3!!!)`\r!!!!d!")!!!!drrrrq3#3"cB!!!!,!!!!"!!!!$J!!!!,!!!!"J!!!$N!!!"Q!!!\r!#!!!!$Vrrrrf!!!!$!!!!%S!!!!,!!!!%!!!!%X!!!"V!!!!%J!!!%`!!!!,!!!\r!&J!!!)d!!!!,!!!!'!!!!)i!!!!,!!!!'J!!!)m!!!!,!!!!(!!!!*!!!!!!"`!\r!!"i!!!#4!!!!"`!!!"m!!!#5!!!!!`!!!#!!!!#6!!!!!`!!!#3!!!#8!!!!!`!\r!!#J!!!#9!!!!!`!!!#`!!!"S!!!!!`!!!$!!![rrrq`!!!#A!!!!*!!-!!!!02r\rrrrN!N!Ff!!!!#`!!!!3!!!!i!!!!#`!!!!B!!!!j!!!!CJ!!!!J!!!!krrrrpJ!\r!!!`!!!"+!!!!#`!!!"!!!!",!!!!D`!!!")!!!"-!!!!#`!!!"B!!!#B!!!!#`!\r!!"J!!!#C!!!!#`!!!"S!!!#D!!!!D`!!!"`!!!#E!!!!!`!!!#!!![rrrqX!!!#\rG!!!!0!!3!!!!02rrrrN!N!Ff!!!!#`!!!!3!!!!i!!!!#`!!!!B!!!!j!!!!CJ!\r!!!J!!!!krrrrpJ!!!!`!!!"+!!!!#`!!!"!!!!",!!!!D`!!!")!!!"-!!!!#`!\r!!"B!!!#H!!!!#`!!!"J!!!#I!!!!#`!!!"S!!!#J!!!!D`!!!"`!!!#K!!!!D`!\r!!#!!!!#L!!!!!`!!!#3!!!#M!!!!!`!!!#J!!!#N!!!!!`!!!#`!!!"S!!!!!`!\r!!$!!![rrrqS!!!#Q!!!!0!!4!!!!02rrrrN!N!Ff!!!!#`!!!!3!!!!i!!!!#`!\r!!!B!!!!j!!!!CJ!!!!J!!!!krrrrpJ!!!!`!!!"+!!!!#`!!!"!!!!",!!!!D`!\r!!")!!!"-!!!!#`!!!"B!!!#R!!!!#`!!!"J!!!#S!!!!#`!!!"S!!!#T!!!!!`!\r!!"`!!!#U!!!!#`!!!#!!!!#V!!!!#`!!!#)!!!#X!!!!!`!!!#3!!!#Y!!!!!`!\r!!#J!!!#Z!!!!!`!!!#`!!!#[!!!!!`!!!$!!![rrrqN!!!#a!!!!1J!4!!!!02r\rrrrN!N!Ff!!!!#`!!!!3!!!!i!!!!#`!!!!B!!!!j!!!!CJ!!!!J!!!!krrrrpJ!\r!!!`!!!"+!!!!#`!!!"!!!!",!!!!D`!!!")!!!"-!!!!#`!!!"B!!!#M!!!!!`!\r!!"J!!!#b!!!!D`!!!"`!!!#N!!!!!`!!!#!!!!#c!!!!!`!!!#3!!!#d!!!!!`!\r!!#J!!!#e!!!!!`!!!#`!!!#f!!!!!`!!!$!!!!#h!!!!#`!!!$3!!!#i!!!!!`!\r!!$B!![rrrqB!!!#m!!!!4J!$!!!!,!!!!!X!N!Hp!!!!!`!!!!)!!!#q!!!!!3!\r!!!B!!2rrrqF!!IrrrqB!!Irrrq%!!!!'!!!!!J!!!!X!![rrrq)!!!$)!!!!%!!\r'!!!!b3!!!!X!N!I+rrrri3!!!!)!!!$,!!!!"`!!!!J!!!$-!!!!"`!!!!N!!!$\r0!!!!#`!!!!S!!!$1!!!!!`!!!!`!![rrrq-!!!$&!!!!E!!F!!!!02rrrrN!N!F\rf!!!!#`!!!!3!!!!i!!!!#`!!!!B!!!!j!!!!CJ!!!!J!!!!krrrrpJ!!!!`!!!"\r+!!!!#`!!!"!!!!",!!!!D`!!!")!!!"-!!!!#`!!!"B!!!"B!!!!#`!!!"J!!!"\rC!!!!"`!!!"S!!!"D!!!!"`!!!"X!!!"E!!!!#`!!!"`!!!"F!!!!"`!!!"i!!!#\r4!!!!"`!!!"m!!!"Hrrrrm3!!!#!!!!"S!!!!!`!!!$!!!!"T!!!!#J!!!$3!!!"\rU!!!!!`!!!$B!!!"V!!!!!`!!!$S!!!"X!!!!#J!!!$i!!!"Y!!!!!`!!!%!!!!"\rZ!!!!!`!!!%3!!!"[!!!!!J!!!%J!!!"`!!!!!J!!!%`!!!$'!!!!!J!!!&!!!!$\r(rrrriJ!!!&3!!!$2!!!!!`!!!'3!!!$3!!!!!`!!!'J!![rrrpi!!!$@!!!!#!!\r%!!!!e`!!!!X!N!IB!!!!#`!!!!)!!!$C!!!!#`!!!!3!!!$D!!!!#`!!!!B!![r\rrrpm!!!$8!!!!%!!%!!!!eIrrrpi!N!IE!!!!#J!!!!J!!!$Frrrrm!!!!!S!!!$\rG!!!!#`!!!!i!!Irrrpd!!!!5!!!!!J!!!!X!![rrrp`!!!$N!!!!%!!'!!!!jIr\rrrr!!N!IQ!!!!!`!!!!3!!!$R!!!!"`!!!!J!!!$S!!!!"`!!!!N!!!$T!!!!#`!\r!!!S!!!$U!!!!!`!!!!`!![rrrq!!!!$5!!!!D!!A!!!!02rrrrN!N!Ff!!!!#`!\r!!!3!!!!i!!!!#`!!!!B!!!!j!!!!CJ!!!!J!!!!krrrrpJ!!!!`!!!"+!!!!#`!\r!!"!!!!",!!!!D`!!!")!!!"-!!!!#`!!!"B!!!"B!!!!#`!!!"J!!!"C!!!!"`!\r!!"S!!!"D!!!!"`!!!"X!!!"E!!!!#`!!!"`!!!"F!!!!"`!!!"i!!!#4!!!!"`!\r!!"m!!!$6rrrrh`!!!#!!!!$H!!!!!`!!!$!!!!$I!!!!#J!!!$3!!!#0rrrrh3!\r!!$B!!!$J!!!!!J!!!%J!!!$K!!!!!J!!!%`!!!$L!!!!!J!!!&!!!!$Mrrrrh!!\r!!&3!!!$V!!!!!`!!!'3!![rrrq3!!!$$!!!!E!!#!!!!a2rrrq-!N!I4rrrri!#\r3"[rrrq8!!Irrrq3!!IrrrpS!!!!-!!!!!J!!!!X!![rrrpX!!!$[!!!!%!!#!!!\r!m!!!!!-!N!IarrrrfJ!!!!3!![rrrqJ!!!#k!!!!6!!5!!!!02rrrrN!N!Ff!!!\r!#`!!!!3!!!!i!!!!#`!!!!B!!!!j!!!!CJ!!!!J!!!!krrrrpJ!!!!`!!!"+!!!\r!#`!!!"!!!!",!!!!D`!!!")!!!"-!!!!#`!!!"B!!!#lrrrrj`!!!"J!!!#r!!!\r!!`!!!"`!!!$!!!!!!`!!!#!!!!$"!!!!!`!!!#3!!!$#rrrrj3!!!#J!!!$Xrrr\rrj3!!!#`!!!$Y!!!!!`!!!$!!!!$Zrrrrf`!!!$3!!!$b!!!!CJ!!!%3!!!$c!!!\r!!`!!!%J!![rrrpN!!!$e!!!!4!!6!!!!02rrrrN!N!Ff!!!!#`!!!!3!!!!i!!!\r!#`!!!!B!!!!j!!!!CJ!!!!J!!!!krrrrpJ!!!!`!!!"+!!!!#`!!!"!!!!",!!!\r!D`!!!")!!!"-!!!!#`!!!"B!!!$f!!!!!`!!!"J!!!$h!!!!!`!!!"`!!!$i!!!\r!CJ!!!#!!!!$j!!!!!`!!!#3!!!$k!!!!!`!!!#J!!!$l!!!!!`!!!#`!!!$m!!!\r!!`!!!$!!!!$p!!!!!`!!!$3!!!$q!!!!!`!!!$J!!!$r!!!!!`!!!$`!!!%!N!3\r$!!!!3!!#rrrrq`!!!$%!!!"k!!S!!!!brrrrqJ#3"eErrrrb!*!(FIrrrqm!N!H\r,rrrrl3#3"jErrrrX!*!(R2rrrqX!N!HPrrrrkJ#3"l$rrrrT!*!(ZIrrrqJ!N!I\rdrrrrf3#3"3(rrrr@!!!!%!!!!!3!!!!#!!,rrrrA!!!"&!!!!43!"!!!!48!!!!\r$!*!'!4B!!!!3!!!!"!!!!4F!!!!(!!!"!`!!!4Mrrrr@!!!""!!!rrrrf!!"rrr\rre`!"rrrrdJ!!!"!!!!!%!!!!!J!"rrrrd!!!!"i!!!!"!!!!"`!"rrrrc`!!!"i\r!!!!"!!!!"`!#rrrrd3!!!5S!!!!m!!)!!!%Vrrrrd!#3"J%Xrrrrc`!!!"i!!Ir\rrrmd!!!$r!!!!!3!!!!F!![rrrmi!!!%Z!!!"!J!#!!!",`!!!!S!N!B"-2rrrmd\r!!!!#!!,rrrr6!!!"+!!!!3)!!`!!!4Mrrrr5!*!'!5Rrrrr4!*!'!5hrrrr1!*!\r&![rrrp3!!!%Q!!!#"J!%!!!"&3!!!!-!N!B"&J!!!"!!!!!%!!!"&`!!!!F!!!%\r$!!!"*rrrrp-!!!%%!!$rrrr9!!(rrrr8!!(rrrr-!!!!"!!!!!3!!!"Q!!$rrrr\r+!!%!!!!#!!(rrrr,!!!!&!!!!!6rrrr+!!,rrrr*!!!"2J!!!"3!"3!!!6m!!!"\rQ!*!'!8!!!!"R!!!!"!!!!8%!!!!$!!!!#!!!!8)!!!!$!!!!$!!!!8-!!!"R!!!\r!%!!"rrrrb!!!!!S!!!!"!!!!"`!#rrrra`!!!9%!!!!%!!%!!!&5!!!!!J#3"3,\rrrrr'!!!"BJ!!!#3!$!!!!$6rrrrj!*!(0J!!!!X!!!!%!!!!1!!!!!X!!!!'!!!\r!13!!!'B!!!!)!!!!1[rrrrB!!!!-!!!!5J!!!!X!!!!3!!!!5`!!!'X!!!!5!!!\r!6!!!!!X!!!!@!!!"B`!!!!X!!!!B!!!"C!!!!!X!!!!D!!!"C3!!!!)!!!!F!!!\r"CJ!!!!-!!!!J!!(rrrr&!!!!$!!!!!%!!!!(!!$rrrr%!!(rrrr*!!(rrrr$!!!\r!%3!!!!%!!!!(!!(rrrr#!!!!%`!!!!%!!!!(!!(rrrr"!!!!%3!!!!%!!!!(!!(\rrrrr!!!!!%J!!!!%!!!!(!!(rrrqr!!!!%J!!!!%!!!!(!!(rrrqq!!!!%!!!!!%\r!!!!(!!(rrrqp!!!!%3!!!!%!!!!(!!(rrrqm!!!!%!!!!!%!!!!(!!(rrrql!!!\r!%3!!!!%!!!!(!!(rrrqk!!!!%`!!!!%!!!!(!!(rrrqj!!!!$`!!!!%!!!!(!!(\rrrrqi!!!!%3!!!!%!!!!(!!(rrrqh!!!!%!!!!!%!!!!(!!(rrrqf!!!!%!!!!!%\r!!!!(!!(rrrqe!!!!%3!!!!%!!!!(!!(rrrqd!!!!%J!!!!%!!!!(!!(rrrqc!!!\r!%`!!!!%!!!!(!!(rrrqb!!!!%3!!!!%!!!!(!!(rrrqa!!!!%3!!!!%!!!!(!!(\rrrrq`!!!!%!!!!!%!!!!(!!(rrrq[!!!!%3!!!!%!!!!(!!(rrrqZ!!!!@!!!!!3\r!!!"Q!!(rrrqY!!!!J!!!!!%!!!!(!!,rrrqX!!!"M!!!!"!!"!!!!Bd!!!"Q!*!\r'!Bi!!!"R!!!!"!!!!Bm!!!!$!!!!#!!!!C!!!!!!CJ!!!!`!![rrrkN!!!'9!!!\r!"!!'!!!"PJ!#(alrN!3!!!'A!!)G'rq3"!!!!CJ!!KSCrj!%!!!"Q3!#'"ErN!3\r!!!'D!!)9&2q3"!!!!CX!!K-6rj!%!!,rrrqS!!!"R3!!!!J!"!!!!Ci!!KmGrj!\r%!!!"R`!#("crN!3!!!'J!!!!"J!!!!3!!!'K!!!!"J!!!!8!!IrrrkF!!!!#!!!\r!!3!!!!B!!IrrrkB!!!!%!!!!!J!!!!S!![rrrkS!!!'5!!!!6!!8!!!"N`!!!!)\r!N!B"P2rrrkN!!!!%!!!"R2rrrkJ!!!!)!!!"SJ!!!!B!!!!3!!!"S`!!!!B!!!!\r4!!!"T2rrrkF!!!!5!!!"TIrrrkB!!!!8!!!"TJ!!!!)!!!!B!!!"T`!!!'J!!!!\rF!!!"U!!!!!)!!!!J!!!"U3!!!'J!!!!N!!!"UJ!!!!)!!!!S!!!"U`!!!!)!!!!\rX!!!"V!!!!!)!!!!`!!!"V3!!!!)!!!!d!!!"V[q3"!!!!$J!!!'[rj!%!!!!2!!\r!!E$rN!3!!!"!!!!"XIq3"!!!!%3!!!'brj!%!!!!5!!!rrrrU`!"rrrrUJ!"rrr\rrT3!!!#!!!!!%!!!!CJ!"rrrrT!!!!!i!!!!"!!!!"J!"rrrrS`!!!!)!!!!"!!!\r!"`!"rrrrSJ!!!!-!!!!"!!!!"`!"rrrrS3!!!!-!!!!"!!!!"`!"rrrrS!!!!!-\r!!!!"!!!!"`!#rrrrR`!!!FS!!!"'!!%!!!(,rrrrjJ#3"[rrrji!!Irrrk`!!Ir\rrrjd!!!!%!!!!!3!!!!F!!Irrrj`!!!!%!!!!!3!!!!F!![rrrjS!!!(D!!!!$!!\r$!!!"f`!!!'B!N!B"h!!!!'F!!!!%!!!"h3!!!!-!!!!)!!(rrrqE!!!!H!!!!!c\rrrrqD!!(rrrqC!!!!"!!!!!%!!!!(!!(rrrqB!!!!"!!!!!%!!!!(!!$rrrqA!!(\rrrrqD!I"%CACPE'p`1N0[C'9ABA*bD@pb)&"bEb!d1NePG(*[Gf9bDh-J3fpNC9G\rKFR*TEh)k6@&M6e-J8h9`F'pbG$T)C@&NCA*c1P0jFh4PE5"&H(4bBA-J5'9KC'9\rbFcT0B@083e!J5'9KC'9bFcTNER)ZB`!%9fG%6P*$Ef4P5'jNE!!$6QG%6P*$Ef4\rP8(4b!!$Q9A4TE%eKD@i!"*XZ6R9Y9'p[E'*[H&4bBA"cAep'GJ!!Bbj14f9d9(*\rKF%&NC(*PFh-!"&j!1$%h!!!5,NGPG&4bBA"8HA"PAep'F`!(`(4SC94bBA!!"dN\rZ9(*KF%9iDA0dFepI4R-!!fYdD'98FQ&`9(P`C3!%I8!i-MB!"ddZ4f9d8hPcG'9\rY4QpXC'9bAep'8(03E!!%)#j6HA0&ERCTFQpZF`!#R5j(CA4A4%PZCQm!!"0f8Q9\rQ6R9Y8!!'p@4TFNP%8!!!DRGN8(*[BdP%!!5UD@jQE`!"Ie0jFd9ZGP*PB`!(Hf9\rZGQPbEfjc9Q9bFfP[EJ!$"@eKBfKTEQ98HA"P!!A2FhPcG'9Y9Q9bFfP[EJ!"BA"\rbEf0PFh0[FJ!'H'KKFdC393!#ifKKFd0[E'pb883!"%9VCAP#Ef&bC&4jF'8!"BC\rKG%4bGR*@CA*c6R9Y!!)[FhPc9P*PCNjeE3!%Pd!i-c!!"mdZ4f9d3e"KEQ9X4Qp\rXC'9bAep'8(03E!!!-5j(CA0dB@ad!!1",NCTEQ4'EfaNCA)!"lGQC@&dGA*P!!4\r)D'&c4QpXC'9b6@Gb!!5i3$Jd-3!$A5j6C@&bBfK'EfaNCA*'Eh*%6P*3Aep'E'a\rcE!!&cbj)6h"PEP*PFdCTE'8!"j8Z4f9d5@jN8Q9cEh9bBf8!"9FZ3fa[Ff95CA0\r'D@aP!!"b,P"#5%GPG%C*EQC[8hPZB`!#QR4KFQGPG&4jF'8!"9PdBA*RCA4$FQ9\rKG'pb!!FHGP*PCNjeE3!&,@4TFNP%!!BrFQ9QER9Y!!#TCQPXC@jKE@8!!M9QD3!\r'YNK3BA*KE8*XEf0V8Q9M!!FYD@p3BA*KE3!!5dK*6e"KFQ&Y!!8EF8aTEQX!"Ap\r44@aPE3!&QR&8HA"P!!@1F84KG'%!"M9TEe4bBA!!!G9TEd0YC%&NC()!"0YTEd0\r[EA"XCA4TEfi!!Ep5Eh9dD@jP4'9cBh*TF(4[FJ!(*fG[6@PiC@40Ef4P9(*KF!!\r(4(CPFR0TEfi!"JKbEh9dD@jP4'9cBh*TF(4[FNCXB@Gc!!&@FQ9cCA*fC@3a!!&\rAFQ9cCA*fC@3b!!4hFf9XC@0dEh**EQC[!!3UFQpeG'PZC80[G@jd!!E`FQpeG'P\rZC9*PBfpbC(-!"4p5Eh9dD@jP8Q9MEh*N!!#rF(*[BdPZCQm!!p"*8d%!"2YbEh9\rdD@jP4QaKCh-!"S4`FQpM4'9cBh*TF(4[FJ!!eh0PE'9MG'pb!!"rD@p5CA0eE(3\r!!GCTEdjKE@93G()!!@aTEeC5C@C1G@d!!(TTEe*PCNjeE3!"fQP[9Q9bFdjeE3!\r"bfP[8'9bEA0cEJ!'afP[6@PcB`!!2@P[3R9QCQ9b!!+UD@p5CA&$Eh9ZG!!#C@P\r[3@0d3fpeER3!!@4TEe"[Fde[C'8!!e*TEe"[FdpQCR0PG!!"0fCTE'93BA*KE3!\r##NK'D@aP8'&bB@d!!@KTEdC5C@C1G@d!!M"TEdC@CA*c6R9Y!!GSCQPXE'9b-3!\r$@'P[4N4TFNPZC'9i!!)`D@p'E%&dG(*TBJ!$!QP[4Qa@CA*c6R9Y!!64D@p'E%C\rZC(**EQC[!!9q4NPZCQm!"QCQC&4jF'8!!@YQC%0bC@&dEh)!"laQC%CXB@Gc!!)\r'CQ4-Ef0KG'P[EJ!&T&"[D@jd!!&fGJ!"D'J!"VCQC%CXC()!"mKTEd4TFNP%!!%\r2D@p'E&0d3QaV!!(rD@p'E%aR6'9Z!!(-D@p'E&"j6'9Z!!,TD@p'E&*6G%*XD`!\r#3'P[4Qa56'G-C@i!!STTEdCX8P"j6'9Z!!'pD@p'E%0b4'&d!!(AD@p'E%eN4'&\rd!!1lGQpXG@eP8'&bB@d!"(C)9QpXG@eP8'&bB@d!"fPQD@aXCA)b!!*MD@p@Efa\r*EQ4PH!!"`fP[9N0b4'&dC3!!f@P[9Nac6@pN!!HpD@p@3A4bBJ!!K@P[9NjY4Qa\rc!!'0D@p@3QPd6@&`!!,#D@p"E'a[Be"dFJ!$,@P[9NjY3@a#E'Yc!!1JD@p@3@a\r#E'Y6DAS!!I"TEeC$E("6DAS!!*&TEd&X3Qa6G!!#BfP[9NjiG%01583!!&*TEeC\r'FN*XD`!#k'P[9P0TCeG[FQ3!!NCTEeC%FRC*EQC[!!*LD@p@4&*PCNjeE3!(I'P\r[9NC6583!"i4TEeC#De9`!!%!D@p@8f9a6R9Y!!"3D@p@9h*$ER3!!IjTEeC'D@a\r$ER3!!3&TEeC%DA*$ER3!!`pTEeC'EQ4b5@jQE`!$'f&MBf9cFe"KFQ&Y!!1F3@0\rMCA0c8'&bB@d!"fTQD@aXCA)c!!1(D@p%C@jj6@pNCA-!"fYQD@aXCA)d!!GXCQP\rXE'9b03!!e'P[3809Ff9b!!GYCQPXE'9b0J!$[@P[3802GfjPFNP%!!2"D@p"3dG\rbEh9`583!!NKTEd&$3@0MCA0c!!#rEf*U8'&bB@d!!-"2BQT3BA*KE3!(EQCTE'a\rPFMF!!C0TEdpLDP4jF'8!"29TEdpLDNjKE@93G()!"h*TEdpLDNP%!!&4Bfp`H9"\rKFQ&Y!!&b3fp`H9"KFQ&Y!!3KD@p%Fh4@8Q9Q6R9Y!!G[CQPXE'9b1!!"HQP[6Q9\rh6Q&YC3!#DQP[3fp`H8jKE@8!!QGTEdjPGd4TFNP%!!""CQPXE'9b-63!!%*QD@a\rXCA)a03!(ZAGN8'&bB@d!"q4A4&"KFQ&Y!!G`CQPXE'9b13!")'P[9d4*EQ4PH!!\r#cQP[9d43FQpM583!!b9TEeG%9P*PCNjeE3!!2@CTE'aPFM%`!!!qCQPXE'9b-6%\r!!$pQD@aXCA)a-J!!3'CTE'aPFM%c!!&cD@pA4%4TFNP%!!!XCQPN8'&bB@d!!,&\r'5843BA*KE3!&4'P[4'9cG%jKE@93G()!!jTTEd4PFh4%DA**4!!!3fCTE'aPFM%\rf!!"%CQPXE'9b-6F!!QKTEe0bBd4TFNP%!!"&CQPXE'9b-6J!!!*TEdCTE'9*4!!\r(b'0c8'&bB@d!"qp$8e"KFQ&Y!!*aD@p0BA4MD&"dFJ!'#%C68h"PB`!&bR"KFNP\r%!!5VEQ&YC3!(!'P[8Q9a6@&dBfK$Eh9ZG!!(d'P[3@0d6@&dBfK$Eh9ZG!!%kQP\r[8f9KFQ0S3QPdF`!&b'P[8f9KFQ0S5@jQEc%!!ZK$5@jQEe"#8Q9M!!'ZD%CTE'9\r*EQC[!!&05%CTE'9*EQC[!!&*D@p'E%*V4'&d!!9KD@p'E&K'EQ4b5@jQE`!'H%C\rB5@jQE`!!SfCN5@0[ENP%!!!fCQ49ER9cC@3!!-PQC&0MFQP`G!!!+'CN@%CXB@G\rc!!'5CQ4$EfeYC@jd!!(9CQ43GA4"Gf&j!!%,D@p'E&"KFNP%!!*4D@p'E%0XF&0\rTHJ!(H@4TFNPZCQm!"k&%DA**EQC[!!)5D@p%FP9cFPGNF`!&hN4*EQC[!!B#CR*\r5C@0d!!4r8Q9MG!!$,h4[F!!%$'aPCR3!"L*LEh4dEfd!"GCbD@GSG!!(CfCb4Qa\rKCh-!!PKQFNa[Bf&dD@pZ!!C6CR*@D@9h!!(SD@p%FN4TFNP%!!'1D@p%FNjY4Qa\rc!!(AD@p%FN0b4'&d!!'0D@p%FNeN4'&d!!(MD@p%FN*V4'&d!!6!D@p%FNCZC(*\r*EQC[!!DN4&K*EQC[!!#fCR*6Bh*[E'`!!maQFNp`C@j$D'&TEJ!!4QCb8f0bDA"\rd!!#ZCR*B4QaKCh-!!F*QFN0[E@ePER3!!BPQFP"eG%&hBAN!!54TEd4b8'&b583\r!"FPTEe0PBA*MD%PZCQmb!!6SD@p6C@&bBfK8D@eP!!A6D@p$BA43Eh0TG'P[EJ!\r'CN0KG&"[FfPdD@pZ8Q9M!!)kD@jTG'PKE'PkC3!%TA"bDAB!!`TTEdp`G%*eCQC\rPFJ!%+@P[6h"d3R9Q8fPkC3!!2@C[FQ9TCfj3FQPf8'&bB@d!!&&'Eh*PD@GZ8(*\rTGP"KFQ&Y!!+kD@p'D@aXCA)b-3!#ZfP[4QPXE'9b-M)!!hTTEdC[FQ9TCfj3FQP\rf3R9QCQ9b!!9fD@p'Eh*PD@GZ8(*TGN&MG%0[G@jd!!9hD@p'Eh*PD@GZ8(*TGP*\rPF80[G@jd!!+mD@p'D@aXCA)b-`!#3@P[4QpbC@PREP"bDAC%DA**4!!#qQP[4Qp\rbC@PREP"bDAC*EQC[-3!#qfP[4QpbC@PREP"bDAC*EQC[-J!#r'P[4QpbC@PREP"\rbDAC*EQC[-`!#r@P[4QpbC@PREP"bDAC*EQC[0!!%fN!i06-!"Q8Z6h"PENpeFP*\r'Aep'GJ!%q%!i0M%!"IBZ6h"PEP*PFfpXGQ9b!!&Y,P*PFd9bFQpb!!GX,N4PG'&\rMD&*PFfpeFQ0P!!$`,Ne[GQ9)5'N!"SJZ5%a[BfX!![%Z3f&XE&9ZDACPFR0KE&"\rbEf-!!'`Z5&9ZE'pMD`!'`bj%DA0`Eh0P5'&ZC'aP!!#jCQPXC8jKE@8!!V&bB`!\r%'%!i0c%!"KNZ3fa[Ff95CA0[E(CPFJ!%(%!i0c8!!ZJZ8h4b9'p"C'4b!!$UD'p\rcG%jKE@8!!BPbG'j6G(*eBh3!!1&SEh0d5@jQE`!(2(*dEN0[C'8!"H9MEQ&YC3!\r'Z@CTE'aPFJ!%3'&NC()!!TpbCA0eE(4`FQpM!!-UGA0PFN4KG'&3G()!"#"!1$F\rj!!+e,N&NC(*8Ee0dFJ!(E@&NC(*6G()!!c9PFR)!"$Y!1$Jc!!*C,N9ZG@e$B@0\rSC3!%2d!i1$F!!j!!,N&NC(*8EdjKE@8!"&P!1$Na!!CU,NK*EQC[!!5ZFQ9dGA*\rZ8Q9M8(4b!!(BFQ9dGA*Z8Q9M!!@ZFQ4KG'%!"K0!BfaKFh-N1$!j4e9658jPG%4\r#Af0`!!8XD'PZCQm!!%0)5@jQEe*PB`!(J'0`G94jF'8!"QP[Fe4jF'8!!L9YH!!\r&f8eB8Q9M!!+NF(*PCQ9bC@jMC3!!rQ9iBfKKEQGP!!,[FQ9cG@ad8(*[B`!%A8!\ri168!"cmZ69K*EQC[!!4K3$Jj13!!CLj%6P*%EfjP!!3LC'pZC3!!m(9%6P*%Efj\rP!!I94%j54'pZC3!(EQKICA*bEQm!"`*YB@0)Eh0d!!'dB@aTBA03G(*c!!#IB@4\rNFP"dFR-!!29eEQPi5'pcG!!(-@K[Fh4PER3!"TCSAfjKE@8!!FGSAf&XD@&cCA-\r!!VpSAf&NC(*dHA"P!!"eD&pXC@jRG'J!!aPSAf&NC(*IE'PcG!!%`N!j0$F!"L-\rZCf9dD'pcG'*jEQ&YC3!!F8G98dP6F'PZ!!Gm,R0dFQ0YF!!#@#jRCA4SEh0dD@3\r!"RNZCf9dD'pcG'*jB@4NFJ!$$%P14946Ef0VCA4c!!GP,P*PFfpXGQ9bAema0NP\r14946Ef0VCA4%EfeKD@j'GJ!$@Lj(990*3fKPBfY"E'&bE9pI4RB!!j3ZAep`G(*\rICfaeC3!$V5j(990*Af9bFQpb!!Hp,R0dFQaPEJ!'HQP`B@4NFJ!(E@PZAf&NC()\r!"RecAf&NC()!!@PT!!6$3$Nd1!!&@'&NC(*3!!4"3$Ni03!#'5jTEQ9dAfjdEf%\r!"YTTEQ&NC()!"%9!16Jj!!,q,QPZCA4IB@4NFJ!(Gf&NC(*PFh-!"AK!-6!`03!\r%-(0)Eh0d583N-6!`0J!&HN!a-$!h!!91,N4bDACPFPpI-6C*6N988fpMDf9d4'p\rYB@PZ4RB!"PmZ8%*$EfjdFQpX8hPZB`!$J("LFJ!"d%GPG%&NC(*3BA*KE8*XEf0\rV!!%@D@p$8Q9Q6R9Y!!DUBh0$Ef4P!!+9Eh9b3@4NFQ9cF`!#@QpeFNjPG%eKFfX\r!"CK!-6!a03!'FA0)Eh0d6Q&YC53a-$%f!!@D3$%`-6F!"G9!-6!c-J!%cLjRCA4\rSEh0dEQ&YC3!!C#jcF(*TER4Q!!-X,PpIERGKAep'9@`!"q8ZFh4bBh"j!!"T,R0\rdFQjMF(N!!"eYB@0SEQ&YC3!'pf*eCQaPEJ!#I@K`!!A@3$%`-c-!"GG!-6!c0!!\r&f%!a-$-e!!AC3$%`-cB!"GT!-6!c0`!&fd!a-$-i!!AF3$%`-cN!"I0!-6!d-!!\r&p%!a-$3a!!Ae3$%`0$)!"IC!-6!d-`!&pd!a-$3d!!Ai3$%`0$8!"IP!-6!d0J!\r&qN!a-$3h!!Al3$%`0$J!"Ia!-6!d13!&%d!a-$8`!!883$%`06%!"49!-6!e-J!\r&&N!a-$8c!!8A3$%`063!!1YcCA*fE'PcG!!!1h0PFRCXD@jP!!36Ff9bGJ!(3(0\rPFRCPER3!"JGcAfjKE@8!!30cAf&XD@&cCA-!"[4cAh"[FR3!"i0cAh"bEh4[!!H\rmFf9bGQCTE!!&E&p'58a&!!BKD'&ZC'aP!!4KE@pNC3!%6&pICQPXC9pYEf4PF`!\r"['p`C@jIE@pNC3!(P@P[Afe[C'8!!q&LG@CQCA*IE@pNC3!"[QCTE'9IDfPZC!!\r!GfCTE'9IEh*TC@jdBA4TEfi!!44LD@jKFRPID@m!"FTcG'&dC3!%pepICQPXC9p\rcG'&dC3!!V'P[Ah0dBA4P!!-5CR*PC9pLG@CQCA)!!mPPEfB!"44PFR*[FJ!$['0\rSBA*IBR9QCQ9b!!6GBfKKFPpLG@CQCA*IEhCPFQCXEhF!"84eEQGPG'0IBR9QCQ9\rb!!C*G@jRCA4hBepLG@CQCA)!!(C`Eh0TG'P[EJ!'!f*eCQCPFJ!$Ef*eCQCPFPp\rcDATP!!*qBR9QCQ9bAh"dFJ!#U'*eCQCPFPpXC@i!!2GLG@CQCA*IB@aTCfjYC@j\rd!!$(Ff&fC@4IBR9QCQ9bAfaPEJ!#hQ*eCQCPFPp`Eh-!"D&`Eh0TG'P[EPp`FQp\rM!!(aFQ9KC&p`FQpM!!)EGh*TG'9IF(*[B`!#Y'0XEh0PAh"bEf-!!6KTC'aPAh"\rbEf-!"dYcCA*fF(4b!!'6Ff9bGQ&XD@&c!!!pFf9bGR0dBAN!!cJZFf9dFf9bGQ9\rZG!!(*bjbCAGTEQ3!!(0cG'&jEh"PEJ!&(%!a-$8j!!1L,Q9ZC(0PFRCPER3!"bm\rZCQ0XEh0P!!8i3$%`0M3!"Ce!-6!j13!&Pd!a-6!`!!@B3$%a-$%!"CP!-6%`-J!\r&QN!a-6!c!!2Y,QGPG(0PFRCPER3!!E8Z8%acG(*MF(N!!-mZ4R9XE&"KG'KIAcP\r84QPXC90`C@0$4RB!"N)ZCQp`C@i!"YdZCQGPG(-!!(NZFh4bF'*bD`!('bjcG(*\rdEfX!"6FZBA4[D3!"He4'D@aP8h"PB`!(*54'8e0`C@-!!UKKE'PKFf0[G@jd!!&\r`F!!&Qd!a-6!d!!D',QGPG(0PFRCLH@jKE@8!"GY`FQpdE`!#Q'&X!!1hC@jd!!A\rF3$%a-M8!"SXZCf9dFf9bGQ*jF'pbG!!%Q("[FR3!"Ij!-6%c0`!$VR4MF!!$XR9\rNF!!"+h"bEh4[C@jdF`!!aA"bEh4[C@jd!!B&F&pZB@eP!!(HF&pKE'PKFf9c!!G\r"F&p`FQpdE`!'Ih"bEh4[C@jdAf0[G@jd!!8F3$%a0$8!"4e!-6%d0J!(kLjRCA4\r`FQpdEf*jEQ&YC3!&m@9bFQj[!!*cF'8!"4j!-6%d0`!"DbjRCA4`FQpdEf*jER9\rYBQ9b!!$UCf9dF(*[G'pLH@jeE@*PFJ!$IP423`!'K@GPG("bEh4[BRPZB@eP!!9\rkCf9dFf9bGQ*jF'pbG!!&N@GPG(0PFRCLH@jKE@8!!J0RCA4cCA*fC@jd!!)lC@j\rNFf9bGQ9ZG!!#L(0PG(0PFRCPER3!!b"RCA4SEh0dEQ&YC3!"j@GPG'K[Fh4TC!!\r"4@PZCA4IB@4NFJ!"A'PZCA4IER4[B3!&XQGPG'K[Fh4LH@&NC()!"@"RCA4SEh0\rdBRPZB@eP!!DU69K*EQC[!!8H5%PZCQm!!NC"C'4b9'p1B@eP!!(Q4@jeE80KBfK\rP!!'V3@4NFP4[8h4b!!'28h4b9'p"C'4b!!AQ3fa[Ff95CA0[E(CPFJ!%f%p`C@j\r5CA0[E(CPFJ!&%Np`C@j2GA*54PpI4RB!!Ve6C@&bBfK'EfaNCA*'Eh*%6P*3Aep\r'E'acE!!'M%GPG%03B@jPE%C[E'4PFPpI4P"c8'`!"Re(CA46HA0dC@e'EfaNCA*\rIAdC3Fe"X!!Dc9(*KF%9iDA0dFepI4R-!"kj(CA48FQ&`9(P`C9pI4R-!!lK1G@e\r8EfpXBQpi9(*KF(0IAdCf!'0b8%pA8J#3"JbF!!!BV!!!!2!!!!d)!!!,T!!!!U3\r!N!B"k!!!!!`!N%"&C`!!4@X!"!!!!!%!!!!m!!!!)!!!!aem#!+QNq(rr*!!!3!\r)P#(r`$[M!!")!!!"B!!!!)!#!!#3!"m!!MKr!!#!!3")1#%!3(`)!kD$iIrm6S!\r!)%9e!*!&!J!!!"4&G!-!N!3$!!!!(%9Z$!3!!!!+!!!!$)!!N!Z!!!!m#!!!!%9\rh!*!&!3#3"%9V!!3!!!!,!!!!#!!!!%)!!!-l1'!!!%k!!#"&D`!%!!!!$!!!!!J\r!!!"@!!!$E6KP!!"1J!!J4@X!"!!!!!i!!!"-!!!!H!!!!kD6iIrm1q!!!#J%!!"\r"JJ!31!!!!CJ%!!!lr`!"+!8!!%'#!"!i!!!"Q!8!!$[r!!%S"J!!3B)!$$J!!!#\rB"J!!1(m!!)2Krra1J!!J4@X!"!!!!"-!!!"%!!!!r!!!",Tm#!+QNq(rr*!!!3!\r)P#(r`*!!B3"B1q3!!)"K!&K)!!!"B!!!!$J!)ED`(`!'1'!!!)!"!%Ji)3"!I!J\r$TS2Krra1J!!J4A8!N!88!!!!(%9Z$!3!!!!N!!!!$)!!N!Z!!!"%#!!!!%9h!*!\r&%`#3"%9Z"3%!!!!P!!!!#IrrrrS!!!9hC'9f1QjeE'`!-AVi4@X!"!!!!#B!!!#\r)!!!"0!!!"AGm#!+QNq(rr*2"rrL6SIrdN!!"!!L8)Iq`1m3!!$[P!!!lS!!!J!3\r![LJ!!!"!JJ!m9q!'2d'#!""Ai!Bq+!!!"N##!#L!IJ#kJ))!!$LJ!!!i`!!"5!!\r!!@!!!!"8B!Br3B)!#$ZJ!!%iI3!!J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIrd6S!\r!)%9d!`#3"#8!!!")4A8!N!8R!!!!9%9Z$!3!!!#U!!!!$)!!N!Z!!!#)'!!!!%9\rh!*!&*J#3"%9V!!3!!!#V!!!!H!!!!@3!!!CCI!J#TT2Krrb6`IriNk(rp*!!!3!\r)P#(rX$[M!!#!!`!3+!!!!%##!#3iB!!'5!!!!@!!!!"mIKYj3B)!$$Kq!!")!!!\r"Npm!%)1r!"#SI3!!1!-!!E!G!!#!I`!3J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIr\rd6S!!)%9e!*!&V!!!!#a&G3#3"3%!!!"!4@i0!J!!!,!!!!!5J!#3"aJ!!%3!4!!\r+!!#+J!!H!*!'4AB+R!!!!,%!!!!14@i-"!!!!,)!!!!-J!#3$RJ!N!4&G`#3"DX\r!N!4&G`d!N!5`!!!!#%9Z"3%!!!#c!!!!%IrrrpJ!!!CC6R9XE&0[BfYPG%4[E@&\rTEJ#Sj1"&EJ8"!!!!Y!!!!!hrrrrA!!!'@90[BfYPG%4[E@&TEJ#3"%9Z"33!!!#\re!!!!#2rrrpB!!!CC!*!)4AB&!*!%Y!#3"%9Z"3%!!!#f!!!!%Irrrp8!!!CC4QP\rXC90[BfYPG%4[E@&TEJ#DfI"&EJ8%!!!!Y`!!!!crrrr8!!!'@3#3$%9f"3#3",8\r!N!4&EJ8%!!!!Z!!!!!Mrrrr6!!!'@3#3#%9f"3#3",B!N!4&GJ8!N!5h!!!!"%9\rZ"33!!!#j!!!!&2rrrp)!!!CC!*!84AB&!*!%Z!!!!!K&GJ8!N!5e!*!%4@i&"!!\r!!,S!!!!)rrrrd3!!"PN!N!K&GJ8!N!5c!*!%4AB&!*!%Z3!!!!4&E`8%!!!!Z`!\r!!%6rrrr3!!!'@3#34%9f"3#3",S!N!4&GJS!N!5m!!!!%%9f#J#3",d!!!!-4AB\r+!*!%[J!!!"4&GJS!N!5r!!!!3%9f#J#3"-!!!!!m4AB+!*!%`3!!!$K&GJS!N!6\r#!!!!0%9f#J#3"--!!!!`4AB+!*!%a!!!!#a&GJS!N!6&!!!!+%9f#J#3"-B!!!!\rN4AB+!*!%a`!!!#"&GJS!N!6)!!!!#%9f#J#3"-N!!!!F4AB+!*!%bJ!!!"K&D`#\r%!!!!b`!!!'5!!*!(I!J#TT2Krrb3!!%!#*3Krm"mIaYjX)%!AN'#!$5!!J!!N!!\rI!!!iI`!!1)!!!%J!!!&J!!!!U!%!AL`!!!"!J3!31(m!!%J!!!&J!!!!1(m!!)!\r"!%Ji)3"!I!J$TS2Krra1J!!J4A3$!*!%Z`!!!"a&G3#3"F`!!!!X4A8!N!A0!!!\r!4%9Z$!3!!!$1!!!!$)!!N!Z!!!"N#!!!!%9h!*!&b`#3"%9Z"3%!!!$2!!!!#rr\rrrmm!!!CC6R9XE&0[BfYPG!"[4@i&!3!!!0!!!!!(rrrrcJ!!"PP6Ef0VCA3!Ed9\rZ"33!!!$4!!!!#2rrrmd!!!CC!*!)4AB&!*!%d!#3"%9Z"33!!!$5!!!!$2rrrm`\r!!!CC!*!-4AB&!*!%d3#3"%9Z"33!!!$6!!!!#2rrrmX!!!CC!*!)4AB&!*!%c`#\r3"%9f"3#3"0)!!!!%4@m&"!!!!!-!!!"NrrrrbJ!!"PN!N'4&GJ8!N!66!*!%4AB\r+!*!%e!!!!&a&GJS!N!69!!!!9%9f#J#3"0B!!!"34AB+!*!%e`!!!%a&GJS!N!6\rB!!!!5%9f#J#3"0N!!!"%4AB+!*!%fJ!!!$a&GJS!N!6E!!!!1%9f#J#3"0`!!!!\rd4AB+!*!%h3!!!$"&GJS!N!6H!!!!,%9f#J#3"0m!!!!S4AB+!*!%i!!!!#4&GJS\r!N!6K!!!!)%9f#J#3"1)!!!!84AB+!*!%i`!!!""&GJS!N!6N!!!!$%9f#J#3"18\r!!!!)4AB+!*!%jJ!!!'"&GJS!N!6R!!!!3%9f#J#3"1J!!!"B4AB+!*!%k3!!!"a\r&GJS!N!6U!!!!'%9V!)3!!!$V!!!!C)!!N!Gm#!+QNq(rr*!!!3!)P#(r`(ar'hQ\r`J3"H3B)!0)!#!!#3!"m!!MKr!!!iJ!!!5!!!!@!!!!#S!3"H,!!!!%#"!"!iI`!\r!5!!!!@!!!!!iI`!!J!%!5$JK!%"m#!1QJq(rr%k!!#"&G!-!N!3$!!!!(%9e!*!\r&l!!!!#a&G3#3"Fd!!!"%4@i-"!!!!1d!!!!-J!#3#i!!!'3)!!!!4AF!N!AV!*!\r%4@m+K!!!!1B!!!!)J!#3$d9f!*!&k`#3"%9f$`#3"1i!!!!%4@m+K!!!!-J!!!!\r)J!#3$d9f!*!&b`#3"%9f$`#3"1i!!!!%4@m+"!!!!-N!!!!)J!#3$d9f!*!&U`#\r3"%9f$`#3"1i!!!!%4@m+"!!!!-S!!!!)J!#3$d9f!*!&*J#3"%9f$`#3"1i!!!!\r%4@m+"!!!!1F!!!!)J!#3$d9f!*!&%`#3"%9f$`#3"1i!!!!%4@m+"!!!!1J!!!!\r)J!#3$d9f!*!&$J#3"%9f$`#3"1i!!!!%4@m+"!!!!1N!!!!)J!#3$d9f!*!&$!#\r3"%9f$`#3"1i!!!!%4@m+"!!!!1S!!!!)J!#3$d9f!*!&#`#3"%9f$`#3"1i!!!!\r%4@m+"!!!!1m!!!!)J!#3$d9f!*!&!3#3"%9f$`#3"1i!!!!%4@m$"!!!!,X!!!!\r%J!#3#d9f"3#3",X!N!4&EJ-%!!!!*3!!!!5!!*!,4AB&!*!%*3#3"%9[!`3!!!!\r$!!!!")!!N!Y&GJ8!N!3$!*!%4@m2"!!!!1i!N!5!!*!(4@J!!&0C68J!!!'@!!!\r!0J!!!!S!N"%"!*!'!cErN!3!!!-i!!%!!!!%rj!%!3#3""m!!3#3"J0Jrj!%!!!\r$DJ!!!!%!N!B$Prq3"!!!!k-!!3!!!!d!!!!$!3#3"!8!!3#3"J2j!!!!"!!!!r`\r!!!!3!!!%*!!!!"`!!!4)!!!!*!!!"&S!!!!`!!!%I`!!!$J!!!53!!!!!%!!!!5\rRrj!%!!!%Y`!%!!!!$`!!!'J"!*!%"!!!!"!!!!"S!3#3"!8!!!!4!!!!D!%!N!3\r'!!!!%J!!!!-!N!8I!!%!N!B%i`!!!"`!!!6Qrj!%!!!&+`!#!!!!"2q3"!%$!!!\r!@!!!!"Arrrrm!3#3""m!!3#3"JA6rj!%!!!'9J!#!!!!+2rrrrN"!*!%(J!!!*l\rrrrrF!3#3""m!!3#3"JD6!!!!+!!!"UJ!!!")!!!'arq3"!!!"ZS!!3!!!!6rrrr\rE!3#3""m!![rrrrd!!!!(!!!!"J!#!!!!#!!!!!X!N!F*!!!!C!!!!!)!![rrrri\r!!!!&!!!!"J!"!!!!"[rrrrd!N!ErN!3!!Irrrri!![rrrrX!!!!@!!!!+!!0!!!\r!&`!!!!X!N!FB!!!!!J!!!!)!!!!C!!!!#J!!!!B!!!!D!!!!#J!!!!J!!!!E!!!\r!#J!!!!S!!!!F!!!!#J!!!!`!!!!G!!!!#`!!!!i!!!!H!!!!!`!!!"!!!!!I!!!\r!!J!!!"3!!!!J!!!!!J!!!"J!!!!K!!!!!J!!!"`!!!!L!!!!!`!!!#!!!!!M!!!\r!!`!!!#3!!2rrrr`!!IrrrrX!!IrrrrS!!!!*!!!!!3!!!!F!![rrrrB!!!![!!!\r!4J!$!!!!-!!!!!X!N!Fa!!!!!`!!!!)!!!!b!!!!!3!!!!B!![rrrrF!!!!Y!!!\r!4J!"!!!!,[rrrrB!N!8"rrrrm3!!!!)!!!!#!!!!#`!#rrrrmJ!!!$J!!!!)!!-\r!!!!hrrrrm`#3"cN!!!!,!!!!"!!!!$Vrrrra!!!!"J!!rrrrm`!"rrrrmJ!!rrr\rrl!!"!!!!DJ!#rrrrl3!!!%F!!!!8!!F!!!")!!!!!J#3"d)!!!!(!!!!"!!!!%N\r!!!!(!!!!"3!!!%S!!!!+!!!!"J!!!%[rrrrX!!!!#!!!!%-!!!!#!!!!$!!!!%`\r!!!!#!!!!%!!"rrrrlJ!!!"3!!!!8rrrrl3!#rrrrl`!!!$i!!!!J!!J!!!!r!!!\r!#J#3"d!!!!!(!!!!!J!!!%%!!!!'!!!!!`!!!%)!!!!#!!!!"!!!!%-!!!!'!!!\r!#!!!!%3!!!!'!!!!#3!!!%8!!!!+!!!!#J!!!%ErrrrZ!!!!$!!!rrrrm!!"rrr\rrl`!#rrrrkJ!!!&`!!!!%!!)!!!"G!!!!#`#3"ei!!!!,!!!!!J!#rrrrk`!!!&F\r!!!!3!!8!!!"B!!!!!J#3"eN!!!!#!!!!"!!!!&S!!!!+!!!!#!!!!&[rrrrU!!!\r!#J!!!&m!!!!,!!!!$J!"rrrrk!!!!!B!!!!#!!!!#`!#rrrrk3!!!'X!!!!3!!B\r!!!"X!!!!#`#3"fhrrrrS!!!!!J!!!'i!!!!(!!!!#!!!!'m!!!!(!!!!#3!!!(!\r!!!!,!!!!#J!!!(%!!!!$!!!!$!!#rrrrp!!!!$B!!!"X!"`!!!!hrrrrm`#3"cN\r!!!!,!!!!"!!!!$X!!!!,!!!!"J!!!$`!!!"Q!!!!#!!!!$hrrrr`!!!!$!!!!%d\r!!!!,!!!!%!!!!%i!!!"V!!!!%J!!!%m!!!!,!!!!&J!!!&!!!!!,!!!!'!!!!&%\r!!!!(!!!!'J!!!&)!!!!(!!!!'`!!!&-!!!!,!!!!(!!!!&3!!!!(!!!!(J!!!&8\r!!!!(!!!!(`!!!&ErrrrV!!!!)!!!!'!!!!!$!!!!-!!!!'%!!!!+!!!!0!!!!')\r!!!!$!!!!0J!!!'-!!!!$!!!!1J!!!'3!!!!+!!!!2J!!!'8!!!!$!!!!3!!!!'B\r!!!!$!!!!4!!!!'F!!!!#!!!!5!!!!'J!!!!#!!!!6!!!!'N!!!!#!!!!8!!!!'V\rrrrrT!!!!9!!!!()!!!!$!!!!C!!!!(-!!!!$!!!!D!!#rrrrj3!!!(N!!!!)!!3\r!!!"k!!!!#`#3"hX!!!!,!!!!!J!!!(`!!!!,!!!!"!!!!(d!!!!,!!!!"J!#rrr\rrjJ!!!(F!!!!3!!3!!!"irrrrj3#3"hi!!!!+!!!!#!!!!(rrrrrU!!!!#J!!!)!\r!!!!,!!!!$J!"rrrrj!!!!")!!!!#!!!!#`!#rrrri`!!!)J!!!!3!!B!!!#*rrr\rrkJ#3"iS!!!!$!!!!"!!!!)X!!!!(!!!!#!!!!)`!!!!(!!!!#3!!!)d!!!!,!!!\r!#J!!!)i!!!!$!!!!$!!#rrrrj`!!!(8!!!"S!"F!!!!hrrrrm`#3"cN!!!!,!!!\r!"!!!!$X!!!!,!!!!"J!!!$`!!!"Q!!!!#!!!!$hrrrr`!!!!$!!!!%d!!!!,!!!\r!%!!!!%i!!!"V!!!!%J!!!%m!!!!,!!!!&J!!!&!!!!!,!!!!'!!!!&%!!!!(!!!\r!'J!!!&)!!!!(!!!!'`!!!&-!!!!,!!!!(!!!!&3!!!!(!!!!(J!!!&8!!!!(!!!\r!(`!!!(ErrrrQ!!!!)!!!!)%!!!!$!!!!-!!!!))!!!!+!!!!0!!!!)2rrrrN!!!\r!0J!!!)3!!!!#!!!!5!!!!)8!!!!#!!!!6!!!!)B!!!!#!!!!8!!!!)IrrrrM!!!\r!9!!!!)m!!!!$!!!!C!!#rrrrp3!!!$3!!!"X!!)!!!!errrrp!#3"h6rrrrR!*!\r&![rrrq!!!!#6!!!!"!!"!!!!#3!!!'3!N!8#rrrrhJ!!!*F!!!!5!!B!!!!'rrr\rrr3#3"jMrrrrI!!!!"J!!!*RrrrrI!!!!#J!!!*S!!!!,!!!!$J!!!*X!!!!'!!!\r!%!!!!*`!!!!'!!!!%3!!rrrrh`!"rrrrhJ!#rrrri3!!!*%!!!!3!!3!!!#5rrr\rri!#3"j6rrrrL!!!!"!!!!*ArrrrL!!!!#!!!!*ErrrrI!!!!$!!!rrrriJ!"rrr\rri3!!rrrrh3!"rrrrp`!#rrrrq!!!!#N!!!$#!!F!!!!U!!!!#`#3"bX!!!!'!!!\r!!J!!!#crrrrh!!!!"!!!!$2rrrre!!!!5J!!!*!!rrrriJ!!!,B!!!!b!!!!CJ!\r!!,S!!!#Grrrrh3!!!,i!!2rrrrN!!IrrrrJ!!rrrrp`!!!#I!!B!#J!!!+!!N!H\rK!!!!!3!!!+)!!!!#!!!!S`!!!!-!!!#N!!!!"!!!!+8!!!!&!!!!TJ!!!!B!!!#\rR!!!!"`!!!+J!!!!)!!!!U3!!!!N!!2rrrpN!!Irrrrd!![rrrpS!!!#Y!!!!&!!\r#!!!!V[rrrq%!N!H[rrrrf3!!!"!!!2rrrpX!!IrrrpS!!IrrrpJ!!!!4!!!!!3!\r!!!F!!IrrrpF!!!!0!!!!!3!!!!F!![rrrpErN!3!!!!)!!!!!Irrrp8!!!!4!!!\r!!3!!!!F!![rrrp6rN!3!!!!-!!!!![rrrp2rN!3!!!!)!!!!![rrrp,rN!3!!!!\r8!!!!![rrrp(rN!3!!!!)!!!!![rrrp$rN!3!!!"%!!!!!Irrrmm!!!!,!!!!!3!\r!!!F!!Irrrmi!!!!(!!!!!3!!!!F!![rrrmhrN!3!!!!)!!!!![rrrmcrN!3!!!!\r-!!!!![rrrm[rN!3!!!!)!!!!![rrrmVrN!3!!!"N!!!&H5jIAf0dAema-%jeE'a\r6Ef0VCA4'GJ!!-bjIAf0dAemf8fpMDf9d4RB!!T9IAhCdAema-%jeE'a6Ef0VCA3\r!"&YdD'Pc!!+H6R9XE&0[BfYPG!!(pL46Ef0VCA3!"[P6Ef0VCA3!!"abC@C$Eh9\rZG!!(mepIGR"dFL3!"$p!1$!i!!Gp,R*PB@4IAc%`6R9XE&0[BfYPG%C3GQN!!$!\rZGh*TG'9IAc%`6R9XE&0[BfYPG%C3GQN!!maXC@i!"jFZFf9XC@0dAema-%jeE'a\r6Ef0VCA4'8&9M8&9M8&9M!!FmBf&Z8Q9KC!!!CQ0KEPGbDA4P!!'"CAKMCA"dD@p\rZ!!HKCfp[C'PPF`!$4bjQFh4KG&pI-6"1G@aX8fpMDf9d4P!dFh4KG!!'`5jQFh4\rKG&pI0P0[BfYPG%C30(0dBA3!!jjLG@B!"#YcG'&d!!D5Fh4IC'9f!!E!Fh4ID@j\r[!!FGFh4IE@pNC3!!dR0dAfjXD@jV!!BNFh4IG@PN!!EXFh4ICfPN!!HTFh4IFQ4\rPGJ!(Vh0dAh0THQ8!!(acG&pKG'PYC3!!`(0dAfedD@eP!!#FFh4IBh4TE@8!!Q9\rcG&pLE'YcDATP!!(rFh4IBQa[BfYc!!4J3$Ja13!%H%!i-M%!"SNZ@@peFR0IAc%\rf6R9XE&0[BfYPG%4[E@&TENC53c%a4e9658CTE'95C@C4-M%f4QPXC90[BfYPG%4\r[E@&TEMG5CA&eCA0d!!50,Q9aG@&XFh4bD@jR!!2FFQ9Q!!214e9658CTE'95C@B\r!"44PFR*[FJ!(RQKKFdPZCQm!"+GQD@aP!!&l9%CTE'96F'9M!!FP*%C68h"PB`!\r'#%C68h"PB`!((RC5C@C1G@d!"FT`BA**4!!%UfjKE@8!"+TTEQC[!!,S3dPZCQp\r33P*PB`!"VQK'D@aP5@jQE`!"68K'D@aP5@jQE`!&'h&-D@jV!!9r889XC@d!"CT\ra9(P`C3!&MR&%BA4K!!BeD@p8FQ&`!!(9D@p$E@4"C'4b!!6ED@p$Efe`E'9dD@p\rZ!!'r8QpeG'PZC84PFf0bDA"dEh)!"bGREdeTH'9N6@pNC94bBA!!"d4fCA*cD@p\rZ!!B)FQpeG'PZC84PFf0bDA"dEh*'E'&RF`!"9R*PFf9bGQ9N-3!"9h*PFf9bGQ9\rN-J!%Gh0PE'9MG'pb5@jQE`!%+R*[GA4TEQ9$Eh9ZG!!'m(*[GA4TEQ95C@0[FQ4\rc!!8I8QpeG'PZC9*PBfpbC!!![h"bEf0*EQC[!!23590"!!6lFQpeG'PZC8CXB@G\rc!!D%F(*[Bd4PFf0bDA"dEh)!!0GcC@aPBh4[FJ!!IfP[8Q9cG@ad!!(@D@p1B@e\rP8(4b!!&XD@p@8Q9Q6R9Y!!&SD@p'8Q9Q6R9Y!!)`D@p'9Q9bFdjeE3!(D'CTE'a\rPFM%!!eKTEdC%DA**EQ4PH!!#-'P[4Qa"G(4bD@)!!04TEd&$9A0PFJ!%d@P[4Qa\r'EQ4b5@jQE`!&INC*EQC[!!CQCQ48HA"P!!&VCQ4$FQ9KG'pb!!HmCQ4'E'&RF`!\r#"QCN6'pMBA4TEfi!"D43EfPZG!!"GRB!!@KS!!DfCQ4'E'4b!!I)D@p%DA**4!!\r"$fP[4Qa6G%*XD`!"rfP[4Qa-CdaPEJ!"c'P[4Qa3H8aPEJ!#k@P[4Qa58h4#E'X\r!!N"TEdCX8NaR6'9Z!!++D@p'E&*3H8aPEJ!"[@P[4Qa$FN4KG!!"efP[4Qa0C%4\rKG!!"5@P[4Qa#Dd4KG!!&B@P[4QaB4QjNFNPZCQm!"RK'@%PZCQm!!+0QC%PMEfj\r*4!!!0QCN9@jeFf9N!!$*CQ46Bh*TF(3!!#KQC&K'E'&RF`!"NQCN3fpYE@9ZG!!\r"e@CN8(9d3AGKH3!"#fP[4Qa3BA**4!!#8@P[4Qa$E("6DAS!"hPNDA**EQC[!!H\rK4'Pb5@jQE`!#%QP[4(*9Fh*AC(-!"Gj%5@jQE`!'!QCb8Q9MG!!%Ie*PBh3!!bp\rdEh!!"!aXC@Cd!!BLBQpdG'pY!!A@FQPRD(3!"fGQFNCXB@Gc!!*BCR*-Ef0KG'P\r[EJ!'8fCb9QPPG`!"k'P[4(*%DA**4!!"MQP[4(*1E8CXF`!(DQCTE'aPFM-!!GG\rTEd4b3h*%BA3!!BeTEd4b6@4%BA3!!H0TEd4b3QY%BA3!"-"TEd4b4QjNFNPZCQm\r!"U4%@%PZCQm!!,CQFP0MFQpXE!!$c'Cb6h"PEN0SB@PZ!!"'CR*6Bh*TF(3!!+j\rQFPK'E'&RF`!"`QCb3fpYE@9ZG!!"L@Cb8(9d3AGKH3!"*'P[4(*3BA**4!!'Gf4\r[E@&TEJ!!K%CTE'96Ef0VCA4%EfeKD@i!"I)N8fpMDf9d4'pYB@PZ!!3d8fpMDf9\rd4'pYB@PZ!!$hEQ9iG%4PGQPMC84[E@&TEJ!'q@jPH(4'D@aP4'pYB@PZ!!9#CQP\rbFh3!!J9'D@aP8fpMDf9d!!3NF(*PGJ!%5fjPH(3!"`TQ8Q9Q6R9Y!!BSBA"`C@j\rN!!%NG'9YF'pbBA*j!!4VFh"PB`!(-(*PFA9PFh3!!49'D@aP8fpMDf9d4'pYB@P\rZ1MT5CA&eCA0d!!"LGfPXE%p`C@i!!JjhD@aX8Q9YEhCP!!*9GfPXE&*PEQ&YC3!\r(5AGTE'a(CA4'D@aP5@jQE`!(p(GTE'a6CA4'D@aP5@jQE`!$j(GTE'a'3@0MCA0\rc!!$HGfPXE&0dBA3!!DahD@aX3fKYEf3!!A"hD@aX994TE@8!!MahD@aX3@0MCA0\rc!!4j3$Jb-J!#A#j[F'9ZAema0NjeE'a6Ef0VCA4%EfeKD@j'8N-a-8G98dP'D@a\rP8Q9QD3!#HbjIAfjhAep'9@`!!1K1G@aX8fpMDf9d4'pYB@PZ!!'9*%CTE'96Ef0\rVCA4%EfeKD@i!!BacD@jRE'9dEfi!"*G!1$-`!!&FAepNE&pI4P"f!!5B3$Jc-3!\r%Q8!i-c)!"*Y!1$-d!!EmAep59&4*Aema-P0[BfYPG%4[E@&TEJ!%R%!i-c8!"*e\r!1$-f!!**Aep59&4*Aema0NCTE'96Ef0VCA4%EfeKD@i!"*T!1$-c!!)$Aep59&4\r*Aema0NjeE'a6Ef0VCA4%EfeKD@i!!#eIAhCdAema0NjeE'a6Ef0VCA4%EfeKD@i\r!"SpcEf0VCA4`B@PbAema-P0[BfYPG%4[E@&TENCTFe"30P0[BfYPG!!"mA0[BfY\rPG&pI-6*6Ef0VCA4%EfeKD@j'DA-!"DTMD'p[Ff9IAc%f4QPXC90[BfYPG%4[E@&\rTENCT8'03GQP3GP"T!!0cB@0MCA0cAema0NCTE'96Ef0VCA4%EfeKD@j'8N-a-8G\r98dP'D@aP8Q9QD3!$9(9dD@ePAema0NCTE'96Ef0VCA4%EfeKD@j'8N-a-8G98dP\r'D@aP8Q9Q8%-hGA4TE@*eCJ!$,Q0SE@pNAema0NCTE'96Ef0VCA4%EfeKD@j'8N-\ra-8G98dP'D@aP8Q9Q9A-!"[TcG'&dAema0NCTE'96Ef0VCA4%EfeKD@j'8N-a-8G\r98dP'D@aP8Q9Q8$4cG'&d!!H)CQ&MBf9cFepI-6C'D@aP8fpMDf9d4'pYB@PZ4P*\r$-6&(990*4QPXC9*PCP9T8'`!""PQFf9dCQPXC@PZCQpIAc%f4QPXC90[BfYPG%4\r[E@&TENC53c%a4e9658CTE'95C@C9E&9X!!DjCQGPG'CTE'9TEQC[Aema0NCTE'9\r6Ef0VCA4%EfeKD@j'8N-a-8G98dP'D@aP8Q9Q8&9X8&9X!!A4FQ9ZB@ePAema0NC\rTE'96Ef0VCA4%EfeKD@j'8N-a-8G98dP'D@aP8Q9Q8%0M!!*pFQ9YEhCPAema0NC\rTE'96Ef0VCA4%EfeKD@j'8N-a-8G98dP'D@aP8Q9Q!!)bAepNG&pI-6C1G@aX8fp\rMDf9d4'pYB@PZ4RB!!B0[F'9ZAema0NjeE'a6Ef0VCA4%EfeKD@j'8N-a-8G98dP\r'D@aP8Q9QD3!&qPP[GA*cAema0NjeE'a6Ef0VCA4%EfeKD@j'8N-a-8G98dP'D@a\rP8Q9Q86)a0NCTE'96Ef0VCA4%EfeKD@ih8Q9aG@9cG!!$r5jIAf4dAema0NjeE'a\r6Ef0VCA4%EfeKD@j'GJ!$ZLjIAf4dAema0NCTE'96Ef0VCA4%EfeKD@j'GJ!#6bj\rIAf4XAep'8(B!",G!1$3`!!5i3$Jd-3!%ZN!i0$-!"rpIAe*89%PIAcC6Ef0VCA3\r!",P!1$3b!!6lAep59&4*Aema-%jeE'a6Ef0VCA3!!hG`Eh0dAh0PE'9MG&pI0P0\r[BfYPG%C9Be9M9@-!!Qa`FQ9IFf9XC@0dAemf8fpMDf9d4P9M9@09B`!$lR0SGA4\rNEhGZAemf8fpMDf9d4QN!!8*TFf&dG(PIAcC6Ef0VCA4'GJ!%I@CdFR9ZBf&dC9p\rI0P0[BfYPG%CX!!&JE(0PC@YIAcC6Ef0VCA4'E'N!!fpTEf0dE&pI0P0[BfYPG%C\r9D9"f!!*(CQ0ZG'aIAcC6Ef0VCA4'9@PT!!&,Ff9dFfpMDfp`G&pI0P0[BfYPG%C\rTD9"fD3!#b'GPG(0[BfY[F(4IAcC6Ef0VCA4'D@P3GP"T!!&!Cf9dF'9PFQjKE@9\rIAcC6Ef0VCA4'8(C3D3!"afGPG(0[BfYZB@ePAemf8fpMDf9d4P"f8'N!"aacC@j\rNG'pIAcC6Ef0VCA4'8(CTD9"fD3!#F(*PBhCQFQpYAemf8fpMDf9d4P"fD@P3GP"\rT!!5@B@0MCA"dAemf8fpMDf9d4P"f8'N!!FKXDA0dC@jIAcC6Ef0VCA4'D3!%kQ0\r[EQjPBh4IAcC6Ef0VCA4'8(CT!!&-BQPZC&pI0P0[BfYPG%C3GQN!"&4IAf4dAem\ra-%jeE'a6Ef0VCA4'GJ!#TfCcG'&dAema-%jeE'a6Ef0VCA4'8$4cG'&d!!E$Ff9\rXC@0dAema-%jeE'a6Ef0VCA4'8&9M8&9M8&9M!!IdGh*TG'9IAc%`6R9XE&0[BfY\rPG%C3GQN!"NPbC@&NAema-%jeE'a6Ef0VCA4'8(CT!!9Z,PpIC(4IAc%`6R9XE&0\r[BfYPG%Cf!!"#,PpIC(4IAcC6Ef0VCA4'GJ!%[N!i0$F!!hj86d-!"(9IAf0dAem\ra-%jeE'a6Ef0VCA4'GJ"5C9"29e)!N!B4E!!!&LS!!!"N!!!4f!!!"&)!!!3`!*!\r'!KF!!!!%!*"!4@F!!%9T!*!&!89V!!3!!!!#!!!!&!!!!#!!!!2GJ!)!!*!!!`!\r#1!!!!,!$!!"1J!!J4A3$!*!%!`#3"%9V!!3!!!!)!!!!9!!!!%S!!!3#I!J#TT2\rKrrb3!!%!#*3Krm"mIaYjX)%!AN'#!#5!!J!!N!!I!!+S!3"H,!!!!%#"!"!iI`!\r!5!!!!@!!!!!iI`!!J!%!5$JK!%"m#!1QJq(rr%k!!#"&G!-!N!3$!!!!(%9e!*!\r!!!$4&EJ`%!!!!#J!!!!b!!*!,J!!!9!J!!!"&G`#3"3J!N!4&D`!%!!!!#`!\r!!#J!!!"X!!!%'A`)!UD3!!%!#*3Krm!iB!!Y5!!!!@!!!!#!!3")1#%!3(`)!kC\r1J!!J4A8!N!8-!!!!%%9Z$!3!!!!0!!!!$)!!N!Z!!!!S!*!%4AF!N!8,!*!%4@X\r!"!!!!!i!!!!S!!!!L!!!"&am#!+QN!!"!!L8)Ir!1'!!,8J!!!&J!!!!J!%!5$J\rK!%"m#!1Q6S!!)%9e!*!&$!!!!""&EJ`%!!!!$`!!!!b!!*!,J!!!+!#3"%9h!*!\r&$J#3"%9V!!3!!!!3!!!!+!!!!+3!!!5LI!J#TT!!!3!)P#(r`$KJ!#e)!!!"B!!\r!!)!"!%Ji)3"!I!J$TNk!!#"&G3#3"3`!!!!34@i-"!!!!"%!!!!-J!#3#i!!!#J\r!N!4&G`#3"4!!N!4&D`!%!!!!%J!!!#J!!!$!!!!%hh`)!UD3!!%!#*3Krm!iB!!\rY5!!!!@!!!!#!!3")1#%!3(`)!kC1J!!J4A8!N!86!!!!%%9Z$!3!!!!8!!!!$)!\r!N!Z!!!!S!*!%4AF!N!85!*!%4@X!"!!!!"8!!!"B!!!!h!!!"6Tm#!+QN!!"!!L\r8)Ir!N!"K!&L3!)%!A*!!S3"J1!!!!*!!!3!iJ'%!@)#"!&b!S3"J1-!!!$MJ!!!\rj!3!iJB-!!S'-!#")!!!"B!!!!)!"!%Ji)3"!I!J$TNk!!#"&G3#3"4B!!!"!4@i\r-"!!!!"S!!!!-J!#3#i!!!&J!N!4&G`#3"48!N!4&D`!%!!!!'`!!!&!!!!%`!!!\r&Xh`)!UD3!!%!#*3Krm#3!'%!@*!!J3"FN!#K!'#!B3"BJ)%!A)#K!'!i`!!!11!\r!!$N!!!#"J`!#JB`!*%J!!!&J!!!!J!%!5$JK!%"m#!1Q6S!!)%9e!*!&&J!!!$K\r&EJ`%!!!!(!!!!!b!!*!,J!!!8!#3"%9h!*!&'`#3"%9V!!3!!!!G!!!!+!!!!AB\r!!!B3I!J#TT!!!3!)P#(r`$KJ!#e)!!!"B!!!!)!"!%Ji)3"!I!J$TNk!!#"&G3#\r3"3`!!!!34@i-"!!!!"i!!!!-J!#3#i!!!#J!N!4&G`#3"4d!N!4&D`!%!!!!(`!\r!!#J!!!'5!!!'Dh`)!UD3!!%!#*3Krm!iB!!Y5!!!!@!!!!#!!3")1#%!3(`)!kC\r1J!!J4A8!N!8-!!!!%%9Z$!3!!!!J!!!!$)!!N!Z!!!!S!*!%4AF!N!8I!*!%4@X\r!"!!!!#%!!!!S!!!"VJ!!"X*m#!+QN!!"!!L8)Ir!1'!!,8J!!!&J!!!!J!%!5$J\rK!%"m#!1Q6S!!)%9e!*!&$!!!!""&EJ`%!!!!)J!!!!b!!*!,J!!!+!#3"%9h!*!\r&)3#3"%9V!!3!!!!M!!!!+!!!!FS!!!F1I!J#TT!!!3!)P#(r`$KJ!#e)!!!"B!!\r!!)!"!%Ji)3"!I!J$TNk!!#"&G3#3"3`!!!!34@i-"!!!!#3!!!!-J!#3#i!!!#J\r!N!4&G`#3"5-!N!4&D`!%!!!!*3!!!#J!!!(Q!!!(@R`)!UD3!!%!#*3Krm!iB!!\rY5!!!!@!!!!#!!3")1#%!3(`)!kC1J!!J4A8!N!8-!!!!%%9Z$!3!!!!Q!!!!$)!\r!N!Z!!!!S!*!%4AF!N!8P!*!%4@X!"!!!!#F!!!!S!!!#!J!!"kpm#!+QN!!"!!L\r8)Ir!1'!!,8J!!!&J!!!!J!%!5$JK!%"m#!1Q6S!!)%9e!*!&$!!!!""&EJ`%!!!\r!+!!!!!b!!*!,J!!!+!#3"%9h!*!&*`#3"%9V!!3!!!!T!!!!+!!!!Ki!!!J#I!J\r#TT!!!3!)P#(r`$KJ!#e)!!!"B!!!!)!"!%Ji)3"!I!J$TNk!!#"&G3#3"3`!!!!\r34@i-"!!!!#S!!!!-J!#3#i!!!#J!N!4&G`#3"5N!N!4&D`!%!!!!+`!!!#J!!!)\rk!!!)6(`)!UD3!!%!#*3Krm!iB!!Y5!!!!@!!!!#!!3")1#%!3(`)!kC1J!!J4A8\r!N!8-!!!!%%9Z$!3!!!!X!!!!$)!!N!Z!!!!S!*!%4AF!N!8V!*!%4@X!"!!!!#d\r!!!#`!!!#9J!!#*Pm#!+QNq(rr*!!!3!)P#(r`$[N!!!i!!!!X!3!!$J!!!#3!!3\r!!MaJ!!%iBm'fX'3!"MJ!!!'`"!!)1!!!!,!%!!Si!!!!X!3!$$J!!!#`"!!11!!\r!!C!!"!!31'!!!%J!!!&J!!!!N!"r!"3iB!!!5!!!!@!!!!#3!(m!'$KJ!!")!!!\r"B!!!!*!!I`!F1!!!!*!!(`!J1!!!!C!!(`!N1'!!!)!"!%Ji)3"!I!J$TS2Krra\r1J!!J4A8!N!8Z!!!!A%9e!*!&,J!!!'a&G3#3"5i!!!"m4@i-"!!!!$i!!!!-J!#\r3#i!!!,!)!!!!4AF!N!8Y!*!%4@X!"!!!!$m!!!!S!!!#N!!!!!S'I!J#TT!!!3!\r)P#(r`$KJ!"e)!!!"B!!!!)!"!%Ji)3"!I!J$TNk!!#"&G3#3"3`!!!!34@i-"!!\r!!%!!!!!-J!#3#i!!!#J!N!4&G`#3"6m!N!4&D`!%!!!!33!!!#J!!!+X!!!+4A`\r)!UD3!!%!#*3Krm!iB!!@5!!!!@!!!!#!!3")1#%!3(`)!kC1J!!J4A8!N!8-!!!\r!%%9Z$!3!!!"#!!!!$)!!N!Z!!!!S!*!%4AF!N!9"!*!%4@X!"!!!!%-!!!!)!!!\r#b!!!#S)iB!!!6S!!)%9V!!3!!!"%!!!!+!!!!Y`!!!URI!J#TT!!!3!)P#(r`$K\rJ!#e)!!!"B!!!!)!"!%Ji)3"!I!J$TNk!!#"&G3#3"3`!!!!34@i-"!!!!%8!!!!\r-J!#3#i!!!#J!N!4&G`#3"83!N!4&D`!%!!!!4J!!!!3!!!,i!!!+jNk!!#"&D`!\r%!!!!4`!!!!J!!!--!!!,(MKJ!!"1J!!J4@X!"!!!!%J!!!!%!!!$)!!!#f*1J!!\rJ4@i&!3!!!%N!!!!(rrrrq`!!#f*6Ef0VCA3!!%9Z"33!!!"+!!!!#2rrrrS!!!Y\rL!*!)4AB&!*!%53#3"%9["33!!!!$!!!!C2rrrrN!!!YL!*"N4AB&!*!%5J#3"%9\rf#J#3"%X!!!"J4AB+!*!%6!!!!&a&GJS!N!40!!!!@%9f#J#3"%i!!!"84AB+!*!\r%6`!!!&"&GJS!N!43!!!!6%9f#J#3"&%!!!")4AB+!*!%8J!!!%4&GJS!N!46!!!\r!3%9f#J#3"&3!!!!m4AB+!*!%93!!!$K&GJS!N!4@!!!!0%9f#J#3"&F!!!!`4AB\r+!*!%@!!!!#a&GJS!N!4C!!!!+%9f#J#3"&S!!!!N4AB+!*!%@`!!!#"&GJS!N!4\rF!!!!(%9f#J#3"&d!!!!B4AB+!*!%AJ!!!"4&GJS!N!4I!!!!%%9f#J#3"'!!!!!\r-4AB+!*!%B3!!!!K&E`S%!!!!6!!!!!L!!*!24AB!N!9)!*!%4AB2!*!%BJ!!!!4\r&E`S%!!!!63!!!!L!!*!24AB!N!9(!*!%4AB2!*!%BJ!!!!4&E`S%!!!!6J!!!!L\r!!*!24AB!N!9'!*!%4AB2!*!%BJ!!!!4&E`S%!!!!6`!!!!L!!*!24AB!N!9%!*!\r%4AB2!*!%BJ!!!!4&E`S%!!!!8!!!!!L!!*!24AB!N!9$!*!%4AB2!*!%BJ!!!!4\r&E`S%!!!!83!!!!L!!*!24AB!N!9"!*!%4AB2!*!%BJ!!!!4&E`S%!!!!8J!!!!L\r!!*!24AB!N!8r!*!%4AB2!*!%BJ!!!!4&E`S%!!!!8`!!!!L!!*!24AB!N!8Y!*!\r%4AB2!*!%BJ!!!!4&E`S%!!!!9!!!!!L!!*!24AB!N!8V!*!%4AB2!*!%BJ!!!!4\r&E`S%!!!!93!!!!L!!*!24AB!N!8T!*!%4AB2!*!%BJ!!!!4&E`S%!!!!9J!!!!L\r!!*!24AB!N!8R!*!%4AB2!*!%BJ!!!!4&E`S%!!!!9`!!!!L!!*!24AB!N!8P!*!\r%4AB2!*!%BJ!!!!4&E`S%!!!!@!!!!!L!!*!24AB!N!8M!*!%4AB2!*!%BJ!!!!4\r&E`S%!!!!@3!!!!L!!*!24AB!N!8K!*!%4AB2!*!%BJ!!!!4&E`S%!!!!@J!!!!L\r!!*!24AB!N!8I!*!%4AB2!*!%BJ!!!!4&E`S%!!!!@`!!!!L!!*!24AB!N!8G!*!\r%4AB2!*!%BJ!!!!4&E`S%!!!!A!!!!!L!!*!24AB!N!8E!*!%4AB2!*!%BJ!!!!4\r&E`S%!!!!A3!!!!L!!*!24AB!N!89!*!%4AB2!*!%BJ!!!!4&E`S%!!!!AJ!!!!L\r!!*!24AB!N!85!*!%4AB2!*!%BJ!!!!4&E`S%!!!!A`!!!!L!!*!24AB!N!83!*!\r%4AB2!*!%BJ!!!!4&E`S%!!!!B!!!!!L!!*!24AB!N!81!*!%4AB2!*!%BJ!!!!4\r&E`S%!!!!B3!!!!L!!*!24AB!N!8,!*!%4AB2!*!%BJ!!!!4&E`S%!!!!5`!!!!L\r!!*!24AB!N!8)!*!%4AB2!*!%BJ!!!!4&E`S%!!!!B`!!!!L!!*!24AB!N!8#!*!\r%4AB2!*!%BJ!!!!4&E`-%!!!!!`!!!!5!!*!,4AB&!*!%!`#3"%9[$`3!!!"L!*!\r%J!#3"d9S!!"6@8e)!!!$0!!!!!F!!!!#!*!4!3#3"J2Z!!!!%!!!!rq3"3!!!rm\r!!3!!!!6rN!3"!*!%!`!"!*!'""6rN!3!!!3@!!%!!!!%rj!%!3#3""m!!3#3"J3\rh!!!!$!!!"$VrN!3!!!4C!!!!!3#3"J4p!!!!$!!!")$rN!3!!!5I!!!!!3#3"J5\rk!!!!$!!!",hrN!3!!!6F!!!!!3#3"J8'!!!!$!!!"3RrN!3!!!8h!!!!!3#3"J9\rQ!!!!3!!!"AhrN!3!!!@`!!3!!!!%rj!%!3-!!!"B!!!!&`!!!'3"!`!!!&`!!!!\rB!!!!!`%$!!!!B!!!!"N!!!!$!!-!!!!i!!%!N!B&i!!!!$J!!!AMrj!%!!!'$3!\r$!!!!"2q3"!%$!!!!@!!!!"F!!!"N!3-!!!"F!!!!'!!!!!-"!`!!!'!!!3#3"JC\r'!!!!$!!!"NRrN!3!!!CS!!!!!3#3"JDG!!!!$!!!"U$rN!3!!!Dr!!!!!3#3"JE\rT!!!!$!!!"ZcrN!3!!!F,!!!!!3#3"JFe!!!!$!!!"cMrN!3!!!GA!!!!!3#3"JH\r+!!!!$!!!"ihrN!3!!!HX!!!!!3#3"JIG!!!!$!!!"q$rN!3!!!Ir!!!!!3#3"JJ\rR!!!!$!!!##VrN!3!!!K*!!!!!3#3"JKd!!!!$!!!#(IrN!3!!!L@!!!!!3#3"JL\rq!!!!A!!!#A%!!!"X!!!*M`!!!(`!!!QYrj!%!!!+!`!"!!!!,rrrrrd"!*!%(`!\r"!*!'#L3!!!!-!!!+*rq3"!!!#N)!!!!"!*!'#Q%!!!!-!!!+C2q3"!!!#Rm!!!!\r"!*!'#TVrN!3!!!UN!!!!!3#3"JV"!!!!$!!!#X6rN!3!!!VM!*!+#a[rN!3!!!X\rE!!!!!3#3"JY9rj!%!!!,A`#3#JZBrj!%!!!,Q!!!!!,rrrrq!!!!"3!!!!B!!J!\r!!!B!!!!,!*!("`!!!'3!!!!#!!$rN!3!!Irrrri!![rrrr`!!!!`!!!!+!!0!!!\r!-3!!!!X!N!Fb!!!!!J!!!!)!!!!c!!!!#J!!!!B!!!!d!!!!#J!!!!J!!!!e!!!\r!#J!!!!S!!!!f!!!!#J!!!!`!!!!h!!!!#`!!!!i!!!!i!!!!!`!!!"!!!!!j!!!\r!!J!!!"3!!!!k!!!!!J!!!"J!!!!l!!!!!J!!!"`!!!!m!!!!!`!!!#!!!!!p!!!\r!!`!!!#3!!2rrrrd!!Irrrr`!!IrrrrX!!!!(!!!!!3!!!!F!![rrrrVrN!3!!!!\r)!!!!![rrrrRrN!3!!!"N!!!%U%G98dN!!$-ZAepMG&pI0P0[BfYPG%Cf!!ALAep\rfG&pI0P0[BfYPG!!%@h4SDA-!"[P6Ef0VCA3!!"abC@C$Eh9ZG!!(mepIGR"dFL3\r!!%)ZAepNG&pI0P0[BfYPG%Cf!!*2,PpIC'aIAdC3GJ!%R%!h0$N!!VFZBQPZC&p\rI0P0[BfYPG%C3GQN!!kdZ4e9659pPFR*[FJ!%Y%!h06%!"H`ZBfpZEQ9MG&pI0P0\r[BfYPG%C3GQN!",C!0c8c!!*#,QaTFh4PEPpI0P0[BfYPG%CT!!5i3$Fe03!&QLj\rKBf0PF(4IAcC6Ef0VCA4'8(C3D3!(A#j(990*Af9bFQpbAfjTE!!%ZN!h06F!!ZB\rZFQ9KC&pI0P0[BfYPG%C3GQN!!j3ZAep`G(*ICfaeC3!'!f*eCQCPFJ!'pf*eCQa\rPEJ!(C@CbEfeXC@i!",a!0c8j!!18,RGbDA4PAemf8fpMDf9d4P"fD3!%e%!h0M%\r!!fdZFQ9MGQCbEfeIAcC6Ef0VCA4'8(CTD9"f8'N!"0C!0cBc!!!C,R0PEQ4dEep\rI0P0[BfYPG%C3GQPT8(CT!!6B3$Ff03!#p#jRCA4cEf0VEQ&YC9pI0P0[BfYPG%C\r3GP"T!!6D3$Ff0`!#fLjRCA4`C@9bEQ&YC9pI0P0[BfYPG%C3GP"T!!6F3$Ff13!\r$abjRCA4cEf0VEh"dAemf8fpMDf9d4QPT8(C3D3!%p%!h0c%!!V%ZFf9dFfpMDfp\r`G&pI0P0[BfYPG%CTD9"fD3!%pN!h0c-!!pSZCQ0ZG'aIAcC6Ef0VCA4'9@PT!!6\ri3$Fh03!%I#jTEf0dE&pI0P0[BfYPG%C9D9"f!!6k3$Fh0`!'`5jQFh4KG&pI0P0\r[BfYPG%C30(0dBA3!"93ZG'PYC3!$RQ*eCJ!%+h0dBA3!"T*cG&pNCAB!"X"cG&p\rTEQm!"aecG&pYEf4P!!$5Fh4IEQaTEQX!"L4cG&peD@3!"ZacG&pRD@3!"kPcG&p\rbC'9f!!H[Fh4IFfPkC3!!I(0dAf&dD@eP!!$!Fh4IEA4TE@8!!*acG&pMG'PYC3!\r#CA0dAf*XDh0THQ8!!IpcG&pLE'pMDh-!"2a!0cFj!!)6,QacC@9VAemf8fpMDf9\rd4QaT!!383$Fi-3!&"bjQG(*eEQ0KG'9IAcC6Ef0VCA4'E!!%&N!h1$-!!SBZDA0\rKG(4jAemf8fpMDf9d4RB!"2mZFfKeG'4[GfjIAcC6Ef0VCA4'D3!%'8!h1$B!!`!\rZF(*PAh0PE'9MG&pI0P0[BfYPG%C9Be9M9@-!![SZFf9XC@0dAemf8fpMDf9d4P"\r9Be"9Be"9B`!%R5j`Eh0dAh0PE'9MG&pI0P0[BfYPG%C9Be9M9@-!"$4!0cN`!!I\rrAep59&4*Aemf8fpMDf9d!!I8AepNG&pI0P0[BfYPG%Cf!!0hF'pcG&pcC@aPBh4\rIAcC6Ef0VCA4'9@09Be9M!!&)Ff9XC@0dAemf8fpMDf9d4P"9Be"9Be"9B`!#E("\rbC9pcC@aPBh4IAcC6Ef0VCA4'9@09Be9M!!2ZFfKeG'4[GfjIAcC6Ef0VCA4'D3!\r"3QPcBA4dH9pI0P0[BfYPG%Cf!!4pCR4bG@jMBA4PAemf8fpMDf9d4Q`!!@"XFf9\rPDepI0P0[BfYPG%CXD3!&,fCcG'&dAemf8fpMDf9d4P!dFh4KG!!$EfP[Bh4XAem\rf8fpMDf9d4P9T8(B!!NGQBfjdE&pI0P0[BfYPG%C9D@N!!8YcCA4cEf0VEh"dAem\rf8fpMDf9d4QPT8(CT!!,)Cf9dFfpMDfp`G&pI0P0[BfYPG%CTD9"f8'N!!8"RCA4\r`C@9bEQ&YC9pI0P0[BfYPG%C3GP"T!!((Cf9dFfpMDfjKE@9IAcC6Ef0VCA4'8(C\r3D3!(((0PEQ4dEepI0P0[BfYPG%C3GQPT8(CT!!*`FQ9MGQCbEfeIAcC6Ef0VCA4\r'8(CTD9"f8'N!!MehFQPdC9pI0P0[BfYPG%C3GQN!!DCbC@&NAemf8fpMDf9d4P"\rfD3!%PQ&MBf9`G&pI0P0[BfYPG%C3GP"T!!()E'PcG'9ZAemf8fpMDf9d4QN!"1T\rMEfjZC@0dAemf8fpMDf9d4P"fD3!"6'*TEQ4IAcC6Ef0VCA4'8(CT!!0q9%p$!!H\r%AepMG&pI0P0[BfYPG%Cf!!!*,e"29e)!N!BfS!!!8UJ!!!&G!!!h$!!!'j`!!"h\rB!*!'!fi!!!!S!*"!4@F!!%9V!!3!!!!"!!!"2!!!!#!!!!C5I!J#TT2Krrb3!!%\r!#*3Krm#`J3"HN!#K!'#!B3"JJq-!!$J!!!#`(`!+S!%!AL`!!!0"JJ"N3)!!%#`\r!!!&"JJ!85!!!Z#`!!!9!J!#`5!!!Q+JI!!a8!!Gl3B)!$$J!!!5`(`!+L"m!2#J\r!!!*"JJ!3L"m!2#J!!!0!JJ!31!!!"jJI!$a)!!"d1!!!"TJI!$a)!!"SU"m!$&3\r!"hY"JJ!-1!!!",!I!!U)(`!m+!!!"d'#!%L)(`!m+!!!!N'#!"#)(`!m+!!!!d#\r#!"!i!!!(Q"m!2%J!!#3i!!!"Q"m!2%J!!"LS(`!-9!!(rd'#!!`i!!!"X"m!#S!\rI!!BS!!!!3B)!)+JI!!SX!!!!3B)!&)"r!!DSR`!+5!!!!@!!!!")!!!"B!!!!)!\r"!%Ji)3"!I!J$TS2Krra1J!!J4A8!N!8#!!!"'%9e!*!&!`!!!5"&EJ`%!!!!)`!\r!!!b!!*!,J!!"2!J!!!"&G`#3"3%!N!4&E`8%!!!!*!!!!#$rrrrh!!!*m+Vq"`#\r3#ql!!!%!"!#3$%9f#J#3"$3!!!!84@X!"!!!!$8!!!$%!!!!eJ!!#Rjm#!+QNq(\rrr*2"rrL6SIrdN!!"!!L8)Iq`1k-!!)2M!'Blh3!!U"d!%*!!(`!q,!!!!%##!$5\r!(J!UN!!I!##J(J!ZX"m!(MJ!!"#B(`!XJ"i!**!!(`!`S"i!+,!I!#ii!!!&Q"m\r!2+JI!!a8!!Eh3B)!$$J!!"#`(`!+J"m!"LJ!!!""JJ!JU"m!#L`!!!""JJ!8J(m\r!"ULI!!T)!!!"B!!!!%J!!!&J!!!!J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIrd6S!\r!)%9e!*!&!J!!!*K&G3#3"3-!!!#J4@i-"!!!!,X!!!!-J!#3#i!!!-3B!!!!4AF\r!N!8e!*!%4@m&"!!!!,`!!!!Jrrrrp`!!$05UrJF!N!c"!!%!"!#3$%9f#J#3",d\r!!!!84@X!"!!!!,i!!!%!!!!"2!!!$B"m#!+QNq(rr*2"rrL6SIrdN!!"!!L8)Iq\r`1k-!!)2M!'Blh3!!U"d!%#`!TL&"JJ"B3)!!(#`!TKj"JJ"-3)!!5#`!TKT!J!"\r!5!!!2#`!!!""JJ!)5!!!-$J!!"#B(`!XJ"i!**!!(`!`S"i!+,!I!#ii!!!$Q"m\r!2$J!!!#3!"m!2NJ!!"3i!!!(Q"m!2+JH!"#3!"m!2UJI!!a8!!Fj3B)!%$J!!!L\r`(`!+5!!!$$J!!!#`(`!+J"m!"LJ!!!""JJ!JU"m!#L`!!!""JJ!8J(m!"ULI!!T\r)!!!"B!!!!%J!!!&J!!!!J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIrd6S!!)%9e!*!\r&!J!!!04&G3#3"3-!!!$F4@i-"!!!!,m!!!!-J!#3#i!!!3!B!!!!4AF!N!@q!*!\r%4@m&"!!!!-!!!!!Jrrrrp`!!%(1UrJF!N!c"!!%!"!#3$%9f#J#3"-%!!!!84@X\r!"!!!!-)!!!#i!!!"XJ!!%4Ym#!+QNq(rr*2"rrL6SIrdNi(rm*!!!3!)P#(rX$Z\r$!!#$``"Q1l`!!+JF!"!X!!!!3))!$+2p!#L6rJ!BU"i!$&3!"rp!JJ!3U"i!$&3\r!"le"JJ!31!!!),!H!!T)!!!-1!!!!,!H!!U!(J!'+!!!!%'#!##S(J!+,!!!!%'\r#!"5!IJ!'U*i!#NJ!!!&J!!!!5!!!!@!!!!#!!3"B1#%!8(`)!kD$iIrmJm(rq)1\rKrr5$JIr`6S!!)%9e!*!&!J!!!)K&G3#3"3-!!!#3!%9Z$!3!!!$%!!!!$)!!N!Z\r!!!#i)!!!!%9h!*!&`J#3"%9["33!!!$&!!!!)2rrrrF!!"+SU[i(!*!-`3!"!!3\r!N!a&GJS!N!6'!!!!&%9V!!3!!!$(!!!"5!!!!Li!!"0)I!J#TT2Krrb6`IriNk(\rrp*!!!3!)P#(rX$ZM!!#$i`"Q1pd!!+JG!"!X!+BH3B)!P%#!!$3X!+BD3B)!L%#\r!!"`X!+B)3B)!I%#!!(JX!+B%3B)!A%J!!'`X!+BF3B)!8%J!!'!X!+BM3B)!4%#\r!!"`X!+BK3B)!6%#!!%JX!+BJ3)!!,%J!!$`X!!!!3B)!#%J!!$!i!!!!J(i!*V!\r$!!!i!!!!N!!I!$j)!!!S1!!!!CJI!$`i!!!jN!!I!$j)!!!81!!!!CJI!$bS(J!\r3N!!I!$kS(`!-9!!(rd##!"#S(`!-9!!([8'#!"!i!!!JX"m!#NJ!!!`i!!!!X"m\r!#S!I!!BS!!!!3B)!)+JI!!SX!!!!3B)!&)"r!!DSR`!+5!!!!@!!!!")!!!"B!!\r!!)!"!&Ji)3"3I!J$TS2Krrb$`IriJk(rp%k!!#"&G3#3"3)!!!%F4A8!N!8$!!!\r"*%9Z$!3!!!$)!!!!$)!!N!Z!!!&)'!!!!%9h!*!&a`#3"%9["33!!!$*!!!!)2r\rrrrF!!"CKU[i(!*!-`3!"!!3!N!a&GJS!N!6+!!!!&%9V!!3!!!$,!!!"N!!!!!+\rX!!!A5R`)!UD6iIrmN!!"!!L8)Ip31q-!!%J!!!&J!!!!J!)!!*!!(`!#1!!!!CJ\rI!$`iB!!%5!!!!@!!!!#3!(m!3S"r!%+6i`!!J')!!%J!!!&J!!!!X'%!8$J!!"k\r`!3"51'"!!%J!!!&J!!!!N!"K!&Ji!%!!N!!"!&b!!J!!N!!"!'#!(`"#N!!"!'5\r!!3"B+!!!!%##!"JiB!!h5!!!!@!!!!!iI`!!5!!!h$KK!$K)!!!"B!!!!(aJ"c3\rX!+BL3B)!,%#!!"`X!+BI3B)!5%#!!&JX!+BE3B)!+%J!!%`X!!!!3B)!@%J!!%!\riB!!h5!!!!@!!!!!iI`!!5!!!L$KJ!$G)!!!"B!!!!$Kr!!")!!"d1'!!'%J!!!&\rJ!!!!1(m!!%J!!'!iB!!b5!!!!@!!!!!iI`!!5!!!6$J!!!+B(`!Y1!!!!*JI!#`\ri!!!!N!!I!$!i!!!!X"m!,MKr!$3iJ!!!1+!!#%J!!!&J!!!!1!!!!*!!(`!qJ!%\r!9*!!(`!11(m!!)!"!,Ji)3#`I!J$TS2Krra1J!!J4A8!N!A-!!!!&%9d!`#3"-d\r!!!!F4A8!N!A1!!!!-%9d!`#3"-m!!!"%4A8!N!A3!!!!5%9e!*!&d3!!!'"&G!-\r!N!3N!!!!G%9e!*!&dJ!!!*4&G3#3"G-!!!#S4A8!N!A5!!!!k%9e!*!&dJ!!!2a\r&G3#3"G)!!!%34A8!N!A5!!!"*%9e!*!&e!!!!@"&EJd#!!!!eJ!!!"D!!*!(#!!\r!0!&N!!S!!)D!!"m!N!T&GJS-!!!!e`!!!"*&EJ`%!!!!f!!!!!b!!*!0!C!!!*!\r%4AF!N!A,!*!%4AF0!*!%eJ!!!!K&D`!%!!!!f3!!!I!!!!-d!!!E4h`)!UD6iIr\rmNm(rq*!!!3!)P#(rN!!li`!!N!#"!)b!J3#-5!!!!@!!!!#!!J!!N!!I!!)mB'P\rZ1'0PG*!!B3"%J!)!!*!!!3"!1'!!"%J!!!&J!!!!N!"r!%+!I`"#Nq-!!$J!!!#\r3!"m!2MKK!$K)!!!"B!!!!$aJFfNiJ3"%1+!!"$M"!%JiBfGZ5!!!!@!!!!!mB%P\r12)"86MLK!%Ji`2rr11!!!$N"!&JiBd981)4'@8J!!!&J!!!!1'%!@$b!8e3mS'a\r[1-%!M$MJ!!3iK&*01+9ZCdJ!!!&J!!!!1'%!@$b!39-mS'a[1-%!3$MJ!!3iK&)\rJ1+9ZCdJ!!!&J!!!!1'%!@$b!99-mS'a[10m!3MMJ!!3iK&*31+9ZCdJ!!!&J!!!\r!1'%!@$b!F(-mS("c1-%!1$MJ!!JiK'iJ1+9Z)%J!!!&J!!!!1'%!@$L"!&!iS!!\r$1-!!!6MJ!(Jj!!!!15!!!%J!!!&J!!!!1'%!8%J!!!&J!!!!1'%!@%J!!!&J!!!\r!1'%!5%J!!!&J!!!!1(m!!%J!!!&J!!!!1m-!!$J!!#L`!`!D5!!!!@!!!!#!(J!\rXN!!I!##J(J!`X"m!(MJ!!"#B(`!XJ"i!*T!!(`!`S"i!+V!I!#iiI`!!J!%!H$J\rK!("m#!1QJq(rr)2"rrK1J!!J4A8!N!AD!!!!)%9d!`#3"-d!!!!S4A3$!*!%*!!\r!!$a&G3#3"Fi!!!")4A8!N!AE!!!!D%9e!*!&h!!!!)4&G3#3"Gd!!!#X4A8!N!A\rH!!!!d%9e!*!&hJ!!!24&G3#3"Gi!!!%B4A8!N!AH!!!"2%9e!*!&h`!!!@"&G3#\r3"H!!!!&X4A8!N!AJ!!!"H%9e!*!&i!!!!B4&G3#3"H%!!!'3!%9e!*!&d`!!!D4\r&EJd#!!!!lJ!!!"D!!*!(%!!!6!'S!!S!!)D!!"m!N!T&GJS-!!!!e`!!!"*&EJ`\r%!!!!l`!!!!b!!*!0!I!!N!4&G`#3"GN!N!4&G`d!N!6Z!!!!#%9V!!3!!!$`!!!\r!k!!!"$B!!##RI!J#TT2Krrb6`IriN!!"!!L8)Ir!1q-!!$[%!!")!!!"B!!!!)!\r#!!#3!"m!!S!H!!k3!"m!$SJH!"+B(`!5L"i!%jJI!"1!(J!8N!!I!"5!(J!BN!!\rI!"L!IJ!FJ"i!)*!!I`!FN!!I!##!IJ!NJ"i!+*!!I`!NN!!I!#L!IJ!XJ"i!-*!\r!I`!XN!!I!$#!IJ!dJ"i!1*!!I`!dN!!I!$L)(J!mQ"m!2$J!!!#3!"m!2S!H!%+\r3!"m!3S"r!%+6i`!!1'!!"%J!!!&J!!!!N!"q!%+!IJ"#Nm-!!$Kr!!#!!3")1#%\r!3(`)!kD$iIrmJm(rq%k!!#"&G3#3"F`!!!!F4A3$!*!%c3!!!#4&G3#3"Fi!!!#\ri4@i0!J!!!2%!!!!@J!#3"a!!!,`![!!+!!#'J!!I!*!+4AB+$!!!!0F!!!!54@i\r-"!!!!2)!!!!-J!#3$ZJ!N!4&G`#3"I!!N!4&G`d!N!6a!!!!#%9V!!3!!!$c!!!\r$6!!!"'i!!#+5I!J#TVpKrqb3!!%!#*3Kri"mHaYjX)%!RS2L!!#$SJ!!3B)$&)!\r#!!#3!"X!!S!G!!#3!!%!@$J!!!#3!"d!!$Kl!!")!!!"B!!!!$[$!!!i!!!SX!-\r!'NJ!!!&J!!!!5!!!!@!!!!!X!`!!3))!,)!I!!!S!!!!3B)!-$KJ!!!iJ!!!JCm\r!!%J!!!&J!!!!,!-!!%'#!"3iB!!%5!!!!@!!!!")!!!-1!!!!*!!(3!!J"d!!#`\r!!!"!JJ!3S"i!1LJ!!!"!J[pm1(X!!%J!!!&J!!!!1m-!!$J!!!#3!!-!$$J!!#D\r`!`!D1!$r`*J$!#)i!!!mQ!-!)$J!!!'B!`!K5!!!!@!!!!")!!!"B!!!!#`$!!"\r!JJ!XJ"m!!#J!!!""JJ!`1'!!!$L!!!#"R`!!5!!!!@!!!!!X!`!!3B)!&$KJ!!4\r)!!!"B!!!!%J!!"Ji!!!!N!!G!!#S(J!3,!!!!8'#rkLS(J!3,!#Q)%'#!&"!J!!\rJ,!#Q(8'#!#a!J!!S,!#Q(%#!!$K)!!!F5!!!'#`!!!""JJ!S3)!!$#`!TL0"JJ!\rFJ"d!!#`!!!"!JJ&NJ!%!@*!!(3!!5!!"@+JH!"!X!!!!3))!l$Kl!!")!!!"B!!\r!!$[$!!!lJ!!!5!!!c$J!!!#3!"i!$$J!!#1`(J!D1!!!!CJH!#!i!3!iN!!H!#S\ri!!!%X"i!,MKq!!")!!!"B!!!!%J!!!&J!!!!,!-!!%##!#b!(`!!+!!!!%'#!$!\riB!!!1)!!!)'I!!")!!!"B!!!!#`$!!""JJ!81'!!"%J!!!&J!!!!5!!!'$J!!!#\r3!"d!!+JH!"!X!!!"3B,rU+JH!"!X!!!!3))!1$J!!#5`(J!D1!%!1*!!(J!U1(i\r!!%J!!!&J!!!!J"d!!#`!!!"!JJ!31j`!!5`F!!K"J2md1!!!+V!H!"SiIJ!!5!!\r!!@!!!!"mB!Fe3B)!()!G!!!X!!!!3))!2)!"!&L3!"d!!%J!!$#!IJ!J5!!!!@!\r!!!#!H`"#5!!!!@!!!!#!(3!!,!!!!%##!!b!!3"BN!!G!!!iH`!!1)!!!%J!!!&\rJ!!!!U!%!RL`!!!"!J3!31(X!!%J!!!&J!!!!1(X!!)!"!)Ji)3#!I!J$TVYKrqa\r1J!!J4A3$!*!%p!!!!"K&G!-!N!6e!!!!(%9d!`#3"-d!!!!N4A8!N!AK!!!!3%9\re!*!&d`!!!&4&G3#3"IB!!!"F4A8!N!Ah!!!!K%9e!*!&dJ!!!*K&G3#3"H%!!!$\r)4A8!N!Ai!!!!r%9e!*!&pJ!!!34&G3#3"IF!!!%X4A8!N!A5!!!"3%9e!*!&i3!\r!!FK&G3#3"IJ!!!))4A8!N!Af!!!#%%9e!*!&p`!!!MK&G3#3"G)!!!*-4A8!N!A\r6!!!#M%9e!*!&d`!!!VK&G3#3"IN!!!,N4A8!N!Ak!!!#m%9e!*!&q`!!!a4&G3#\r3"IS!!!-X4@i0!J!!!33!!!!5J!#3"bJ!!%3#p!!+!!##!!"B!*!'4AB+$!!!!38\r!!!!14@i-"!!!!3B!!!!-J!#3$30-!*!%4AF!N!Ac!*!%4AF0!!!!!33!!!!)4@X\r!K!!!!3F!!!"SJ!#3"h`)!UD6iIrmN!!"!!L8)Ir!I(mEHE#"!&j"JJ!iJ')!!)!\r$!!!X!!!!3))!%)!I!!#!BJ!!N!!$!!#S!3"H,!!!!%#"!"!iI`!!5!!!!@!!!!!\riI`!!J!%!5$JK!%"m#!1QJq(rr%k!!#"&G!-!N!6e!!!!(%9d!`#3"28!!!!`4A8\r!N!Ak!!!!5%9Z$!3!!!%)!!!!$)!!N!Z!!!"S#!!!!%9h!*!%!3F!N!4&D`!%!!!\r!i3!!!'!!!!@)!!!T8h`)!UD6iIrmNm(rq*!!!3!)P#(r`$[$!!#!BJ!!5!!!!@!\r!!!!li`!!J')!!%J!!!&J!!!!X(m!')!H!!k3!"m!(*2I!'BiI`!!J!%!5$JK!%"\rm#!1QJq(rr)2"rrK1J!!J4A3$!*!%c`!!!"K&G3#3"!%*!!!!(%9d!`#3"-m!!!!\rS4A8!N!A3!!!!,%9Z$!3!!!%+!!!!$)!!N!Z!!!"J%!!!!%9h!*!&i3#3"%9V!!3\r!!!%,!!!!@!!!"FJ!!#SAI!J#TT2Krrb3!!%!#*3Krm#3!'%!@)"K!&K)!!!"1q-\r!!$J!!#L`!`!D5!!!!@!!!!"mB!Fe3B)!$$KJ!!")!!!)S(m!2)!"!%Ji)3"!I!J\r$TS2Krra1J!!J4A8!N!AK!!!!'%9e!*!&d`!!!#K&EJ`%!!!"$!!!!!b!!*!,J!!\r!@!J!!!"&G`#3"!%,!*!%4@X!"!!!!3d!!!+d!!!''!!!,50m#!+Q[Z(rh*!!!3!\r)P#(rN!!lJ`!!N!#"!)b3!+%!N!#$SJ!!Jq)!!)0K!)b!!3#3!#`!!"""JJ!81'!\r!&NJ!!!&J!!!!5!!#B)JE!!%S!!!#3B)!&$KJ!#p)!!!"B!!!!%J!!N5)(!!m+!!\r!"%##!$#!(!!q,!!!!%'#!"3iB!!p5!!!!@!!!!")!!)F1'!!*8J!!!&J!!!!5!!\r#$)JF!$`S!!!"3B)!&$KJ!$K)!!!"B!!!!%J!!I!i!!!%Q"`!2$Km!!")!!!"1m-\r!!)!#!!#3!!-!$$J!!##`!`!D1!$r`*J$!#)i!!!mQ!-!)$J!!!'B!`!K1!!!!*J\r$!#1!H`!%2!1"!#J!!!&!JJ!35!!!!@!!!!")!!!)J(X!"*!!IJ!NS"X!!V!H!#J\ri!!!!N!!H!#UJ(!!HX"i!,MJ!!!#B(J!b1!!!!*JH!$-i!!!!Q"i!0$J!!!#B(J!\re1(i!!%J!!!&J!!!!1d-!!(p!"c9"JJ!F1!!!!CJF!$ar3`Fd5!!!!@!!!!")!!%\rJL"`!%bJ!!!""JJ!81'!!*%J!!!&J!!!!5!!"")!I!!#3!!%!1$J!!!#3!"m!!%J\r!!!&J!!!!,!-!!%##!#b!(3!!+!!!!%'#!$!iB!!!1)!!!)'G!!")!!!"B!!!!#`\r$!!""JJ!81'!!"%J!!!&J!!!!5!!!'$J!!!#3!"m!!+JH!"!X!!!"3B,rU)!I!!!\rX!!!!3))!%+JH!"!X!!!!3B)!C$J!!!'B(!!mJ"m!!#`!!!""JJ!N1b$rri!I!!!\rX!!!!3))!$)!"!$L3!"m!!$Kj!!")!!"-U(i!%%J!!!&J!!!!1`-!!)!I!!!X!!!\r!3))!$)!"!$L3!"m!!$Ki!!")!!!J1Z!!!)!I!!!X!!!!3))!$)!"!$L3!"m!!$K\rh!!#!!3"i1#%!F(`)!kDkiIrF6S!!)%9d!`#3"23!!!!F4A3$!*!%p3!!!#"&G3#\r3"G)!!!!i4A8!N!A5!!!!9%9e!*!&dJ!!!(a&G3#3"G)!!!#-4A8!N!A5!!!!U%9\re!*!&i3!!!-"&G!-!N!5m!!!!b%9e!*!%!3i!!!%)4A8!N!Ai!!!"@%9e!*!%!3m\r!!!&i4A8!N!A5!!!"P%9e!*!&pJ!!!E"&G3#3"IF!!!(B4A8!N!A5!!!"l%9e!*!\r%!3m!!!*F4@i0!J!!!43!!!!5J!#3"dJ!!E3#B!!+!!##!!!i!*!'4AB+$!!!!38\r!!!!14@i-"!!!!48!!!!-J!#3$3+d!*!%4AF!N!3"$3#3"%9h$3!!!!%8!!!!#%9\rV!!3!!!%@!!!"p!!!"dB!!$2hI!J#TVmKrq53!!%!#*3Krk!lJ`!!Jq)!!)2#!!#\r)!`!m+!!!!8'#!"3iB!!i5!!!!@!!!!")!!'X1!!!!TJF!$`iI!!!5!!!!6ZM!!#\r!BJ!!5!!!!@!!!!#`I3!BJ!)!!*!!(3!-1!!!(l!G!"Si!2r!Q"d!)MJ!rrqB(3!\rJ1!!!!*JG!#%i!!!!Q"d!)cJ!!!#3!"d!*$J!!!#`(3!S1!!!!*!!(3!US"`!(V!\rG!#ii!!!!Q"d!-MJ!!!#B(3!c1!!!!*JG!$3i!!!!Q"d!06Kp!!")!!!"B!!!!$Y\rM!!"rB!Fe3B)!($J!!!'B(!!mIf-(0%J!!!&J!!!!5!!!k)!H!!#3!!%!1$J!!!#\r3!"i!!%J!!!&J!!!!,!-!!%##!#b!(`!!+!!!!%'#!$!iB!!!1)!!!)'I!!")!!!\r"B!!!!#`$!!""JJ!81'!!"%J!!!&J!!!!5!!!'$J!!!#3!"i!!+!G!#iS!!!!3B,\rrU)!H!!!X!!!%3B,rR)!H!!!X!!!!3B)!1)!H!!!X!!!%3B)!,$J!!!'B(!!m1d$\rrri!H!!!X!!!!3))!$)!"!$L3!"i!!$Kk!!")!!!`J"d!+T!!(!!JS"d!,V!F!"i\rl)!!!J"i!!#`!!!"!JJ!-J!%!1*!!(J!!1(N!!)!"!'Ji)3"JI!J$TVXKrq41J!!\rJ4A3$!*!%p!!!!"4&G!-!N!6e!!!!'%9e!*!&dJ!!!#a&G3#3"H%!!!"%4A3$!*!\r%c`!!!%a&G3#3"G!!!!"34A3$!*!%`!!!!&a&G3#3"IJ!!!$34A8!N!3"$`!!!2"\r&G3#3"IB!!!%-4A8!N!Ah!!!"0%9e!*!&dJ!!!8K&EJd#!!!"&`!!!"+!!*!(1!!\r"%!&-!!S!!))!!$J!N!C&GJS-!!!""3!!!!j&EJ`%!!!"'!!!!!b!!*!0!I3!N!4\r&G`#3"!%@!*!%4AF0!!!!!4F!!!!)4@X!"!!!!4N!!!0`!!!)#J!!194m#!+Q[d(\rrk*!!!3!)P#(rX$[M!!#3!)%!E$Y&!!#$`J!!L!-!2#J!!!&!JJ!mJ"m!2L`!!!"\r"JJ!JJ(m!2NJ!!!&J!!!!1!!!!*!!(`!q1'!!!%J!!``iB!!j5!!!!@!!!!")!!,\rmL"m!2#J!!!*"JJ!XL"m!2#J!!!0"JJ!JL"m!2#J!!!G"JJ!81'!!18J!!!&J!!!\r!5!!#b)JI!$`S!!!#3))!V)JI!"-S!!!!3B)!&$KJ!!Y)!!!"B!!!!%J!!U")!!!\r"B!!!!#`$!!"!JJ!XJ"i!!#J!!!""JJ!d1'!!!$L!!!#"RJ!!5!!!!@!!!!!X!`!\r!3B)!'$KJ!!4)!!!"B!!!!$KJ!!")!!*8L"m!2#J!!!*"J[qXL"m!2#J!!!0"JJ!\rXL"m!2#J!!!G"JJ!JJ(m!2NJ!!!&J!!!!1!!!!*!!(`!q1'!!!%J!!K5)(`!m+!!\r!!d##!!`i!!!&5!!!#$J!!!'B(`!m1'!!4NJ!!!&J!!!!I(XEH8'#!"!iH`!!1*m\r!!%J!!!&rI0Yj3))!C$Kr!!")!!!"1!!!*l!$!"T)!!!"B!!!!$J!!!'B(`!m1(m\r!!$L!!!@"R`!#JB`!%%J!!!&J!!!!,!-!!%#!!"3i!!!"Q"m!2$KJ!!")!!'!1'!\r!$%J!!!&J!!!!5!!"F$J!!!'B(`!m1(m!!%J!!!%lS`!!1!!!(V!$!"SiB%!!5!!\r!!@!!!!#3!(d!)$J!3!#3!"d!*)!#!!#3!"d!+)!I!%+3!"d!,)!G!#!S!!!!3))\r!&$KJ!$G)!!!"B!!!!%J!!4!iI3!!5!!!!@!!!!"mB!Fd,!#Q)N'#!#a!J!!F,!#\rQ(d'#!%"!J!"-,!#Q'd'#!#4)!!"!,!!!!%'#!%K)!!!d1'!!0dJ!!!&J!!!!5!!\r!`$KJ!$G)!!!"B!!!!%J!!,!iB!!B5!!!!@!!!!")!!#J1'!!-NJ!!!&J!!!!5!!\r!N!!i!!!#Q"m!,6J!!!#B(`!X1!!!!*!!(`!`1!!!!,!I!#iiI`!d1)!!!$LJ!!K\r)!!!"B!!!!$J!!!#3!"m!2S!G!"b3!"m!$MKr!!!iJ!!&JCm!!S'-!"")!!!"B!!\r!!)"K!'`iR!!XJ"S!!#`!!""!J!!-J,S!!%J!!!JiS!!3N!#k!!")!!!"B!!!!$K\rm!!#!!3"B1#%!8(`)!kDl3IrS6S!!)%9d!`#3"23!!!!F4A8!N!3"$`!!!$a&G3#\r3"!%D!!!!@%9e!*!%!4S!!!#-4A8!N!3"'J!!!,4&G3#3"IB!!!$!4A8!N!Ah!!!\r!k%9e!*!&dJ!!!2a&G3#3"!%2!!!"0%9e!*!&cJ!!!@a&G3#3"I!!!!'%4A8!N!A\rK!!!"P%9e!*!&d`!!!D"&G3#3"IF!!!(!4A8!N!3"'J!!!H4&G3#3"H%!!!(m4A8\r!N!A4!!!#%%9d!`#3"#3!!!)N4A8!N!3"'J!!!N4&G3#3"G-!!!*84A8!N!3"'J!\r!!T4&G3#3"!%D!!!#T%9e!*!%!4S!!!+d4A8!N!3"'J!!!X4&G3#3"G3!!!,m4A8\r!N!Ah!!!$*%9e!*!%!4X!!!034@i0!J!!!4i!!!!5J!#3"c!!!BJ"L!!+!!#+J!!\rE!*!'4AB+$!!!!4m!!!!14@i-"!!!!5!!!!!-J!#3$30`!*!%4AF!N!3"'3#3"%9\rh$3!!!!%H!!!!#%9V!!3!!!%K!!!#r!!!#93!!%M4I!J#TVp"rqL3!!%!#*3Krl!\rl``!!N!#"!'`lK3!!I2SlHC%"!(b$iJ!!3B)!)$Kq!!!iQJ!!J+%!I)'H!!+"M!!\rX5!!!!@!!!!#)(J!59!!([8'#!"3iB!!k5!!!!@!!!!")!!+)L"i!2#J!!!4!JJ"\rdL"i!%bJ!!!""JJ!81'!!#dJ!!!&J!!!!5!!#B%J!!!&J!!!!,!-!!%##!#b!(`!\r!+!!!!%'#!$!iB!!!1)!!!)'I!!")!!!"B!!!!#`$!!""JJ!81'!!"%J!!!&J!!!\r!5!!#')JH!$`S!!!%3B,rX)JH!$`S!!!&3B)!D)JH!$`S!!!'3))!$$KJ!!")!!(\rXL"i!2#J!!!&!JJ!iJ"i!2L`!!!""JJ!XJ"i!2L`!!!&"JJ!JJ(i!2NJ!!!&J!!!\r!1!!!!*!!(J!q1'$rrdJ!!D`iB!!j5!!!!@!!!!")!!'F1(i!!)'H!!+"M!"N5!!\r!!@!!!!!lB`!!L"i!%bJ!!!""JJ!F+"X!!%##!"3iB!!,5!!!!@!!!!")!!&JJ!%\r!E*!!(J!81!!!!*!!(J!B1!!!!C!!(J!q1(i!!%J!!!%lS`!!J!)!!*!!!`!-1!!\r!*E!$!"Si!!!!Q!-!))!H!"53!!-!*$aJ!!%iBrrrI"`B!%#!!!`iI!!!5!!!$$a\rJ!!%iBrrrX(d!+$Kp!!")!!!"B!!!!%J!!!&J!!!!,!-!!%##!#b!(`!!+!!!!%'\r#!$!iB!!%1*`!!)'I!!")!!!"B!!!!#`$!!""JJ!81'!!"%J!!!&J!!!!5!!!T+J\rG!"!X!!!"3B,rX+JG!"!X!+BB3))!$$J!!!#`(3!3U"d!%#`!TKp"JJ"X3)!!,#`\r!TKY"JJ"J3)!!%#`!TKK"JJ"85!!!8#`!TKe"JJ")3)!!4%J!!$JX!+BM3B)!-%#\r!!"!X!+BK3B)!,%J!!#JX!!!!3B)!#%J!!"`i!!!!N!!H!$k!IJ!B5!!!')"q!"K\r)!!!3U(d!%%J!!!&J!!!!J!%!@$JK!&"m#!1QZd(rk%k!!#"&G!-!N!6d!!!!*%9\re!*!&p`!!!%"&G3#3"G)!!!"B4A8!N!A5!!!!J%9e!*!&pJ!!!)a&G3#3"IF!!!#\rd4A8!N!A5!!!!b%9e!*!%!3m!!!%S4A8!N!A5!!!"4%9e!*!&p`!!!9a&G3#3"G)\r!!!'!4A8!N!AK!!!"U%9d!`#3"-8!!!'`4A8!N!Ai!!!"q%9e!*!&pJ!!!J"&G3#\r3"IF!!!)S4A8!N!A5!!!#2%9e!*!%!3m!!!,J4@i-"!!!!58!!!!-J!#3#i!!![`\r`!!!!4AF!N!3")3#3"%9V!!3!!!%Q!!!%&!!!#TS!!&A1I!J#TVkKrp53!!%!#*3\rKrh!l3`!!1`3!!$[&!!!kTJ!!N!$K!,L#`J!!Jq)!!)J$!"*8!!Gl3B)!&$KJ!$T\r)!!!"B!!!!%J!!lb!!3#i+!!!!%'#!"3iB!!Y5!!!!@!!!!")!!1JL"S!2#J!!!9\r"JJ!JL"S!2#J!!!4"JJ!81'!!18J!!!&J!!!!5!!$H)JD!$`S!!!%3))!G)JD!"-\rS!!!!3B)!&$KJ!#9)!!!"B!!!!%J!!e")!!!"B!!!!#`$!!"!JJ!XJ"m!!#J!!!"\r"JJ!`1'!!!$L!!!#"R`!!5!!!!@!!!!!X!`!!3B)!&$KJ!!4)!!!"B!!!!%J!!`L\r)'J!m+!!!"%'#rl#)'J!m+!!!"8'#!%L)'J!m+!!!!8##!#b!'J!q,!!!!%'#!##\r!HJ!q5!!!!@!!!!!i!!!!N!!D!$iiB2rr5!!#[$KJ!$P)!!!"B!!!!%J!!U`iHJ!\r!5!!!!6YM!!!i!!!SX!-!'NJ!!!&J!!!!I'!(08'#!!`ki!!!5!!!'+"l!$UJ'`!\rfIZ-!88#!!!Jki!!!L"S!%bJ!!!""JJ!S,"F!!%##!"3iB!!,5!!!!@!!!!")!!*\r)I"I`!%#!!!Jle`!!1[i!!$KK!$JiJ!!!1+!!)%J!!!&J!!!!1k%!1$Z!!!")!!'\rFJ"S!2L`!!!""JJ!JJ(S!2NJ!!!&J!!!!1!!!!*!!'J!q1'$rrdJ!!I!mB!!"1'2\rrrh`H'!"!J!!-1ci!!%J!!)3r)!!"1cRrrdJ!!(KrJ`Fd1!-!!A`F&R"rR!'89j`\r31RqF!""rJ!Fe3B)!$$Zp!!K)!!!)1k%!1%J!!!&J!!!!,!-!!%##!#b!(`!!+!!\r!!%'#!$!iB!!&1*i!!)'I!!")!!!"B!!!!#`$!!""JJ!81'!!"%J!!!&J!!!!5!!\r"@+!G!!!S!!!!3),rK,-p!!#6(3!#1(S!!%J!!!%lB`!!NX-!$$J!!#+`!`!D1!$\rr`*J$!#)i!!!mQ!-!)$J!!!'B!`!K2+!!!9I%$riiTIrrI+2qF(`H+""m!b%8Q"X\r!)eDJ"rkB'`!NNlX!*MJ!!!#3!"X!+MJ!!!#`'`!Z1(X!!%J!!!&J!!!!5!!!!@!\r!!!!X!`!!3))!,)!I!!!S!!!!3B)!-$KJ!!8iRJ!!JCm!!%J!!!&J!!!!,!-!!%'\r#!"3iB!!%5!!!!@!!!!")!!#)IpR`8(mBbK3X(J!!3B(qC%J!!!&J!!!!,!-!!%#\r#!#b!(`!!+!!!!%'#!$!iB!!&1)!!!)'I!!")!!!"B!!!!#`$!!""JJ!81'!!"%J\r!!!&J!!!!5!!!-+JE!"!X!!!"3B,rX+JE!"!X!!!!3))!$$Kh!!")!!!3U(X!%%J\r!!!&J!!!!J!%!Q$JK!*!!I!J$TVUKrp41J!!J4A3$!*!%b3!!!#4&G!-!N!6d!!!\r!+%9e!*!&dJ!!!$a&G3#3"G)!!!"B4A8!N!A5!!!!J%9e!*!&dJ!!!+K&G3#3"IB\r!!!#d4A8!N!Ah!!!!h%9e!*!&dJ!!!2"&G3#3"!%2!!!"-%9e!*!&dJ!!!8a&G3#\r3"H%!!!&F4A8!N!A6!!!"E%9e!*!&dJ!!!E"&G3#3"G3!!!(B4A8!N!A5!!!"r%9\re!*!&pJ!!!Q4&G3#3"IF!!!+-4A8!N!A5!!!#S%9e!*!&i3!!!X4&G3#3"IJ!!!-\rX4A8!N!Af!!!$0%9e!*!&p`!!!ea&G3#3"G)!!!0`4A8!N!Af!!!$M%9e!*!&p`!\r!!l4&G3#3"G)!!!2)4A8!N!3"$`!!!rK&EJ`%!!!"-3!!!!b!!*!,J!!%&&J!!!"\r&G`#3"!%Q!*!%4@X!"!!!!6)!!!$F!!!-U!!!B3Pm#!+QNq(rr*2"rrL6SIrdNi(\rrm*!!!3!)P#(rX$ZM!!"mRL0j1i8!!$[J!!""JJ"XL"d!2#J!!!G"J3"JJ')!!&3\r!%$TmB`!ZI'N$TNk!"#!i!!!"Q"i!!$[r!!&)!!!m1(d!!)'G!!+"M!"N5!!!!@!\r!!!!S!`!!3B)!)$J!!!'B(J!!1rm!!8J!!"!i!!!"Q"i!!$[r!!%S(!!!3B)!()J\rG!$`X!!!%3B)!%$J!!!'B(!!!1rm!!6Kr!!#!!3"B1#%!8(`)!kD$iIrmJm(rq)1\rKrr5$JIr`6S!!)%9d!`!!!!%c!!!!2%9e!*!&p`!!!'a&EJ8%!!!"-`!!!##!!*!\r+Q!!!!)`!!!#B!!!!8!!!!*J!!!"J!!!!M!!!!&"&GJ#3"!%b!*!%4AB!N!3"-J!\r!!!4&GJ#3"!%b!!!!#%9f!*!%!6)!!!!-4AB!N!3"-J!!!""&GJ#3"!%b!!!!&%9\rf!*!%!6)!!!!B4AB!N!3"-J!!!"a&EJ`%!!!"0`!!!!b!!*!,J!!!h#!!!!"&G`#\r3"!%b!*!%4@i&!3!!!6J!!!!+rrrraJ!!B3P83e"6Ef0VCA3!"2*&EJ8"!!!"13!\r!!!Irrrr&!!"K#90[BfYPG!$(4@i&"!!!!6S!!!!)rrrra!!!B3N!N!K&GJ8!!!!\r"13#3"%9Z"3%!!!%l!!!!#rrrrm-!!'%*58j&9&0[BfYPG!!i4@i&"!!!!6`!!!!\r-rrrr`J!!B3N!N!a&GJ8!!!!"1J#3"%9Z"33!!!%p!!!!#2rrrm%!!'%*!*!)4AB\r&!!!!!6X!N!4&GJ8!!!!"2!!!!!4&EJ8%!!!"2J!!!"6rrrr!!!"K#3#3&%9f"3!\r!!!%p!!!!#%9f"3!!!!%k!*!%4@i&"!!!!6m!!!!)rrrr[`!!B3N!N!K&GJ8!!!!\r"1!#3"%9f"3!!!!%q!!!!"%9["33!!!$0!!!!D2rrrli!!'%*!*"S4AB&!!!!!6m\r!N!4&GJS!!!!"3!!!!&a&GJS!!!!"33!!!&4&GJS!!!!"3J!!!%a&GJS!!!!"3`!\r!!%K&GJS!!!!"4!!!!%4&GJS!!!!"43!!!%"&GJS!!!!"4J!!!$4&GJS!!!!"4`!\r!!$"&GJS!!!!"5!!!!"a&GJS!!!!"53!!!"K&GJS!!!!"5J!!!&"&GJS!!!!"5`!\r!!$a&GJS!!!!"6!!!!$K&GJS!!!!"63!!!#a&GJS!!!!"6J!!!#K&GJS!!!!"6`!\r!!!K&GJS!!!!"8!!!!&K&GJS!!!!"83!!!#4&GJS!!!!"8J!!!#"&GJS!!!!"8`!\r!!"4&GJS!!!!"9!!!!""&GJS!!!!"93!!!!a&GJS!!!!"9J!!!'4&GJS!!!!"9`!\r!!'"&E`S%!!!"8!!!!!L!!*!24AB!N!3"-J#3"%9f$`!!!!&B!!!!"%9[#J3!!!&\r4!!!!#)!!N!p&GJ#3"!%Q!*!%4AB2!!!!!9J!!!!%4@m+"!!!!9)!!!!)J!#3$d9\rf!*!%!5%!N!4&GJm!!!!"@!!!!!4&E`S%!!!"8`!!!!L!!*!24AB!N!3"'3#3"%9\rf$`!!!!&B!!!!"%9[#J3!!!&8!!!!#)!!N!p&GJ#3"!%@!*!%4AB2!!!!!9J!!!!\r%4@m+"!!!!98!!!!)J!#3$d9f!*!%!3d!N!4&GJm!!!!"@!!!!!4&E`S%!!!"9J!\r!!!L!!*!24AB!N!3"#`#3"%9f$`!!!!&B!!!!"%9[#J3!!!&C!!!!#)!!N!p&GJ#\r3"H%!N!4&GJm!!!!"@!!!!!4&E`U%!!!""3!!!!L!!*!24AB!N!3""`#3"%9f$`!\r!!!&B!!!!"%9[#J3!!!&A!!!!#)!!N!p&GJ#3"I-!N!4&GJm!!!!"@!!!!!4&E`S\r%!!!"@J!!!!L!!*!24AB!N!A`!*!%4AB2!!!!!9J!!!!%4@m+"!!!!9X!!!!)J!#\r3$d9f!*!&f3#3"%9f$`!!!!&B!!!!"%9[#J3!!!&F!!!!#)!!N!p&GJ#3"FX!N!4\r&GJm!!!!"@!!!!!4&E`S%!!!!bJ!!!!L!!*!24AB!N!A(!*!%4AB2!!!!!9J!!!!\r%4@m+"!!!!-B!!!!)J!#3$d9f!*!&`J#3"%9f$`!!!!&B!!!!"%9[#J3!!!$"!!!\r!#)!!N!p&GJ#3"Ei!N!4&GJm!!!!"@!!!!!4&E`S%!!!![3!!!!L!!*!24AB!N!8\re!*!%4AB2!!!!!9J!!!!%4@m+"!!!!$3!!!!)J!#3$d9f!*!&!3#3"%9f$`!!!!&\rB!!!!"%9Z!`3!!!%c!!!!")!!N!Y&GJ8!!!!"-`#3"%9[!`3!!!$*!!!!")!!N!Y\r&GJ8!N!6*!*!%4@m$"!!!!-8!!!!%J!#3#d9f"3#3"-8!N!4&E`-%!!!!`!!!!!5\r!!*!,4AB&!*!%`!#3"%9[!`3!!!#m!!!!")!!N!Y&GJ8!N!5m!*!%4@m$"!!!!23\r!!!!%J!#3#d9f"3#3"23!N!4&E`-%!!!!p3!!!!5!!*!,4AB&!*!%p3#3"%9[!`3\r!!!!N!!!!")!!N!Y&GJ8!N!3N!*!%4@m$"!!!!-m!!!!%J!#3#d9f"3#3"-m!N!4\r&E`-%!!!!c3!!!!5!!*!,4AB&!*!%c3#3"%9[$`3!!!&B!*!%J!#3"d9S!!"6@8e\r)!!!00!!!!%)!!!!'!*!B"X8!!!"3!!!(1!!!!&`!!!GH!!!!C!!!"hX!!!"m!!!\r(cJ!!!)J!!!Ip!!!!P!!!#%!!!!#J!!!)CJ!!!+J!!!L$!!!!Y!!!#,!!!!$-!!!\r*"!!!!0J!!!Ne!!!!j!!!#Ai!!!$`!!!*T!!!!2J!!!R-!!!"+!!!#G[rN!3!!!R\rE!!-!!!!%!!!!#J%$!!!!AJ!!!!8!!!"Q!3-!!!"J!!!!"[q3"!#3"4m!N!J+T3!\r!!$3!!!XI!!!!C!!!$'S!!!"`!!!-NJ!!!(J!!!b`!!!!U!!!$,rrN!3!!!br!!-\r!!!!frrrrm`%!N!3G!!!!1Irrrp%!N!8H!!!!"[q3"!#3"4m!N!J0TJ!!!&J!!!i\rF!!!!K!!!$im!!!#8!!!2l!!!!+!!!"!6!!!!V!!!%$F!!!#d!!!36`!!!13!!""\rHrj!%!!!3AJ!$!!!!0[rrrr-"!*!%(3!!!$Rrrrr4!*!&(J!!!!ErN!3!N!8I!*!\r)%6m!!!!d!!!4[`!!!$`!!")(!!!!9!!!%N`!!!"J!!!5E`!!!'J!!"+%!!!!Q!!\r!%T2rN!3!!"+6!!3!!!!frrrrm`%!N!3F!!!!``!!!!-!N!8I!!!!1Irrrp%!N!8\rG!!!!"[q3"!#3"4i!N!J6E!!!!*3!!"2M!!!!V!!!&,S!!!$!!!!9D3!!!0!!!"A\r!!!!!k!!!&J8!!!$d!!!@+!!!!2`!!"Bp!!!",!!!&NcrN!3!!"C-!!-!!!!frrr\rrm`%!N!3G!!!!1Irrrp%!N!8H!!!!"[q3"!#3"4m!!3#3"KGL!!!!-!!!&k8!!!"\r)!!!Ad`!!!'!!!"JH!!!!N!!!!"NR!!!!T!!!'8d!!!$N!!!C[!!!!2J!!"Rj!!!\r"$!!!'MB!!!%J!!!DCJ!!!63!!"U+!!!"B!!!'a(rN!3!!"Y%!!)!!!$9rj!%!3#\r3""m!!!!frrrrm!!$!!!!1!!"!*!''fm!!!")!!!F+!!!!'J!!"aP!!!!K!!!((m\r!!!#X!!!Fc`!!!0!!!"dj!!!!p!!!(B`!!!%B!!!Gi3!!!6`!!"i`!!!"B!!!(UF\r!!!&X!!!Hp!!!!AJ!!"m1!!!"K!!!(bN!!!'3!!!!(eF!!!'N!!!IK2q3"!!!)+3\r!#3!!!0ArN!3"!*!%(`!!!"%!!!!#!3-!!!#-!!!!0[rrrp%!N!8H!!!!i[rrrp!\r!!`!!!$J!!!$Qrrrrp!!$!!!!3!!!!1F!!!!$!!-!!!"%!!!!k2rrrmm!!`!!!%J\r!!!$Xrrrrc`!$!!!!8!!!!1hrrrr2!!-!!!"B!!%!N!BJcJ!!!,J!!#*Erj!%!!!\rLM`!#!!!!eIq3"!%!N!3I!!!!"[q3"!%!N!3H!!%!N!BLUJ!!!$`!!#,E!!!!9!!\r!)``!!!"F!!!M53!!!+`!!#0-!!!!a!!!)iN!!!$m!!!NS!!!!33!!#6a!!!"B!!\r!*38!!!'J!!!PT`!!!E3!!#@b!!!"Z!!!*Em!!!(%!!!Q*3!!!G`!!#Ca!!!##!!\r!*h)!!!)3!!!Rb3!!!Q`!!#I5!!!#H!!!*r-!!!+-!!!S9!!!!U!!!#L2!!!#V!!\r!+,!!!!+i!!!Sc!!!!Y`!!#Ma!!!#i!!!+2X!!!,X!!!T3rq3"!!!+9!!"3!!!0A\rrN!3"!*!%'`!!!2`!!!!$!*!&(!!!!2hrrrr1!!-!!!!i!!!"!Irrrm`!!`!!!&J\r!!!!frrrrd3#3"4i!!3#3"LP`!!!!(!!!+A-!!!!X!!!TRIq3"!!!+K3!!J!!!0A\rrN!3"!*!%(J!!!$Errrrc!*!&(`!"!*!'+M8!!!!B!!!U5!!!!#J!!#Te!!!!1!!\r!+TS!!!"!!!!UV2q3"!!!+Y8!!J!!!0ArN!3"!`!!!&J!!!!frrrrd3#3"4m!!3#\r3"LeA!!!!0!!!,Hd!!!"%!!!Z#J!!!&!!!#iY!!!!B!!!,RS!!!"X!!!ZS3!!!(J\r!!#kb!!!!L!!!,Yd!!!#B!!!Zq`!!!+3!!#mM!!!!Y!!!,d%!!!$!!!![B`!!!9J\r!!$)f!!!"E!!!-Q8!!!&i!!!bL!!!!B3!!$+N!!!"N!!!!$+h!!!"S!!!-bB!!!'\r`!!!c9`!!!J`!!$0E!!!#*!!!-hS!!!)i!!!cVJ!!!PJ!!$2$!!!#K!!!-qVrN!3\r!!$2d!!F!!!$9rj!%!3#3""`!!!%3!!!!C!%$!!!!M!!!!4%!!!!$!3-!!!#3!!!\r!!3(rrrr-!!-!!!!i!!!!0[rrrp%!N!8H!!!"%[rrrmX!N!8E!!!"%`!!!!X!N!8\rD!!%!N!Bd%J!!!#J!!$4E!!!!1!!!0(N!!!"%!!!dT!!!!&!!!$5r!!!!d!!!0iJ\r!!!$N!!!hYJ!!!2!!!$IF!!!!r!!!1!d!!!%-!!!iE3!!!@J!!$K`!!!"G!!!1)i\r!!!'-!!!iV`!!!D3!!$M9!!!"Y!!!118!!!(8!!!j4rq3"!!!19%!"!!!!0ArN!3\r"!*!%(!!!!3(rrrr-!!-!!!!i!!!!0[rrrp%!N!8G!!!"%`!!!!X!N!8E!!%!N!B\rjL3!!!#`!!$RC!!!!1!!!1H`!!!"8!!!k,J!!!'3!!$TF!!!!L!!!1X3!!!#B!!!\rkmJ!!!+3!!$XD!!!!X!!!1bi!!!$!!!!l[J!!!4J!!$[Z!!!"-!!!2$F!!!&-!!!\rp0!!!!@`!!$f2!!!"N!!!!$hN!!!"S!!!2K3!!!(!!!!qM3!!!G!!!$kR!!!"i!!\r!2[B!!!(`!!!rQ3!!!I`!!$qm!!!#%!!!2rB!!!*!!!""!J!!!P!!!%%[!!!#N!!\r!!%'G!!!#S!!!3HF!!!+`!!"#-3!!!X!!!%*Y!!!#d!!!3Ti!!!,m!!"$)3!!!b3\r!!%1$rj!%!!"%'`!&!!!!eIq3"!%!N!3I!!!"(!!!!'3"!`!!!'`!!!%GrrrrbJ%\r!N!3D!!!!0[rrrp%!N!8G!!!!"[q3"!#3"4`!!3#3"NNP!!!!,!!!59J!!!")!!"\r*G3!!!&3!!%QB!!!!C!!!5H8!!!"`!!"+$`!!!(`!!%SM!!!!M!!!5TX!!!$J!!"\r+`3!!!1`!!%VY!!!!q!!!5a)!!!%!!!",93!!!53!!%ZN!!!"3!!!6!8!!!&3!!"\r-*`!!!A3!!%a#!!!"I!!!6'-!!!'-!!"-K`!!!DJ!!%c*!!!"q!!!6J!!!!)!!!"\r1cJ!!!P3!!%l5!!!#B!!!6[J!!!*S!!"2%!!!!X3!!%mj!!!#e!!!6jJ!!!,F!!"\r3CIq3"!!!8)J!"`!!!0ArN!3"!*!%(J!!!5)!!!"N!3-!!!"X!!!")`!!!!-"!*!\r%(!!!!4`!!!"N!3#3""S!!!%GrrrrbJ%$!!!!I!!!!53!!!!#!*!&'`!!!$Errrr\r4!*!&(3!"!*!'9KN!!!!i!!"@V!!!!%J!!&E-!!!!9!!!9ZX!!!"N!!"A#`!!!(`\r!!&G8!!!!M!!!9k!!!!#B!!"Ab3!!!+3!!&IG!!!!Y!!!@&-!!!%)!!"BH3!!!43\r!!&M2!!!",!!!@3X!!!&)!!"CE!!!!9J!!&Q1!!!"E!!!@Ed!!!&m!!"CiJ!!!B3\r!!&Rh!!!"P!!!@PF!!!'B!!"DC`!!!D3!!&Tk!!!"V!!!@SN!!!'m!!"DX!!!!F3\r!!&V'!!!"b!!!@YF!!!(B!!"E&3!!!H`!!&[K!!!"q!!!@r3!!!)8!!"F0`!!!M3\r!!&ad!!!#1!!!A*B!!!*B!!"G"3!!!Q!!!&dF!!!#C!!!A9B!!!+X!!"GDJ!!!VJ\r!!&f)!!!#a!!!AGX!!!-X!!"IqJ!!!c3!!'"!!!!$I!!!B%3!!!1%!!"JIJ!!!i`\r!!'#f!!!$i!!!B,S!!!2X!!"Jc`!!!r3!!'$Qrj!%!!"K"J!,!!!!eIq3"!%!N!3\rD!!!")J!!!'3"!*!%'!!!!5F!!!!$!3#3""i!!!%S!!!!!`%!N!39!!!"+3!!!'3\r"!`!!!,J!!!%Urrrrb3!$!!!!1!!!!$Errrr4!*!&'`!!!5d!!!!,!*!&(!!!!5l\rrrrr(!*!&(3!!!5m!!!!$!*!&'3!!!6!!!!!$!*!&&`!"!*!'B9%!!!!`!!"KH!!\r!!&!!!'(&!!!!B!!!BJi!!!"m!!"L*3!!!)`!!'+4!!!!Q!!!BX!!!!#J!!"Ld!!\r!!,J!!'-qrj!%!!"M6J!%!!!!eIq3"!%!N!3G!!!"0!!!!'J"!*!%(J!!!68!!!"\rS!3#3""`!!!%f!!!!!`#3"4m!![rrrr`!!!!,!!!!"J!#!!!!$!!!!!X!N!F0!!!\r!C!!!!!)!![rrrrS!!!!F!!!!"!!"!!!!(3!!!!)!N!8"rrrrq3!!!!J!!!!"!!!\r!"`!#rrrrq`!!!"F!!!!3!!8!!!!B!!!!"J#3"aN!!!!'!!!!!3!!!"S!!!!+!!!\r!!J!!!"[rrrrk!!!!"!!!!"lrrrrj!!!!#!!#rrrrr3!!!!N!!!"#!!d!!!!+rrr\rrr!#3"`i!!!"N!!!!"J!!!!m!!!!,!!!!#J!!!"!!!!!,!!!!$!!!!"%!!!!#!!!\r!$J!!!")!!!!'!!!!%J!!!"-!!!!'!!!!%`!!!"3!!!"Q!!!!&!!!!"8!!!!$!!!\r!'!!!!"Errrrl!!!!(!!!!"rrrrrl!!!!,!!!!#!!!!!'!!!!2!!!!#%!!!!$!!!\r!2J!!rrrrq!!#rrrrrJ!#rrrrrJ!!!!F!!!"'!!)!!!!)rrrrr3#3"b,rrrri!!!\r!3J!!rj!%!!(rrrrq!!$rrrrd!!%!!!"U!!,rrrre!!!!,J!!!"3!"`!!!#m!!!!\r#!*!(+3!!!!F!!!!%!!!!-!!!!!F!!!!&!!!!-3!!!!S!!!!'!!!!-[rrrr3!!!!\r)!!!!+J!!!!)!!!!-!!!!-`!!!!)!!!!3!!(rrrrf!!!!&!!!!"6rrrre!!,rrrr\rh!!!!*3!!!#!!#!!!!#B!!!!+!*!(*`!!!!F!!!!#!!!!+!!!!!B!!!!$!!!!+3!\r!!!)!!!!%!!!!+J!!!!B!!!!)!!!!+`!!!!B!!!!*!!!!,!!!!!S!!!!+!!!!,Ir\rrrrB!!!!-!!(rrrr[!!!!$!!!!!%!!!!(!!$rrrrZ!!(rrrrh!!,rrrrX!!!!4J!\r!!"!!"!!!!%F!!!"Q!*!(5!!!!!)!!!!%!!!!5Irrrqi!!!!)!!!!"3!!!'B!!!!\r-!!(rrrrU!!!!+!!!!!%!!!!(!!,rrrrV!!!!5`!!!%)!%!!!!%`!!!!(!*!(63!\r!!!F!!!!"!!!!6J!!!!F!!!!#!!!!6`!!!!F!!!!$!!!!8!!!!!)!!!!%!!!!83!\r!!!S!!!!)!!!!8J!!!!)!!!!+!!!!8`!!!!S!!!!1!!!!9!!!!!F!!!!3!!!!93!\r!!!F!!!!4!!!!9J!!!!B!!!!5!!!!9`!!!!F!!!!6!!!!@!!!!!F!!!!8!!!!@3!\r!!!F!!!!9!!!!@[rrrqS!!!!@!!!!"3!!!'B!!!!q!!,rrrrT!!!!A!!!!"3!#J!\r!!%`!!!!(!*!(63!!!!F!!!!"!!!!6J!!!!F!!!!#!!!!A3!!!!B!!!!$!!!!AJ!\r!!!B!!!!%!!!!A`!!!!F!!!!&!!!!B!!!!'B!!!!'!!!!B3!!!!)!!!!+!!!!BJ!\r!!!S!!!!1!!!!"3!!!'B!!!!3!!,rrrrS!!!!C!!!!"B!#J!!!%m!!!!(!*!(C3!\r!!!B!!!!"!!!!AJ!!!!B!!!!#!!!!A`!!!!F!!!!$!!!!4`!!!'B!!!!%!!!!5!!\r!!!S!!!!)!!!!CJ!!!'B!!!!+!!!!C`!!!!S!!!!1!!!!D!!!!!S!!!!3!!!!"3!\r!!'B!!!!5!!,rrrrR!!!!DJ!!!!J!"3!!!%`!!!!(!*!(63!!!!F!!!!"!!!!6J!\r!!!F!!!!#!!!!A`!!!!F!!!!$!!!!"3!!!'B!!!!%!!,rrrrQ!!!!E!!!!!3!!3!\r!!!8!!!"Q!*!&![rrrq%!!!#)!!!!"J!#!!!!L3!!!!S!N!H+!!!!!J!!!!)!!Ir\rrrq)!!!!U!!!!"[rrrq%!![rrrq-!!!"p!!!!9J!3!!!!IJ!!!!)!N!Gr!!!!!J!\r!!!3!!!#!!!!!!J!!!!J!!!#"!!!!!J!!!!`!!!##!!!!!J!!!"!!!!#$!!!!!J!\r!!"3!!!#%!!!!!J!!!"J!!!#&!!!!!J!!!"`!!!#'!!!!#J!!!#!!!!#(rrrriJ!\r!!#)!!!"k!!!!#J!!!%`!!!#,!!!!#J!!!%i!!!#-!!!!#J!!!&!!!!#0!!!!#J!\r!!&)!!!#1!!!!"`!!!&3!!!#2!!!!"`!!!&8!!2rrrq3!!Irrrq-!![rrrq8!!!"\rY!!!!4J!C!!!!6!!!!!F!N!G0!!!!"`!!!!%!!!"Z!!!!!`!!!!)!!!"3!!!!!J!\r!!!B!!!"4!!!!#J!!!!S!!!"5!!!!!J!!!!`!!!"6!!!!#J!!!"!!!!"8!!!!"`!\r!!")!!!"9!!!!"`!!!"-!!!"[!!!!"`!!!"3!!!"I!!!!"`!!!"8!!!"`!!!!#J!\r!!"B!!!"a!!!!#J!!!"J!!!"b!!!!#J!!!"S!!!"c!!!!#J!!!"`!!!"d!!!!CJ!\r!!"i!!!"e!!!!!J!!!#)!!!"f!!!!!J!!!#B!!!"h!!!!!J!!!#S!!!"i!!!!!J!\r!!#i!!!"j!!!!!J!!!$)!!!"k!!!!!J!!!$B!!!"l!!!!!J!!!$S!!!"mrrrrj!!\r!!$i!!!!&!!!!CJ!!!%)!![rrrpi!!!#6!!!!'!!'!!!!P!!!!!)!N!H9!!!!!J!\r!!!3!!!#@!!!!!J!!!!J!!!#A!!!!!J!!!!`!!!#B!!!!!J!!!"!!!!#C!!!!!J!\r!!"3!!2rrrpm!!Irrrpi!![rrrp`!!!#E!!!!0!!0!!!!R!!!!!)!N!HG!!!!!J!\r!!!3!!!#H!!!!!J!!!!J!!!#I!!!!!J!!!!`!!!#J!!!!!J!!!"!!!!#K!!!!!J!\r!!"3!!!#L!!!!!J!!!"J!!!#M!!!!!J!!!"`!!!#N!!!!!J!!!#!!!!#P!!!!!J!\r!!#3!!!#Q!!!!!J!!!#J!!!#R!!!!!J!!!#`!!!#S!!!!!J!!!$!!!2rrrpd!!Ir\rrrp`!!2rrrpS!!3!!!!)!!IrrrpX!!!!%!!!!"2rrrpS!![rrrq!!!!#4!!!!%J!\r&!!!!N[rrrpm!N!HDrrrrh3!!!!3!!!#Trrrrf`!!!!J!!!!&!!!!CJ!!!!`!!!#\rU!!!!#J!!!"!!![rrrqd!!!"%!!!!4J!)!!!!4Irrrq`!N!G+rrrrk`#3"e[rrrr\rT!*!(BrrrrqJ!N!GTrrrrj`#3"f[rrrrQ!*!(%[rrrq8!N!H3!2rrrq!!N!8#rrr\rrm!!!!$S!!!"Q!!N!!!!lrrrrl`#3"ccrrrrZ!!!!$!!!!$d!!!!,!!!!%!!!!$i\r!!!"Q!!!!%J!!!$m!!!!,!!!!&J!!!%!!!!!,!!!!'!!!!%%!!!!,!!!!'J!!!%)\r!!!!#!!!!(!!!!%2rrrrY!!!!)!!"rrrrf!!!!!`!!!!"!!!!"`!#rrrreJ!!!+m\r!!!!8!!B!!!"(!!!!CJ#3"dJ!!!!#!!!!"!!!!%RrrrrZ!!!!#!!!!&-!!!!+!!!\r!$!!!!!8!!!"Q!!!!$J!!!,!!!!!+!!!!%J!#rrrre3!!!,%!!!!@!!N!!!#b!!!\r!#J#3"e!!!!!#!!!!!J!!!&%!!!!+!!!!"J!!!'!!!!"Q!!!!#!!!!,-!!!!'!!!\r!$!!!!&m!!!!(!!!!$3!!!')!!!!+!!!!$J!!!!8!!!"Q!!!!%!!!!&-!!!!+!!!\r!&!!#rrrre!!!!,3!!!!D!!N!!!#e!!!!#J#3"e!!!!!#!!!!!J!!!&%!!!!+!!!\r!"J!!!%F!!!"Q!!!!#!!!!%J!!!!+!!!!$!!!!'J!!!!+!!!!$J!!!!8!!!"Q!!!\r!%!!!!,B!!!!#!!!!&!!!!,F!!!!+!!!!'!!#rrrrd`!!!,N!!!!+!!-!!!#k!!!\r!#J#3"e!!!!!#!!!!!J!!!!8!!!"Q!!!!"J!#rrrre`!!!+i!!!!D!!3!!!"&rrr\rreJ#3"e[rrrr9!*!(Brrrrp3!N!Hirrrrd`#3"3,rrrrC!!!!V!!!!$S!#3!!!$[\rrrrrB!*!(22rrrqi!!!!-!!!!23!!!!X!!!!3!!!!2J!!!'B!!!!5!!!!2`!!!!X\r!!!!@!!!!3!!!!!X!!!!B!!!!33!!!!X!!!!D!!!!V3!!!!)!!!!F!!!!3rrrrpF\r!!!!J!!,rrrra!!!!1!!!!'B!!J!!!$Rrrrr`!*!(UrrrrpN!N!Errrr5!!(rrrr\rp!!,rrrrb!!!!0`!!!'S!!J!!!$Errrra!*!("[rrrp)!!!"Q!!$rrrrc!!(rrrr\rb!!$rrrr4!!(rrrr`!!,rrrr3!!!!i`!!!!J!!J!!!13!!!!#!*!(j3!!!!)!!!!\r%!!,rrrr2!!!!k3!!!!J!!J!!!1S!!!!#!*!(k`!!!'F!!!!%!!,rrrr0!!!!rJ!\r!!!B!!J!!!2m!!!!+!*!'!3#3"'B!!!!#!!(rrrr1!!!!(J!!!!Errrr0!!,rrrr\r-!!!"!J!!!!3!!3!!!3-!!!!$!*!'rrrrb`!"rrrrq`!!rrrrbJ!"!!!!!`!#rrr\rrb!!!!5X!!!!)!!-!!!$r!!!!#J#3"J%!N!4Q!!!!!J!!!5`!!!!,!!!!"J!"rrr\rrb3!!!#!!!!!)rrrrb!!!rrrra`!"rrrrb!!"rrrraJ!!!!S!!!!"!!!!"`!"rrr\rra3!!!!F!!!!"!!!!"`!#rrrra2q3"!!!!!J!!!!"rrrr``!!!!X!!!!"!!!!"`!\r#rrrr`[q3"!!!!!`!!!!#rrrr`Iq3"!!!!!J!!!!#rrrr`2q3"!!!!"3!!!!#rrr\rr[rq3"!!!!!J!!!!#rrrr[[q3"!!!!'J!!!1p,R4MF&pZEh4TCRN!"hJZGhK0B@0\r6Ef0VCA4)B@jNE'9b8(*[B`!!*bj5C@&NH9pI-6*6Ef0VCA4%EfeKD@j'GJ!"hf9\rfC@jd3fpNC3!$+R9cCA*%BA4K8(4b!!3ZFfpMD`!"[e4$8&0[BfYPG!!$Zb4*6N9\r88fpMDf9d!!,-58j&9&0[BfYPG!!(pL46Ef0VCA3!"[P6Ef0VCA3!!"abC@C$Eh9\rZG!!(mepIGR"dFL3!!0phH(*PCQ0[EJ!(*AGiCACPER3!!qGhH'9fC@jdE@&cD`!\r'FR0dFQ9KE3!'cR0dBA4eF`!$M@j[EQ*XEf0VD@jR!!IfFQ9MGN*eCJ!&QR*PBhC\rN!!,2Ff%!!q4cEf0VB@4NFPpTEJ!(!R0TEPpXC@i!!X"cD@jICQ&YD@aj!!"DFfP\rZAh"[FR3!!!0cD@jIB@4NFJ!(E@PZAf&NC()!"RecAf&NC()!!,*cD@jIHQ9bE`!\r%l("PCA)!"V&cFh4KG'8!!-GKFhPZBf9bFJ!%3R0PE'B!"(a!1$)e!!40G9pdBh"\rIEQpdD@Cj!!'r8QpeG'PZC84PFf0bDA"dEh)!"bGREdeTH'9N6@pNC94bBA!!"d4\rfCA*cD@pZ!!B)FQpeG'PZC84PFf0bDA"dEh*'E'&RF`!"9R*PFf9bGQ9N-3!"9h*\rPFf9bGQ9N-J!%Gh0PE'9MG'pb5@jQE`!%+R*[GA4TEQ9$Eh9ZG!!'m(*[GA4TEQ9\r5C@0[FQ4c!!8I8QpeG'PZC9*PBfpbC!!![h"bEf0*EQC[!!23590"!!6lFQpeG'P\rZC8CXB@Gc!!D%F(*[Bd4PFf0bDA"dEh)!!0GcC@aPBh4[FJ!#FA4MF&pZEh4TCRN\r!![NZG'0`Af0[EQjPBh4IC'pZC9pI4P!a-8&ZEQpdBA4PC&"#!!*`F')!!`*"EQj\r[G'&dC@433J!%Md"ME'&cFb3h16K(990*9%03Af0`!!1ZG'0`!!Gc9%03D@p`BJ!\r'mQCTE'`a-J!%ffP[3fpYF'aPG'P[EJ!!IfP[8Q9cG@ad!!(@D@p1B@eP8(4b!!&\rXD@p@8Q9Q6R9Y!!%@D@p$8Q9Q6R9Y!!DUBh0$Ef4P!!(rG'0`8h4bC@&Y!!I)Bh0\r3BA*KE3!%8N"ME'&cFb3h1$G(990*9%03Af0`!!DCBh*PBA4P!!1k9%033h*PBA4\rP8%)!"p"bBhC#G@CQ!!+8FQ0f3R9QCNaPEJ!#h@j[G'PQH9"bEf-!"("[F'9Z!!%\rI9%036h"PEP"#!!H-G@a`9'PYC@peG&CKE(9P!!"rG@a`9'PYC@peG%&MG'P[EJ!\r&T(CKE'PNDA4j4QaKCh-!!`eMEfeYB@jN9'PYC@peG&CKE(9P!!,DFQ9YEh4P5'p\rcG!!#[R*PE@pdC9"[FR3!!FjXEf0KE%K[Fh3!!E*XEf0KE&"[FR3!!1"dEh0'E'&\rRF`!#Ih"bC@0PC'9ZBf8!!(0NEfjd4R*KC`!#2h4TE@98EdaTGQ8!!1PcC@0eFQP\rdH3!"p@p`G'P[EN0ZG!!(*'p`G'P[ER-!")&cC@jN!!&39%038f9ZC&"#!!#fF(9\rcD%CXB@F!!MaeFQGPER4'E'&R!!DjCQPXE'9b!!EmGf4c8(4b!!!5Ff9ZC%CbC@8\r!!TTcC@jN6'9ZCh4S!!F*FQ9MC@PfC3!%Fe4$8&*PBf9TGQ933J!!K@eKFQY'E'&\rR!!BQFQ4c8(4b!!'FFQ4c6'9ZCh4S!!IVFf9MEfjN9'PYC90dB@e`!!ApBfa[Ff8\r!!Z083e"$E'pcC9"#!!A$B@*[FR3!!TY83e""BQpbG&"#!!0I9%038h4KG(9c8%)\r!"PTeER9cC@3!"iGMEfjZC@0dD@pZ8h4KG'8!!U0cC@jN9fPZC'ph!!%*FQ0f9fP\rZC'ph!!DaB@ed9@jKBfYPC%4KG'%!"@KKEA49ER*PB@4%BA4K!!#qFf9MGA*TG(P\r-CACPE&"dFJ!$MR0PEQ49EQ&MDf9N!!"6Ff9ZC%jPH(3!!)CMEfjRCA0dD@pZ9fP\rZC'ph!!F+FQ0f6Q9iG!!%KR0bG(3!"f0XBA0d8P48!!C)Ff9ZC%eKH&0PCe0THQ8\r!!hPMEfjZ8h4KG&"dFJ!#e94$8%0[EQjPBh4TEfj6G'&dF`!%4@4KG'&3Dh4c8Q0\rfC!!%h@4KG'&3Dh4c8f9ZG!!'h@4KG'&3Dh4c8Q9cC@jd!!(fBRPdCA05BhCN!!5\rRBRPdCA05BhCN4(9`!!1&BRPdCA05BhCN8'&cG>EQ4[G`!"LQ*jG'9c8f9ZG!!\r$S'*jG'9c8Q9cC@jd!!HFER9Y5'PcG'p#G@0VCA4c!!88Ff9ZG&0THQ9)DA0dE`!\r$[%KTFh4[3R9MDf9d!!9BGQ&XG@8!"a*MEh9ZG'9b!!I`G'eb8e*89!!$2(*dG&C\rKFQPKEQ0P!!BEG'eb8P42!!('Ff9ZC&4bD@9c!!$@FfpeFQ0S8A9PEQ0S8Q0fC!!\r#rfGXEf*KE%PZCQm!"k983e"(E'pLB@a*EQC[8%)!!a*dBh"3BA*KE9"dFJ!!*P4\r$8&"KFQ&Y!!H3!(4MF&*dEd%!!3edBh"5G'p0D@i!!4CdBh"5G'p0BAJ!"ITdBh"\r0BAK6C@G6DATP!!*GG'0`6@&i3fpZEJ!%DA4MF%eKH>EQ4[G`!$ih4MF&0dBA4\rc8(4b!!#)9%038h4KG(-!"f4dBh"$EfjZ3A4dC@e`G(-!"G0dBh"$EfjZ6h"PEQ9\rN!!GTG'0`3fpZEN&MBf9`G'9N!!8JG'0`3fpZEN0XEh0PC!!'2h4MF%0[EQj"BQp\rbG'9N!!1fG'0`6f0dCA4c5@i!"%0dBh"2Bh4PG(02GA3!"SGdBh"2Bh4PG(0*EN4\reF!!!-h4MF%pMG'9dFe*PG(*KER-!"(edBh"*ER"eG&"VG(-!"5"dBh"2GA4`GA4\r3Dh4c!!)2G'0`4(9`8'YdF`!'pR4MF&*PG(*KER03Dh4c!!1QG'0`3d4#9'&LE'8\r!!A4YBAK83e"$EfjZC@0dD@pZF`!$XR9NF!!(-&9%8'P[F')!!IjeC("6G(*PB@d\r!"#K!BfaKFh-N0cN`4e96594$8&pMF!!$cP9%8%0bC@&dC9"#!!*3C@jND@jR8'p\rbG!!"@99%8&0PEQ433J!!+A*PFf9bGQ9N!!"!BfKPBfY6G@d!"&a94&"5C@0PDAC\rP8%)!"mPdD@eP6h9d!!"UC'9cG%K[Fh3!!%jNCA0d8'pbG!!$Q@edG3!!qP9%8%e\r899"#!!HCEA4e8fPkC3!%QN!i-c-!!VPeAh4MF&pMEfjZC@0dAf4[EQ8!!I"dBh"\rIBfpZEQ9MG&pNEfjPAep'8$%a3@jZEh4KG'9N8%)!!C!!,R4MF&pXDA0dC@jIC'p\rZC9pI4P!a-8&ZEQpdBA4PC&"#!!5r3$Jd1!!"i(9IG'0`AfaTFh4PEPpNEfjP!!!\rMG'0`AfaTFh4PEPpNEfjPAep'8$%a3@jZEh4KG'9N8%)!"d%ZG'0`Ah*PBhCIC'p\rZC9pI4P!a-8&ZEQpdBA4PC&"#!!EdFQ9KC'PZ!!6I3$Je1!!('h9IG'0`Ah*PBhC\rIC'pZC3!'!R4MF&pbC@0fAf4[EQ9IAdC3-6&"EQj[G'&dC@433J!(45jdBh"IFf9\rZC&pNEfjPAep'8$%a3@jZEh4KG'9N8%)!""j!1$Fh!!FlG9pdBh"IFf9ZC&pNEfj\rP!!DmG'0`Ah0PEQ4IC'pZC9pI4P!a-8&ZEQpdBA4PC&"#!!0b,PpIBh4IAcP83e"\r6Ef0VCA4'GJ!&d5jIAf0dAema-%P14946Ef0VCA4'GJ!!dPpIGR4IAcP83e"6Ef0\rVCA3!!RXZAepZGepI4P9X!!--58j&9&0[BfYPG(-!"8iZ4(*TGQ9bAema0NP1494\r6Ef0VCA4%EfeKD@j'GJ!(e5j1CAG3G()!!kdZ4e9659pPFR*[FJ!'Abj33N0[ER4\rbEfa6H@jM!!Fr,QePEA0PG!!%@h4SDA-!"$p!1$Jh!!3#AepNG&pI-6"*6N988fp\rMDf9d4RB!"%"!1$Ji!!5@,PpIBh4IAcP83e"6Ef0VCA4'9@`!"S)ZAepMG&pI-6"\r*6N988fpMDf9d4P9X!!)a,NGPG%0eFR*PER43FQpMCA0c!!81,N&&3h*PBA4P4'9\rcB`!$cLj"480bC@&dC8&`F'aP4ACPER3!"RXZ3893GA43BA*KE9"dFJ!(`5j"490\rPEQ3!"MJZ389%DA0`Eh0P4'9cB`!%Dbj(CA433PpI194$8&0[BfYPG%Cf!!2j8&0\r1!!1l8(*[Bf9cFe0PFQPKE%jeE@*PFJ!&M'KTCfK-EfjR6fC38di!"(PXEhG-Efj\rR6fC38di!"hGdD'93FQpM!!HcG'KP9(P`C3!#UA4SC8&NC(*PFh-!"Pp"484PFf-\r!"MKNCA0MFQP`G'pb9(P`C3!#3@4KG'&)B@jNE'8!"eGYH9*PF'aj!!"XG'KP4AC\rPER3!"&K!1$N`!!4C3$Jj-3!&9bjIAf0dAemj9%038fpMDf9d4P!j9%038fpMDf9\rd!!4E3$Jj-`!%A%!i163!!kJZAepNG&pI194$8&0[BfYPG%Cf!!"a4e96590`D@i\r!"I&PFR*ZE`!$@Lj(990*3fKPBfY"E'&bE9pI4RB!!j3ZAep`G(*ICfaeC3!(f#j\r33N0[ER4bEfa"FhPZB`!$##j%DA0`Eh0P8(4b!!*2,PpIC'aIAdC3GJ!&"#jIAf4\rdAema-%P14946Ef0VCA4'GJ!"e("KFh0MEh9ZG!!!6A*NFf&bFQ&j!!!cFQ4c4@j\rdFRN!"[CXC@jRG'J!!m*`G()!!CKcBACP4A*bEQm!!XC&FR*ZEe0KGQ9b!!0TCP0\rKGQ9N4A*bEQm!"2a!16Ba!!6`AepNG&pI-6"&FR*ZEe0KGQ9b4RB!"2e!16Bb!!@\r(,PpIC(4IAc%`4A*bEQp6BACPFNCf!!3"3$Nf0J!%$Lj(CA433PpI-6C*6N988fp\rMDf9d4'pYB@PZ4RB!"!4!16Bj!!"C,N&fB@PXB@*XC9pI194$8&0[BfYPG%Cf!!3\rI3$Nh0!!!R5jMEfjZC@0dAemj9%038fpMDf9d4P"fD3!#@#jRCA4SEh0dD@3!"X3\rZ9%03Af9bFQpbAep'D3!(Gf&NC(*PFh-!"qaKC'4bE'9Z!!4!B@4NFJ!$0@9bFJ!\r&R%!a-$%j!!@c3$%`-M!!"6mZE'PcG'9ZAemj9%038fpMDf9d4QN!"44!-6!e-3!\r&&8!a-$8b!!!-,Q&MBf9`G&pI194$8&0[BfYPG%C3GP"T!!GF,NG98dPICA*bEh*\rIEQPX!!GP,QePE@0`H3!%-fCbEfd!"f9QFQpYE'9Z!!@@3$%`16)!!9aIAf4XAep\r'8(B!"CG!-6!j-`!'05jbC@0fCR*[E9pI194$8&0[BfYPG%C3GQPT8(C3D3!'!f*\reCQCPFJ!'pf*eCQaPEJ!"6Q4KG'&KGQ&TE!!&'8!a-63b!!2-,R0PEQ4dEepI194\r$8&0[BfYPG%C3GQPT8(CT!!8&BfpeER3!"3&QE'&RF`!#rA4[!!!PGf4cBA*bBAN\r!"j&YD@jTGf4c!!")G'9bE@PZGA-!"T!!Gf4cER9Y!!H,G'KTFhGNF`!(YA4[Gh*\rTG'8!"G"LHA4PF`!&fd!a-M)`!!9N,R0PE'9MG&pI194$8&0[BfYPG%C39@039@0\r39@-!"3*!-6)c0`!(2'0KEP*PB@3!!'CMB@jAFQPdC3!(S@G[Ef4TCA-!"30!-6)\rc1!!&"%!a-M-j!!8F3$%b0$%!"rpIAe*89%PIAcC6Ef0VCA3!"4e!-6)d-J!&(N!\ra-M3c!!3'Aep59&4*Aema-%P14946Ef0VCA3!"4Y!-6)d-!!#APpI8P4859pI194\r$8&0[BfYPG!!$Gh"[Fh4IFf9XC@0dAemf8fpMDf9d4P9M9@09B`!#E("bC9pcC@a\rPBh4IAcC6Ef0VCA4'9@09Be9M!!&#DA0KG(4jAemf8fpMDf9d4RB!"(eQG(*eEQ0\rKG'9IAcC6Ef0VCA4'E!!"B'acC@9VAemf8fpMDf9d4QaT!!8[CR0dBA4IAcC6Ef0\rVCA4'8$4cG'&d!!&,Ff9dFfpMDfp`G&pI0P0[BfYPG%CTD9"fD3!#b'GPG(0[BfY\r[F(4IAcC6Ef0VCA4'D@P3GP"T!!)pGh*TG'9IAcC6Ef0VCA4'8(CT!!'QFQ9KC&p\rI0P0[BfYPG%C3GQN!!)9cD(9dC'phEPpI-6"*6N988fpMDf9d4QN!!1TTEf0dE&p\rI-6"*6N988fpMDf9d4P9T8(B!"e&QBfjdE&pI-6"*6N988fpMDf9d4P9TD3!'9@G\rPG("PCA*ZB@ePAema-%P14946Ef0VCA4'8(C3D3!'E'GPG(0[BfYZB@ePAema-%P\r14946Ef0VCA4'8(C3D3!'B@*TEQ4IAc%`58j&9&0[BfYPG%C3GQN!"#acC@aPBh4\rIAcP83e"6Ef0VCA4'8&9M8&9M8&9M!!*BFf9ZC(4[Aemj9%038fpMDf9d4P"fD@P\r3GQN!"8PbC@0fCR*[E9pI194$8&0[BfYPG%C3GQPT8(C3D3!(rQ&MBf9`G&pI194\r$8&0[BfYPG%C3GP"T!!6iE'PcG'9ZAemj9%038fpMDf9d4QN!"`TMEfjZC@0dAem\rj9%038fpMDf9d4P"fD3!(Kd&fB@PXB@*XC9pI194$8&0[BfYPG%Cf!!+$AepNG&p\rI194$8&0[BfYPG%Cf!!0q9%p$!!1X4f9d8%*IAcP83e"6Ef0VCA4'GJ!%ZepIBh4\rIAcP83e"6Ef0VCA4'8$P83e"6Ef0VCA3!!lPIAf0dAemj9%038fpMDf9d4P9X!!+\r,AepMG&pI194$8&0[BfYPG%Cf!!"36eG5!*!''H3!!#kf!!!"+J!!'P!!!"4Q!!!\r,*!#3"J*'!!!!&!#33%9R!!"&D`!%!!!!!3!!!-J!!!!J!!!%i(`)!UD6iIrmNm(\rrq*1Krr53!!%!#*3Krl!lS`!!Jq-!CM[G!!#S(3!3,!!!!%##!"L!(J!SN!!I!"5\rJ(J!XN!!I!"K)!!!81!!!!*!!(`!81!!!!*!!(`!BU"i!%*!!(`!q1!!!%*JI!#`\ri!!!#Q"m!,B!H!#+3!"m!-+!H!#D`(`!ZJ"m!"LJ!!!""JJ!JU"m!#L`!!!""JJ!\r8J(m!"ULI!!T)!!!"B!!!!%J!!!&J!!!!J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIr\rd6S!!)%9e!*!&!J!!!*a&G3#3"3-!!!#N4@i-"!!!!,8!!!!-J!#3#i!!!-JB!!!\r!4AF!N!8"!*!%4@m&"!!!!,B!!!!Jrrrrq3!!"bLUrJF!N!c"!!%!"!#3$%9f#J#\r3",F!!!!84@S!"!!!!,J!!!#%!!!!KJ!!"q"m#!+QNq(rr*2"rrL6SIrdN!!"!!L\r8)Iq`1k-!!)2M!'DS(3!3J(d!+,!$!!Bi!!!!J(d!+*!!!`!#J"m!"LJ!!!""JJ!\rJU"m!#L`!!!""JJ!8J(m!"ULI!!T)!!!"B!!!!%J!!!&J!!!!J!%!@$JK!&"m#!1\rQJq(rr)2"rrL$SIrd6S!!)%9e!*!&!J!!!&K&G3#3"3-!!!"J4@i-"!!!!,N!!!!\r-J!#3#i!!!)3B!!!!4AF!N!@i!*!%4@m&"!!!!,S!!!!Jrrrrq3!!#2UUrJF!N!c\r"!!%!"!#3$%9f#J#3",X!!!!84@X!"!!!!,`!!!"%!!!!e!!!#H*m#!+QNq(rr*!\r!!3!)P#(r`$[M!!")!!!"B!!!!)!#!!#3!"m!!MJ!!!#B(`!m1(m!!)!"!%Ji)3"\r!I!J$TS2Krra1J!!J4A8!N!@p!!!!&%9d!`#3",i!!!!F4@i-"!!!!-!!!!!-J!#\r3#i!!!%3)!!!!4AF!N!@m!*!%4@X!"!!!!-%!!!$m!!!!pJ!!#Ljm#!+QNq(rr*2\r"rrL6SIrdN!!"!!L8)Iq`1q-!!*!!J3"XJ)%!E%J!!!&J!!!!J!)!!*!!(`!#1(m\r!!%J!!!&J!!!!1m-!!)!#!!#3!!-!$$J!!"@`!`!D1!!!!,!$!#!i!!!!X!-!,NJ\r!!!&J!!!!1k-!!(qJ"c9"JJ!3Ik-(0%J!!!&J!!!!U"i!%#`!!!"!JJ!BJ"i!+*!\r!(`!8S"i!,*!!(`!B5!!!&$J!!!#3!"m!&$J!!!#3!"m!'+JH!"#3!"m!2MJ!!"#\rB(`!X1!!!!TJI!#f!(J!LN!!I!$#J(J!QX"m!,MKr!!#!!3"B1#%!8(`)!kD$iIr\rmJm(rq)1Krr41J!!J4A8!N!A#!!!!*%9d!`#3",i!!!!X4A8!N!A$!!!!1%9d!`#\r3",B!!!"%4A8!N!A%!!!!C%9e!*!&a3!!!(a&EJd#!!!!a`!!!"D!!*!('!!!2!#\r!!!S!!)D!!"m!N!T&GJS-!!!!b!!!!"*&EJ`%!!!!b3!!!!b!!*!1r!#3"%9h!*!\r&`3#3"%9h$3#3"-F!!!!)4@X!"!!!!-S!!!#X!!!"HJ!!$A9m#!+QNq(rr*2"rrL\r3!!%!#*3Krm"mIaYjX)%!AN'#!(5!!J!!N!!I!!+)(`!m+!!!!%'#!$JiI`!!5!!\r!!@!!!!!l``!!1!!!',!$!"T)!!!"B!!!!(aJ"c9!JJ!3J(i!)%J!!!&J!!!!1(m\r!!$L!!!")!!!"B!!!!+J"!&iX!!!!3)%!%$Kr!!")!!!"B!!!!$Kr!!#!!3")1#%\r!3(`)!kD$iIrmJm(rq%k!!#"&G!-!N!5q!!!!)%9e!*!&``!!!$K&G3#3"F3!!!"\r-4A8!N!A,!!!!B%9e!*!&c!!!!("&G3#3"Fd!!!#)4@i-"!!!!-i!!!!-J!#3#i!\r!!+`3!!!!4AF!N!A+!*!%4@X!"!!!!--!!!"J!!!"`J!!$P9m#!+QNq(rr*2"rrL\r3!!%!#*3Krm!l``!!J')!!%J!!!&J!!!!1q-!!)"L!!")!!!"B!!!!,"r!"L!(J!\r1N!!I!"b6h`"Q1(m!!)!"!%Ji)3"!I!J$TS2Krrb$`Iri6S!!)%9d!`#3"-m!!!!\rB4A8!N!A3!!!!(%9d!`#3"-m!!!!S4A8!N!A4!!!!,%9Z$!3!!!$5!!!!$)!!N!Z\r!!!"J%!!!!%9h!*!&``#3"%9V!!3!!!$6!!!!(!!!!J)!!!mEJ!-!2L`!!!&!JJ!\r-1'!!!%k!!##!B`!B6S!!)%9V!!3!!!$8!!!!e!!!!L3!!!pcI!J#TT2Krrb6`Ir\riNk(rp*!!!3!)P#(rX$[$!!")!!!"1q-!!$J!!"5`!`!D1'"!!%J!!!&J!!!!N!"\rr!#!i!%!!N!!I!#3i!!!!N!!I!#LJ(J!HX"m!,$Kr!!")!!!"B!!!!$ZM!!"rS!F\re3B)!&(qM"c4)!!!"B!!!!%J!!%#!(`!FN!!H!!kJ(`!XX"i!(MJ!!!'B(J!m1!!\r!!*!!(J!B1!!!!*!!(J!81!!!!C!!(J!q1(i!!%J!!!&J!!!!J!%!@$JK!&"m#!1\rQJq(rr)2"rrL$SIrd6S!!)%9e!*!&``!!!"a&G3#3"G8!!!!`4A8!N!A%!!!!@%9\re!*!&a3!!!("&G3#3"GB!!!#`4@i-"!!!!0F!!!!-J!#3#i!!!03B!!!!4AF!N!A\r8!*!%4@X!"!!!!0J!!!#-!!!#NJ!!%E9m#!+QNq(rr*2"rrL6SIrdN!!"!!L8)Iq\r`1m-!!%J!!!%i!!!!N!!$!!`i!!!@X!-!'S!H!"53!!-!+$J!!!#3!"i!&$J!!!#\r3!"i!'%J!!!&J!!!!1k-!!(qJ"c9"JJ!8Ik-(0%J!!!&J!!!!5!!!#$KJ!!#!!3"\rB1#%!8(`)!kD$iIrmJm(rq)1Krr41J!!J4A8!N!A$!!!!(%9e!*!&f3!!!%K&G3#\r3"F8!!!"J4@i-"!!!!0S!!!!-J!#3#i!!!)`B!!!!4AF!N!AB!*!%4@X!"!!!!0B\r!!!#3!!!!![!!!"-pI!J#TT2Krrb6`IriNk(rp*!!!3!)P#(rX$[$!!")!!!"J!)\r!!*!!!`!-1!!!&E!$!"Si!!!!X!-!)$J!!!#`!`!Z1!!!!C!!(J!q5!!!!@!!!!!\rlS`!!Ik!(08'#!"KrS`FdN!"q!$j)!!!"B!!!!%J!!!JiB!!!J!%!@$JK!&"m#!1\rQJq(rr)2"rrL$SIrd6S!!)%9e!*!&``!!!"a&G!-!N!5f!!!!)%9e!*!&f3!!!%K\r&G3#3"F8!!!"N4@i-"!!!!0X!!!!-J!#3#i!!!*!!'!!!!%9h!*!&eJ#3"%9V!!3\r!!!$F!!!!C!!!!di!!"@JI!J#TT2Krrb3!!%!#*3Krm!li`!!N!#"!&b3!+%!B)#\r"!&b!S3"J5!!!!@!!!!!X!`!!3))!&$Kr!!")!!!",!-!!%'#!!`iB2rr5!!!#$K\rJ!!#!!3")1#%!3(`)!kD$iIrm6S!!)%9e!*!&h3!!!#4&G3#3"G3!!!!i4@i-"!!\r!!1!!!!!-J!#3#i!!!'3)!!!!4AF!N!AF!*!%4@X!"!!!!1%!!!"S!!!$T!!!&h&\rm#!+QNq(rr*!!!3!)P#(r`$[M!!#3!)%!A*!!S3"JL!-!2#J!!!"!JJ!F1(m!!%J\r!!!%X!`!!3B)!$$KJrrp)!!!B1(m!!)#"!&b!S3"J5!!!!@!!!!#!!3")1#%!3(`\r)!kD$iIrm6S!!)%9e!*!&e!!!!#a&G3#3"H)!!!"-4@i-"!!!!13!!!!-J!#3#i!\r!!'J)!!!!4AF!N!AK!*!%4@X!"!!!!18!!!$S!!!$qJ!!'aam#!+QNq(rr*2"rrL\r3!!%!#*3Krm!li`!!N!#"!&b3!+%!B)2"!&b!!3"J,!!!%%'#!"3iB!!@5!!!!@!\r!!!")!!#8L"i!!5J!!!*"JJ!81'!!,dJ!!!&J!!!!5!!!H)JI!$`S!!!!3))!($K\rr!!")!!!",!-!!%'#!$!iB2rr5!!!9)!I!"3S!!!!3B)!($Kr!!")!!!",!-!!%'\r#!!`iB2rr5!!!-$J!!"#B(`!XJ"i!"*!!(`!`S"i!!V!I!#ii!!!#Q"m!,6J!!!@\rB(`!m1'!!!)!"!%Ji)3"!I!J$TS2Krrb$`Iri6S!!)%9e!*!&jJ!!!$4&G3#3"HB\r!!!"34A8!N!A8!!!!E%9e!*!&f!!!!*!!4@i-"!!!!1N!!!!-J!#3#i!!!1J3!!!\r!4AF!N!AP!*!%4@X!"!!!!1S!!!&`!!!%PJ!!)ICm#!+Q[f(rl*!!!3!)P#(rX$[\rM!!#3!)%!E$ZP!!!lC`!!1iJ!!)2#!!#)!`!m+!!!!%##!"`iI`!!5!!!!5`$!!"\r"JJ!-1'$rrdJ!!45)(`!6+!!!!%'#!##!(`!q,!!!!8##!"3iB!!,5!!!!@!!!!"\r)!!$X5!!!!@!!!!!X!`!!3))!,)!H!!!S!!!!3B)!-$KJ!!BiJ!!!JCi!!%J!!!&\rJ!!!!,!-!!%'#!"3iB!!%5!!!!@!!!!")!!#NJ"m!2L`!!!&"J[q`J"m!2L`!!!"\r"JJ!8J(m!2NJ!!!&J!!!!5!!!I)!I!"Km(3!!3)!!#%J!!!L$[`!BJ(m!&)#"!'`\ri[3!!5!!!!@!!!!!S'`!!3B)!1)!F!!!X!!!33B!!,)"r!#b!(`!`N!"l!!#3!"X\r!")"r!$5!(`!iN!"l!!L3!"X!$$J!!"#3!"`!!$Kr!!")!!!"1(m!!%J!!!%iI3!\r!J!%!@$JK!&"m#!1QZf(rl%k!!#"&G!-!N!6V!!!!*%9e!*!&e!!!!$K&G3#3"HB\r!!!"S4A8!N!AX!!!!G%9e!*!&l3!!!*a&G3#3"HB!!!#`4A8!N!A&!!!!f%9e!*!\r&lJ!!!34&G3#3"GJ!!!&-4A8!N!A@!!!"9%9Z$!3!!!$c!!!!$)!!N!Z!!!&`+!!\r!!%9h!*!&kJ#3"%9V!!3!!!$d!!!"Z!!!"9J!!#STI!J#TVp"rqL3!!%!#*3Krk!\rlB`!!N!#"!(`la3!!1iF!!)2L!!#)!`!m+!!!!%##!"`iH`!!5!!!!5`$!!""JJ!\r-1'$rrdJ!!@!mB!!"1'2rih`H'!"!J3!81'!!+%J!!!&J!!!!5!!"3$J!!!#`!3!\rqXm%!1)!"!(b3!!%!1LJF!!"!JJ!SL"X!,#J!!!""JJ!-1jX!,%J!!"3iB!""5!!\r!!@!!!!")!!%!1(X!!%J!!!%lS`!!J!)!!*!!!`!-1!!!&l!$!"U!I!!%2!1"!#J\r!!!&!JJ!35!!!!@!!!!")!!!)J(`!"*!!I3!LS"`!!V!G!#Bi!3!iN!!G!#Ji!!!\r"Q"d!,$J!!!#`(3!Z1(d!!%J!!!&J!!!!1d-!!(p!"c9"JJ!8Id-(0%J!!!&J!!!\r!5!!!H%J!!!&J!!!!,!-!!%##!#b!(`!!+!!!!%'#!$!iB!!(1*i!!)'I!!")!!!\r"B!!!!#`$!!""JJ!81'!!"%J!!!&J!!!!5!!!-)!"!$SS!!!!3),rX+J"!$iX!!!\r!3)!!&+KK!$j)!!!"B!!!!%J!!!JiIJ!!J!%!D$JK!'"m#!1QZd(rk%k!!#"&G!-\r!N!6V!!!!)%9e!*!&e!!!!$4&G3#3"HB!!!"F4A8!N!AQ!!!!R%9e!*!&``!!!+a\r&G!-!N!5k!!!!Y%9e!*!&p3!!!04&G3#3"GN!!!%-4A8!N!A&!!!"*%9e!*!&l!!\r!!6"&G3#3"Hd!!!&B4A8!N!AQ!!!"E%9e!*!&a3!!!C4&EJ`%!!!!r3!!!!b!!*!\r,J!!"Z$!!!!"&G`#3"I3!N!4&D`!%!!!!rJ!!!+3!!!C'!!![$h`)!UD6iIrmNm(\rrq*1Krr56JIr`N!!"!!L8)Iq`1i-!!(bG)hNla3!!1q!!!%##!!`S(J!!3B)!')J\rF!$`S!!!!3))!$$Km!!")!!!"+"d!!%'#!"b!(!!q,!!!!8'#!"!i!!!"Q"d!!$[\rr!!%S(J!!3B)!%$J!!!'B(J!!1rm!!6Kr!!#!!3"B1#%!8(`)!kD$iIrmJm(rq)1\rKrr5$JIr`6S!!)%9e!*!&e!!!!%K&EJ`%!!!"!J!!!!b!!*!,J!!!T#!!!!"&G`#\r3"Ii!N!4&EJ8"!!!"!`!!!!Vrrrr1!!![$e9%8&0[BfYPG!$DD%9Z"3%!!!%%!!!\r!"rrrrmd!!#m28fpMDf9d!!"&EJ8%!!!""3!!!!Mrrrr-!!![$`#3#%9f"3!!!!%\r%!*!%4@i&!3!!!3B!!!!,rrrrb`!!,`p*6N988fpMDf9d!!"&EJ8%!!!""`!!!!c\rrrrr+!!![$`#3$%9f"3!!!!%&!*!%4@i&"!!!!3J!!!!)rrrrb3!!,`m!N!K&GJ8\r!!!!""J#3"%9f"3!!!!%(!!!!"%9Z"33!!!%*!!!!&2rrrmJ!!#m2!*!84AB&!!!\r!!3J!!!!)4AB&!!!!!38!N!4&EJ8%!!!"#J!!!!Mrrrr(!!![$`#3#%9f"3!!!!%\r$!*!%4AB&!!!!!3N!!!!%4@m&"!!!!,i!!!"SrrrraJ!!,`m!N'K&GJ8!!!!"#J#\r3"%9f#J!!!!%,!!!!A%9f#J!!!!%-!!!!9%9f#J!!!!%0!!!!6%9f#J!!!!%1!!!\r!5%9f#J!!!!%2!!!!4%9f#J!!!!%3!!!!3%9f#J!!!!%4!!!!0%9f#J!!!!%5!!!\r!-%9f#J!!!!%6!!!!(%9f#J!!!!%8!!!!'%9f#J!!!!%9!!!!&%9f#J!!!!%@!!!\r!%%9f#J!!!!%A!!!!8%9f#J!!!!%B!!!!2%9f#J!!!!%C!!!!1%9f#J!!!!%D!!!\r!,%9f#J!!!!%E!!!!@%9f#J!!!!%F!!!!*%9f#J!!!!%G!!!!)%9f#J!!!!%H!!!\r!$%9f#J!!!!%I!!!!+%9f#J!!!!%J!!!!#%9f#J!!!!%K!!!!C%9f#J!!!!%L!!!\r!B%9[#J3!!!%E!!!!#)!!N!p&GJ#3"Ii!N!4&GJm!!!!")`!!!!4&E`S%!!!"(!!\r!!!L!!*!24AB!N!Ad!*!%4AB2!!!!!5-!!!!%4@m+"!!!!4d!!!!)J!#3$d9f!*!\r&kJ#3"%9f$`!!!!%M!!!!"%9[#J3!!!%H!!!!#)!!N!p&GJ#3"H8!N!4&GJm!!!!\r")`!!!!4&E`S%!!!"(`!!!!L!!*!24AB!N!AK!*!%4AB2!!!!!5-!!!!%4@m+"!!\r!!5!!!!!)J!#3$d9f!*!&h!#3"%9f$`!!!!%M!!!!"%9[#J3!!!%N!!!!#)!!N!p\r&GJ#3"GB!N!4&GJm!!!!")`!!!!4&E`S%!!!"*3!!!!L!!*!24AB!N!AB!*!%4AB\r2!!!!!5-!!!!%4@m+"!!!!5B!!!!)J!#3$d9f!*!&e!#3"%9f$`!!!!%M!!!!"%9\r[#J3!!!%K!!!!#)!!N!p&GJ#3"G-!N!4&GJm!!!!")`!!!!4&E`S%!!!"*`!!!!L\r!!*!24AB!N!A$!*!%4AB2!!!!!5-!!!!%4@m+"!!!!5)!!!!)J!#3$d9f!*!&bJ#\r3"%9f$`!!!!%M!!!!"%9[#J3!!!%S!!!!#)!!N!p&GJ#3"F%!N!4&GJm!!!!")`!\r!!!4&E`S%!!!"+3!!!!L!!*!24AB!N!@m!*!%4AB2!!!!!5-!!!!%4@i+"!!!!,X\r!!!!)J!#3$d9f!*!&Z!#3"%9f$`!!!!%M!!!!"%9[#J3!!!#h!!!!#)!!N!p&GJ#\r3"3%!N!4&GJm!!!!")`!!!!4&E`-%!!!!ZJ!!!!5!!*!,4AB&!*!%ZJ#3"%9[!`3\r!!!$V!!!!")!!N!Y&GJ8!N!6V!*!%4@m$"!!!!-m!!!!%J!#3#d9f"3#3"-m!N!4\r&E`-%!!!!YJ!!!!5!!*!,4AB&!*!%YJ#3"%9[!`3!!!#q!!!!")!!N!Y&GJ8!N!5\rq!*!%4@m2"!!!!5-!N!5!!*!(4@J!!&0C68J!!!ED!!!!1J!!!!B!N"J&#J!!!$!\r!!!9c!!!!4!!!"Gm!!!"8!!!'$!!!!)J!!!F%!!!!V!!!"a2rN!3!!!F6!!-!!!!\r%rj!%!3#3""d!!!#+rrrre!#3"4i!!!#Drrrrd`#3"4m!N!J)#`!!!%3!!!M@!!!\r!D!!!#1ArN!3!!!MP!!-!!!!%rj!%!3#3""d!!!#+rrrre!#3"4i!!!#Drrrrd`#\r3"4m!!3#3"JRkrj!%!!!++`!"!!!![rrrrp-"!*!%(`!"!*!'#PB!!!!i!!!+M!!\r!!'3!!![*!!!!H!!!#r3!!!#%!!!-"`!!!*!!!!!-(J!!!+3!!!am!!!!Y!!!$*h\rrN!3!!!eb!!3!!!#rrrrrd`%!N!3I!!!!S`!!!!)"!`!!!'`!!!!%rrrre!#3"4i\r!!!$'!!!!#`#3"4d!!3#3"Jf0!!!!0!!!$G)!!!"-!!!1"!!!!&`!!!iUrj!%!!!\r18J!#!!!![rrrrp-"!*!%(`!!!!6rrrr8!*!&(J!"!*!'$R)!!!!F!!!1G3!!!#`\r!!!kIrj!%!!!2'!!#!!!![rrrrp-"!*!%(J!!!!6rN!3!N!8I!!%!N!B23rq3"!!\r!$h!!!3!!!,rrrrr6!3#3"!-!!3#3"Jq1!!!!(!!!$km!!!!`!!!2j`!!!&J!!"#\rf!!!!E!!!%1%!!!"m!!!3r!!!!,!!!"'Hrj!%!!!4XJ!$!!!![rrrrp-"!*!%(J!\r!!!6rrrr8!*!&(`!!!-B!!!!,!*!&(3!"!*!'%G8!!!!F!!!51!!!!%J!!",P!!!\r!A!!!%a%!!!"X!!!6-2q3"!!!%cS!!`!!!,rrrrr6!3#3""i!!!!%rrrre!#3"4m\r!!!$'!!!!#`#3"4d!!3#3"K0B!!!!(!!!%hN!!!")!!!8JJ!!!&`!!"5Z!!!!F!!\r!&02rN!3!!"6G!!-!!!#rrrrrd`%!N!3H!!!!"2rrrp3!N!8I!!!!aJ!!!!X!N!8\rG!!%!N!B9cJ!!!#3!!"A4!!!!4!!!&JF!!!"-!!!@'[q3"!!!&L3!!`!!!,rrrrr\r6!3#3""m!!!$H!!!!C!%$!!!!A!!!!0m!!!!$!3-!!!"J!!%!N!BATJ!!!#J!!"I\r2!!!!1!!!&q-!!!"!!!!Am2q3"!!!'"m!!`!!!,rrrrr6!3#3""m!!!$M!!!!C!%\r$!!!!A!!!!0rrrrr4!3-!!!"J!!%!N!BE8!!!!$!!!"[&!!!!3!!!'q)!!!"-!!!\rF"3!!!&`!!"aB!!!!D!!!()!!!!"i!!!FP!!!!)!!!"bR!!!!M!!!(,B!!!#F!!!\rFc`!!!+3!!"cdrj!%!!!Ga3!%!!!![rrrrp-"!*!%(`!!!1F!!!"N!3-!!!"F!!!\r!k!!!!!-"!`!!!'!!!!$Hrrrrd!#3"4i!!3#3"L*+!!!!0!!!)U)!!!"%!!!LYJ!\r!!%`!!#,Z!!!!C!!!)a)!!!"d!!!M@3!!!-J!!#0G!!!!e!!!)h3!!!$N!!!Mf!!\r!!2J!!#2f!!!"$!!!*"`!!!%J!!!N@3!!!8J!!#82!!!"9!!!*5,rN!3!!#9"!!8\r!!!#rrrrrd`%!N!3I!!!!l`!!!'3"!`!!!'`!!!$`!!!!!`%!N!3G!!!!m3!!!'3\r"!*!%'`!!!2,rrrr4!3#3""`!!3#3"LTZ!!!!-!!!+[F!!!"!!!!V#`!!!%J!!#X\rC!!!!@!!!+c3!!!"S!!!V93!!!)3!!#[a!!!!N!!!!#`'!!!!Q!!!,"`!!!#S!!!\rX3!!!!3`!!#hE!!!")!!!,JF!!!%`!!!ZY`!!!B3!!#km!!!"N!!!!#l9!!!"S!!\r!,[lrN!3!!#m-!!F!!!#rrrrrd`%!N!3E!!!!l`!!!'3"!`!!!(`!!!$f!!!!!`%\r!N!3H!!!!p`!!!'3"!*!%(!!!!!6rrrr8!*!&(3!!!-B!!!!,!*!&'J!!!2Mrrrr\r2!!-!!!!i!!%!N!B[9`!!!$!!!#pa!!!!1!!!,i`!!!"%!!![X`!!!%`!!#r'!!!\r!9!!!,p8!!!"J!!![l3!!!'`!!$!8!!!!G!!!-#B!!!#!!!!`5rq3"!!!-&X!"!!\r!!,rrrrr6!3#3""`!!!$r!!!!D!%!N!3G!!!"!*!%D!%!N!3H!!!"!3!!!!-!N!8\rI!!(rrrrl!!!!$!!!!!%!!!!(!!$rrrrf!!%!!!"U!!,rrrrh!!!!&!!!!"3!"`!\r!!"8!!!!#!*!($`!!!!F!!!!%!!!!&J!!!!F!!!!&!!!!&`!!!!S!!!!'!!!!'2r\rrrrB!!!!)!!!!%!!!!!)!!!!-!!!!'3!!!!)!!!!3!!(rrrri!!!!&!!!!"6rrrr\rh!!,rrrrj!!!!#`!!!#!!#!!!!!`!!!!+!*!($3!!!!F!!!!#!!!!$J!!!!B!!!!\r$!!!!$`!!!!)!!!!%!!!!%!!!!!B!!!!)!!!!%3!!!!B!!!!*!!!!%J!!!!S!!!!\r+!!!!%rrrrrJ!!!!-!!$rrrrk!!(rrrrj!!,rrrrd!!!!)`!!!"!!"!!!!#3!!!"\rQ!*!(*3!!!!)!!!!%!!!!*[rrrrS!!!!)!!!!*`!!!'B!!!!-!!(rrrrb!!!!+!!\r!!!%!!!!(!!,rrrrc!!!!+3!!!%)!%!!!!#S!!!!(!*!(+`!!!!F!!!!"!!!!,!!\r!!!F!!!!#!!!!,3!!!!F!!!!$!!!!,J!!!!)!!!!%!!!!,`!!!!S!!!!)!!!!-!!\r!!!)!!!!+!!!!-3!!!!S!!!!1!!!!-J!!!!F!!!!3!!!!-`!!!!F!!!!4!!!!0!!\r!!!B!!!!5!!!!03!!!!F!!!!6!!!!0J!!!!F!!!!8!!!!0`!!!!F!!!!9!!!!12r\rrrr)!!!!@!!!!*`!!!'B!!!!q!!,rrrra!!!!1J!!!"3!#J!!!#S!!!!(!*!(+`!\r!!!F!!!!"!!!!,!!!!!F!!!!#!!!!1`!!!!B!!!!$!!!!2!!!!!B!!!!%!!!!23!\r!!!F!!!!&!!!!2J!!!'B!!!!'!!!!2`!!!!)!!!!+!!!!3!!!!!S!!!!1!!!!*`!\r!!'B!!!!3!!,rrrr`!!!!3J!!!"B!#J!!!#d!!!!(!*!(3`!!!!B!!!!"!!!!2!!\r!!!B!!!!#!!!!23!!!!F!!!!$!!!!*!!!!'B!!!!%!!!!*3!!!!S!!!!)!!!!4!!\r!!'B!!!!+!!!!43!!!!S!!!!1!!!!4J!!!!S!!!!3!!!!*`!!!'B!!!!5!!,rrrr\r[!!!!5!!!!!J!"3!!!#S!!!!(!*!(+`!!!!F!!!!"!!!!,!!!!!F!!!!#!!!!23!\r!!!F!!!!$!!!!*`!!!'B!!!!%!!,rrrrZ!!!!5J!!!!3!!3!!!#F!!!"Q!*!&![r\rrrqN!!!"R!!!!"J!#!!!!D!!!!!S!N!GT!!!!!J!!!!)!!IrrrqS!!!!U!!!!"[r\rrrqN!![rrrqX!!!"F!!!!9J!3!!!!A3!!!!)!N!GH!!!!!J!!!!3!!!"I!!!!!J!\r!!!J!!!"J!!!!!J!!!!`!!!"K!!!!!J!!!"!!!!"L!!!!!J!!!"3!!!"M!!!!!J!\r!!"J!!!"N!!!!!J!!!"`!!!"P!!!!#J!!!#!!!!"QrrrrkJ!!!#)!!!"C!!!!#J!\r!!%`!!!"U!!!!#J!!!%i!!!"V!!!!#J!!!&!!!!"X!!!!#J!!!&)!!!"Y!!!!"`!\r!!&3!!!"Z!!!!"`!!!&8!!2rrrq`!!IrrrqX!![rrrqd!!!"-!!!!4J!C!!!!+J!\r!!!F!N!FV!!!!"`!!!!%!!!"0!!!!!`!!!!)!!!!Z!!!!!J!!!!B!!!![!!!!#J!\r!!!S!!!!`!!!!!J!!!!`!!!!a!!!!#J!!!"!!!!!b!!!!"`!!!")!!!!c!!!!"`!\r!!"-!!!"1!!!!"`!!!"3!!!!p!!!!"`!!!"8!!!"2!!!!#J!!!"B!!!"3!!!!#J!\r!!"J!!!"4!!!!#J!!!"S!!!"5!!!!#J!!!"`!!!"6!!!!CJ!!!"i!!!"8!!!!!J!\r!!#)!!!"9!!!!!J!!!#B!!!"@!!!!!J!!!#S!!!"A!!!!!J!!!#i!!!"B!!!!!J!\r!!$)!!!"C!!!!!J!!!$B!!!"D!!!!!J!!!$S!!!"Errrrl!!!!$i!!!!R!!!!CJ!\r!!%)!![rrrqB!!!"b!!!!'!!'!!!!F`!!!!)!N!Gd!!!!!J!!!!3!!!"e!!!!!J!\r!!!J!!!"f!!!!!J!!!!`!!!"h!!!!!J!!!"!!!!"i!!!!!J!!!"3!!2rrrqF!!Ir\rrrqB!![rrrq3!!!"k!!!!0!!0!!!!H`!!!!)!N!Gm!!!!!J!!!!3!!!"p!!!!!J!\r!!!J!!!"q!!!!!J!!!!`!!!"r!!!!!J!!!"!!!!#!!!!!!J!!!"3!!!#"!!!!!J!\r!!"J!!!##!!!!!J!!!"`!!!#$!!!!!J!!!#!!!!#%!!!!!J!!!#3!!!#&!!!!!J!\r!!#J!!!#'!!!!!J!!!#`!!!#(!!!!!J!!!$!!!2rrrq8!!Irrrq3!!2rrrq)!!3!\r!!!)!!Irrrq-!!!!%!!!!"2rrrq)!![rrrqJ!!!"`!!!!%J!&!!!!FIrrrqF!N!G\rjrrrrj3!!!!3!!!#)rrrri`!!!!J!!!!R!!!!CJ!!!!`!!!#*!!!!#J!!!"!!![r\rrrr8!!!!K!!!!4J!)!!!!)[rrrr3!N!FSrrrrm`#3"cRrrrra!*!(3Irrrr!!N!G\r(rrrrl`#3"dRrrrrZ!*!(5rrrrqd!N!G[rrrrk!#3"3,rrrrm!!!!#!!!!'B!#3!\r!!!Rrrrrl!*!(#[rrrrS!!!!-!!!!'J!!!!X!!!!3!!!!'`!!!'B!!!!5!!!!(!!\r!!!X!!!!@!!!!(3!!!!X!!!!B!!!!(J!!!!X!!!!D!!!!(`!!!!)!!!!F!!!!)2r\rrrr8!!!!J!!(rrrrJ!!!!$!!!!!%!!!!(!!,rrrrH!!!!MJ!!!"3!"J!!!#3!!!"\rQ!*!(*3!!!!)!!!!%!!!!*[rrrrS!!!!)!!!!-3!!!!S!!!!-!!!!*`!!!'B!!!!\r1!!!!M`!!!!S!!!!5!!,rrrrG!!!!N!!!!!!@!!N!!!#4!!!!#J#3"bi!!!!#!!!\r!!J!!!#m!!!!+!!!!"J!!!$i!!!"Q!!!!#!!!!*)!!!!'!!!!$!!!!$d!!!!(!!!\r!$3!!!%!!!!!+!!!!$J!!!#F!!!"Q!!!!%!!!!$%!!!!+!!!!&!!#rrrrh!!!!*-\r!!!!D!!N!!!#8!!!!#J#3"bi!!!!#!!!!!J!!!#m!!!!+!!!!"J!!!#3!!!"Q!!!\r!#!!!!#8!!!!+!!!!$!!!!%B!!!!+!!!!$J!!!#F!!!"Q!!!!%!!!!*8!!!!#!!!\r!&!!!!*B!!!!+!!!!'!!#rrrrf`!!!*J!!!!+!!-!!!#C!!!!#J#3"bi!!!!#!!!\r!!J!!!#F!!!"Q!!!!"J!#rrrrh`!!!)d!!!!D!!3!!!!LrrrrhJ#3"cRrrrrG!*!\r(3Irrrp`!N!HArrrrf`#3"3,rrrrK!!!!L`!!!$S!#3!!!!RrrrrJ!*!(#[rrrrS\r!!!!-!!!!'J!!!!X!!!!3!!!!'`!!!'B!!!!5!!!!(!!!!!X!!!!@!!!!(3!!!!X\r!!!!B!!!!(J!!!!X!!!!D!!!!M!!!!!)!!!!F!!!!)2rrrpm!!!!J!!,rrrrp!!!\r!"J!!!'B!!J!!!!Irrrrm!*!(L[rrrq%!N!8#rrrrf!!!!*d!!!!'!!)!!!#H!!!\r!#`#3"jm!!!"N!!!!!J!#rrrreJ!!!+d!!!!%!!%!!!#Z!!!!!J#3"3(rrrr9!!!\r!#!!!!!%!!!!(!!,rrrrA!!!!U!!!!"!!"3!!!+N!!!!'!*!(UJ!!!!B!!!!"!!!\r!U`!!!!S!!!!#!!!!V2rrrpB!!!!%!!!!Vrrrrp8!!!!)!!,rrrrC!!!!Q`!!!%)\r!$3!!!*crrrrB!*!(S!!!!'3!!!!'!!!!S3!!!!X!!!!+!!!!SJ!!!!X!!!!-!!!\r!S`!!!!)!!!!1!!!!5`!!!!B!!!!5!!!!T!!!!!B!!!!6!!!!T3!!!'B!!!!8!!!\r!TJ!!!!-!!!!B!!!!TrrrrpF!!!!F!!!!X2rrrpF!!!!X!!!!X3!!!!B!!!!m!!!\r!XJ!!!!-!!!!q!!$rrrrD!!(rrrrC!!,rrrrq!!!!"3!!!'S!!J!!!!6rrrrp!*!\r(Q[rrrpS!!!"Q!!$rN!3!!Irrrri!!2rrrp3!!Irrrq%!![rrrp)!!!#c!!!!3J!\r"!!!!Y2rrrpN!N!Errrr6!!(rrrr5!!$rrrr4!!%!!!!$!!$rrrr3!!(rrrrA!!,\rrrrr2!!!!q3!!!!J!!`!!!2S!!!!+!*!(q`!!!'B!!!!#!!!!r!!!!!X!!!!'!!(\rrrrr1!!!!#J!!!!%!!!!(!!(rrrr0!!!!"`!!!!%!!!!(!!,rrrr-rj!%!!!!#!!\r!!!(rrrr,!!!!#`!!!!%!!!!(!!,rrrr+rj!%!!!!$!!!!!,rrrr*rj!%!!!!#!!\r!!!,rrrr)rj!%!!!!&!!!!!,rrrr(rj!%!!!!#!!!!!,rrrr'rj!%!!!!D!!!"3J\rZG@4`Ah*PB@4IB@KPB@4IC'pZC9pI4P!a-8&ZEQpdBA4PC&"#!!Gi,RGi6@&M8fp\rMDf9d5'&ZC'aPFP"bEf-!!#FZ8Q9KC(PIAc%b8fpMDf9d4'pYB@PZ4RB!!R"`BJ!\r$!N&ZEQpdBA4PC&"#!!5G3'0XBA0c*$Fj1%G98dP94&"IBh!!!kjdBh!!"h083e"\rTEh"L!!EbCQPXE$%b!!6ED@p$Efe`E'9dD@pZ!!'r8QpeG'PZC84PFf0bDA"dEh)\r!"bGREdeTH'9N6@pNC94bBA!!"d4fCA*cD@pZ!!B)FQpeG'PZC84PFf0bDA"dEh*\r'E'&RF`!"9R*PFf9bGQ9N-3!"9h*PFf9bGQ9N-J!%Gh0PE'9MG'pb5@jQE`!%+R*\r[GA4TEQ9$Eh9ZG!!'m(*[GA4TEQ95C@0[FQ4c!!8I8QpeG'PZC9*PBfpbC!!![h"\rbEf0*EQC[!!23590"!!6lFQpeG'PZC8CXB@Gc!!D%F(*[Bd4PFf0bDA"dEh)!!0G\rcC@aPBh4[FJ!!IfP[8Q9cG@ad!!(@D@p1B@eP8(4b!!&XD@p@8Q9Q6R9Y!!%@D@p\r$8Q9Q6R9Y!!DUBh0$Ef4P!!(rG'0`8h4bC@&Y!!I)Bh03BA*KE3!%!8"ME'&cFb3\rh1$G(990*9843Af0`!!DCBh*PBA4P!!1k9%033h*PBA4P8%)!"p"bBhC#G@CQ!!+\r8FQ0f3R9QCNaPEJ!#h@j[G'PQH9"bEf-!!bTeFf9b4'&dB9"dFJ!%F'p`C@i!!4p\r83e"2F'9Z8%)!"iaeE("8D@ePEh9d9Q&XG@8!!(peE("8D@ePEh9d3@0dD@pZ!!@\rNGQ&XD@4TG(P'E'&RF`!$$@0[E@eKEQ48D@ePEh9d9Q&XG@8!!YTbC@e[G'9)Eh0\rd!!+qFQ9YEh4P8'pbG!!"cQa[Bf&X5'pcG!!"XQa[Bf&X8'pbG!!!i(4[FdCXB@G\rc!!*rF(*PBf9NC@jMC3!!Ff4[ER4'FQ&R!!)rG'PYC94[6'PfC3!!kA0PBh9bDA4\rj!!(eEh"dD@pZ3fjd!!FNEh"dD@pZF`!%JA0PEQ3!!9"83e"6C@jN8%)!!,C`GA0\rS4QaKC`!#2(9bCf9ZG%CXB@F!"VPQD@aXCA)!"[ahC(03G()!!"*cC@jN4R*PC3!\r#QR0PEQ4-C@jRG'J!"`PbC@0PDACP!!4c9%038Q9MC@PfC9"#!!#&E@&bDdCXB@F\r!"LCbC(03G()!!CabC(0-C@jRG'J!"qYcC@0[EQ48D@eP8h4KEA!!"IeME'pcC3!\r#ie4$8%0XEh0P8%)!"F0KBQpbG!!#Qe4$8%&LEh*d8%)!"XjcG'&dGA-!!ep83e"\r6G'&dGA033J!'@R9ZGA0PC!!(Kf0[EQjPBh4TEfj6G'&dC3!#Sh0PEQ4AD@jNEhF\r!!3PbBhCAD@jNEhF!"V&KEA49EQ&MDf9N4'&dB3!&D'&YG&9ZFQ9KC%4KG'%!!,j\rcC@0eFQPdH8aPGQ9X8(4b!!11Ff9ZC&9ZB@0VC@3!!&0cC@jN6Q9iG!!!KQ0[EQG\rPFh4TEfjAD@jNEhF!"`TbBhC1CAKd!!5'Fh*dG!!(BfaKFh459&3!"NKcC@jN6@&\ri8f9R8fPkC3!$H@0[EQj6G'&d8(4b!!,99%033fpZEQ9MG'P[EP0dBA4c!!4&C'&\rdB9"VG(05BhCN!!6GC'&dB9"VG(06C@jd!!EGC'&dB9"VG(05CA0PER3!!ICLHA4\rPFe*MGQ3!"+GLHA4PFe*MGQ4%GA!!!i9LHA4PFe*MGQ43BA0d9fPZC'ph!!'+BRP\rdCA06C@jd!!1JBRPdCA05CA0PER3!"jaZG@e)DA0dEd*eBfYPG(-!"44cC@jd8fP\rkC8KTFh4[!!1m5'PcG'p#G@0VCA3!"9KfB@aeC3!(%Q0[G@jdCA)!"r"dEA*68P4\r8!!-mFR4d9Q&bD@&ZBf8!"KYdEA*59%m!!FCcC@jN9(*TCA-!!0CcEh9bBfK4G@9\rZBfK5BhCN!!,rCfa[BQ&X5@jQE`!(T94$8%GXEf*KE%PZCQp33J!$%R4MF&"KFQ&\rY8(4b!!!Q9%038'&bB@d!"j!!G'0`8R4[33!"$A4MF&*dEdeTEJ!"&R4MF&*dEde\rKH!!&qR4MF%eKH&0PCe0THQ8!!PedBh"0BAK$EfjZ!!4TG'0`6@&i9fPZC'ph!!2\rMG'0`8h4KG(03G()!!)K83e"6G'&dF`!(C(4MF%0[EQj"G(4PEA"dF`!&dh4MF%0\r[EQj2F'9ZC@3!"fPdBh"$EfjZ3@0MCA"dC@3!"5"dBh"$EfjZ3fa[Ff9N!!BrG'0\r`3fpZEN&LEh*dC@3!!lCdBh"2Bh4PG(0*EJ!%3h4MF%pMG'9dFdpeG!!'Kh4MF%p\rMG'9dFdPZ4(9`!!!cG'0`6f0dCA4c8Q9dFQ&ZF`!%IA4MF%PZF(9d8'YdF`!&)(4\rMF%peG("eG&"VG(-!!JpdBh"%GA"3Dh4c!!EfG'0`8Q9dFQ&ZFe"VG(-!!kCdBh"\r$4%*8B@*XC3!"G'eKH&4$8%0[EQjPBh4TEfjc!!1bG@4`!!F`9843D@p`BJ!"rR9\rNF&0dFQ9KE3!%2N"ME'&cFb3h16"(990*9843Af0`!!2198433h*PBA4P8%)!!P"\rPEQ4TEQG3Eh*d!!&C98438f9ZC&"#!!!TFQ9cCA*fC@3!!%"MD'9MDe0eE3!%A&9\r%8&*PBf9TGQ933J!(bA4TE@92GA3!!'TNCA0d5'pcG!!!6Q4PFh43Eh*d!!1CEA4\re!!$k984369498%)!"jPYG(96DATP!!3ZFfpMD`!#c%P14946Ef0VCA3!"rBN8fp\rMDf9d!!Ej8fpMDf9d!!!FFQ9Q3fpeER3!"r0IAhC`G()N!!$IGhKbC@CMEfi!"b9\rhH'9fC@jd!!2RGhKPGQ9ZG'eKFfX!"R*cG(*PB@d!!ieZEfjLE'pMDfPZC`!(pR*\rPBhC#G@B!"CTbC@0fC!!#ch0K!!2NFfpMDf&NC(*ID@i!"`*cD@jIE'9Z!!,!FfP\rZAfCKE@PXH3!!@R0TEPp`Eh*d!!!$FfPZAf&NC()!"feTEPpKC'4b!!CpFepKC'4\rb!!#bFfPZAhTPFQm!"1a`C@9b!!DaFh0dBA4P!!$(BA0jEQ0PFR)!!HK94&"6Ef0\rVCA3!!lXN58j&9&0[BfYPG!!%2d!i-$J!"3PeAh9NF&pbC@&NAf&SC@&NAf4[EQ8\r!"-KeC("IFQ9KC&pKD'9KC&pNEfjPAep'8$%a3@jZEh4KG'9N8%)!"d3ZG@4`Ah0\rPEQ4IC'pZC9pI4P!a-8&ZEQpdBA4PC&"#!!4C3$Ja-J!(VA9IG@4`Ah0PEQ4IC'p\rZC3!'eA9NF&pcC@jNAf4[EQ9IAdC3-6&"EQj[G'&dC@433J!$jbjIAf0dAemj984\r38fpMDf9d4RB!"G%ZAepMG&pI-6"*6N988fpMDf9d4RB!!+4IAhCdAemj98438fp\rMDf9d!!4EG'KTF`!%@d!i-63!"%3ZAepMG&pI199%8&0[BfYPG%C9E!!'JLjIAf0\rdAema-%P14946Ef0VCA4'9@`!"$mZ4f9d8%*IAcP94&"6Ef0VCA4'GJ!'Abj33N0\r[ER4bEfa6H@jM!!E%,P4$8&pPFR*[FPpI4QN!!c9PFR)!"(K!1$)a!!3#AepNG&p\rI-6"*6N988fpMDf9d4RB!"(P!1$)b!!-%,PpIC(4IAcP94&"6Ef0VCA4'GJ!$##j\r%DA0`Eh0P8(4b!!8%,PpIC(4IAc%`58j&9&0[BfYPG%Cf!!*2,PpIC'aIAdC3GJ!\r%Pd!i-c!!!`a*6N988fpMDf9dF`!%$Lj(CA433PpI-6C*6N988fpMDf9d4'pYB@P\rZ4RB!"8iZ4(*TGQ9bAema0NP14946Ef0VCA4%EfeKD@j'GJ!%QN!i-c-!!2dZ3AC\rKD@aKBQaPAemj98438fpMDf9d4RB!!0)Z6Q9h8h4bC@&YAemj98438fpMDf9d4RB\r!"p8Z6Q9h8(4b!!"9,P*PB@4"D'9KC&pI199%8&0[BfYPG%Cf!!5I3$Jc1!!&)5j\r'E(9cD&*PB@4"D'9KC&pI199%8&0[BfYPG%Cf!!IB,P"#3fpZG(*[E%&cH@jM!!5\rk3$Jd-`!%[N!i0$F!"6XZBQPZC&pI199%8&0[BfYPG%C3GQN!"jdZBQPZC&pI-6"\r*6N988fpMDf9d4P"fD3!%3'&NC()!"k*ZB@ePE'9Z!!6D3$Je-`!&f#jRCA4cEf0\rVEQ&YC9pI199%8&0[BfYPG%C3GP"T!!II,QGPG(0[BfYZB@ePAema-%P14946Ef0\rVCA4'8(C3D3!%UfjKE@8!"1"!1$8j!!"S,Q0[EQjPBh4IAcP94&"6Ef0VCA4'8(C\rT!!1Y,NG98dPICA*bEh)!"hGKC'4bCA0c!!IXB@4NFQaPEJ!%'d!i0c3!"KSZFQ9\rMGQCbEfeIAcP94&"6Ef0VCA4'8(CTD9"f8'N!!(&(990*8h"TEJ!$@Lj(990*3fK\rPBfY"E'&bE9pI4RB!!j3ZAep`G(*ICfaeC3!#,bj#E'pMDde[GQ8!"J0LG@CQCA)\r!"[GLG@CXC@i!"$0QFQpY!!GPCR*[E@aPEJ!%AN!i16B!!pFZFf9ZC(4[Aemj984\r38fpMDf9d4P"fD@P3GQN!!PJZCf9dD'pcG'PN!!8&BfpeER3!![edE`!%MQ&hC(-\r!"j&YD@jTGf4c!!EfE'9ZCh4S!!2#F(4b!!")G'9bE@PZGA-!"(e!16)b!!@[,R0\rPE'9MG&pI199%8&0[BfYPG%C39@039@039@-!"caMB@j5C@&N!!"QBf&Z9h*TG'8\r!"k&REfpND@9c!!5J3$Nc03!%S8!j-cB!"+0!16-i!!IrAep59&4*Aemf8fpMDf9\rd!!5N3$Nc13!%Zd!j0$!!"!CIAe*89%PIAc%`58j&9&0[BfYPG!!%SN!j-cF!!Qe\rIAe*89%PIAcP94&"6Ef0VCA3!!hG`Eh0dAh0PE'9MG&pI0P0[BfYPG%C9Be9M9@-\r!!Qa`FQ9IFf9XC@0dAemf8fpMDf9d4P9M9@09B`!"3QPcBA4dH9pI0P0[BfYPG%C\rf!!4pCR4bG@jMBA4PAemf8fpMDf9d4Q`!!@"XFf9PDepI0P0[BfYPG%CXD3!&,fC\rcG'&dAemf8fpMDf9d4P!dFh4KG!!"5h0PG(0[BfY[F(4IAcC6Ef0VCA4'D@P3GQN\r!!XKRCA4cEf0VEh"dAemf8fpMDf9d4QPT8(C3D3!#2AGbDA4PAemf8fpMDf9d4P"\rfD3!"TR*PB@4IAcC6Ef0VCA4'8(CT!!5@B@0MCA"dAemf8fpMDf9d4P"f8'N!!FK\rXDA0dC@jIAcC6Ef0VCA4'D3!!KA0SGA4NEhGZAema-%P14946Ef0VCA4'D3!!kQP\r[Bh4XAema-%P14946Ef0VCA4'9@P3GJ!(8@CMER4XAema-%P14946Ef0VCA4'9@P\rT!!C9Cf9dF'9PFQjKE@9IAc%`58j&9&0[BfYPG%C3GP"T!!5aFf9XC@0dAemj984\r38fpMDf9d4P"9Be"9Be"9B`!#PR0PEQ4dEepI199%8&0[BfYPG%C3GQPT8(CT!!8\rfFQ9MGQCbEfeIAcP94&"6Ef0VCA4'8(CTD9"f8'N!"hTMEfjZC@0dAemj98438fp\rMDf9d4P"fD3!%[@GPG(0[BfYZB@ePAemj98438fpMDf9d4P"f8'N!",eLD@jNAem\rj98438fpMDf9d4P"fD3!(cN&fB@PXB@*XC9pI199%8&0[BfYPG%Cf!!,AAepNG&p\rI199%8&0[BfYPG%Cf!!0q9%p$!!IV8Q9KC%&SC@&NAemj98438fpMDf9d4RB!"2"\r'E(9cD&*PB@4"D'9KC&pI199%8&0[BfYPG%Cf!!G[6Q9h8h4bC@&YAemj98438fp\rMDf9d4RB!!`K(CA433PpI199%8&0[BfYPG%Cf!!0$AepMG&pI199%8&0[BfYPG%C\r9E!!#hepIBh4IAcP94&"6Ef0VCA4'GJ!!8%pA8J#3"P(X!!"5@!!!!0J!N!STJ!!\r!!R8!!!44!!!!+!#33%9R!!"&D3#3"3&&E`8%!!!!"!!!!!5!!*!(rj!%4@i3!3!\r!!!B!!!!"J!#3#!3%-%9V!!3!!!!(!!!!I)!!N!Gm#!+QN!!"!!L8)Im`N!"K!1J\riB3#!J)%!k%J!!!&J!!!!1'%!1$L"!)!iSJ!!5!!!!@!!!!#!BJ!!U!-!!#`!!!"\r"JJ!3J')!!+KM!!")!!!JU!%!J)"L!!#`!`!!J!%!JS"L!!#3!!-!!$KJ!!#!!3$\rB1#%!d(`)!kC1J!!J4A8!N!8)!!!!'%9c%!#3"!B!!!!S4A8!N!8*!!!!,%9d!`#\r3"!)!!!!d4A3$!*!%!J!!!%4&G!-!N!3$!!!!9%9d!`#3"!3!!!"J4@i-"!!!!!S\r!!!!-J!#3#i!!!(`!N!4&G`#3"3F!N!4&DJ!%!!!!#`!!!(#!!*!(I!J#TT2Krrb\r3!!%!#*3Krd#3!'%!f*!!J3$F1!%!1*!!!3#+1'%!H%J!!!&J!!!!1q-!!(rJ"c9\r"JJ!-1(m!!%J!!##S!3#BJ'%!f,!$!!#!!3#SJ'%!h*!!!`!!1'!!!)!"!-Ji)3$\r!I!J$TS2Krra1J!!J4A8!N!8-!!!!*%9Z$!3!!!!0!!!!$)!!N!Z!!!"`#!!!!%9\rh!*!&#`#3"%9V!!3!!!!1!!!!G)!!N!Gm#!+QNq(rr*!!!3!)P#(r`$[M!!!i!!!\r!Q!-!"S"L!!#!!`!!,!$rrd'#!#5!BJ!!U!-!!,!I!!#!BJ!!J!-!!*!!(`!#1'!\r!!%J!!"JiI`!!1*m!!NJ!!!'!JJ!!X'3!!)!"!%Ji)3"!I!J$TS2Krra1J!!J4A3\r$!*!%"!!!!"a&G!-!N!3$!!!!,%9d!`#3"!3!!!!i4A8!N!8,!!!!9%9d!`#3"!)\r!!!"B4@i-"!!!!!m!!!!-J!#3#i!!!(3)!!!!4AF!N!81!*!%4@X!"!!!!"!!!!#\rSJ!#3"h`)!UD6iIrmNm(rq*1Krr53!!%!#*3Krf!li`!!1k3!!)2#!!#)!`!'+!!\r!!%##!!arS!Fe3)%!2$JI!!D3!!%!5V1K!&3iB3!i5!!!!@!!!!#`IJ!!I'!(08'\r#!!bSIJ!!5!!!,+J"!%k`(`!!5!!!&$J!!!#`(J!!1!!!!,!I!!!i!!!"N!!I!!+\rSIJ!!J!%!U$JK!+"m#!1QJq(rr)2"rrL$SIrd6S!!)%9d!`#3"!)!!!!J4A8!N!8\r4!!!!5%9Z$!3!!!!5!!!!$)!!N!Z!!!#S'!!!!%9h!*!&%!#3"%9V!!3!!!!6!!!\r!+)!!N!Fi!!+DX!-!!$J!!!#3!!-!!MJ!!!#B!`!'1!!!!)##!!#`"!!!6S!!)%9\rd!`#3"!)!!!!F4@X!"!!!!"3!!!!SJ!#3"cL!!!#!!`!#,!!!!%##!"5S!`!!,!!\r#QN##!!JiJ!!"1'3!!%k!!#"&D`!%!!!!&3!!!%b!!*!(I!J#TT2Krrb3!!%!#*3\rKrh!li`!!5!!!!AaJ"c9!JJ!81'%!1$LI!!")!!!"B!!!!)"L!!#SB`!!J!%!Q$J\rK!*!!I!J$TS2Krra1J!!J4A8!N!81!!!!&%9e!*!&&J!!!#K&G!-!N!3#!!!!-%9\rZ$!3!!!!A!!!!$)!!N!Z!!!"-#!!!!%9h!*!&&3#3"%9V!!3!!!!)!!!!I)!!N!G\rm#!+QNq(rr*2"rrL3!!%!#*3Krm!l``!!1q3!!+J%!!#`!`!!J!3!!T!!!`!#L!3\r!"LJ!!%"!J!!B1(i!"MLI!!C)!!!"B!!!!%J!!"JiIJ!'1*m!"MLJ!%")!!!"B!!\r!!$Kq!!#!!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G3#3"4J!!!"!4A8!N!8C!!!\r!@%9Z$!3!!!!D!!!!$)!!N!Z!!!"m%!!!!%9h!*!&#!#3"%9V!!3!!!!E!!!!V)!\r!N!Gm#!+QNq(rr*2"rrL3!!%!#*3Krm!li`!!1m3!!*LK!'1S"!!!X!-!!)!%!!+\r3!!-!!SJ%!!BS!!"!3)!!'$Kr!!BiRJ!'5!!!!@!!!!")!!!B1(m!"MLH!!BiS!"\r!5!!!!@!!!!#)!3"M+!!!!%##!#5!BJ!!L!-!!#J!!!""JJ!81(m!!$L!!!&)!!!\r"B!!!!$Kr!!#!!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G3#3"4J!!!"%4A8!N!8\rC!!!!A%9d!`#3""`!!!"`4A8!N!8G!!!!L%9Z$!3!!!!H!!!!$)!!N!Z!!!#X%!!\r!!%9h!*!&'`#3"%9V!!3!!!!I!!!"!)!!N!Gm#!+Q[f(rl*!!!3!)P#(rX$[M!!!\rlC!!!1i8!!$['!!#Bi3"lJ')!!)J$!!!S!!!!3B)!0$Kl!!!iR!!!1,i!!$MI!!"\r)!!!"B!!!!$ZM!!"rS!Fe3B)!-(qJ"c3X!2r93B)!*,0r!!#6R`!#1(m!"MLH!!#\r)[J!!1+8!!8J!!!&J!!!!L!%!HbJ!!!"!JJ!NJ')!!)J$!!!S!!!!3B)!&$Kr!!!\riJ!!"5!!!!@!!!!!iI`!'1*i!!$LJ!!!i`!!"5!!!!@!!!!"8B!Br3B)!($Kr!!B\riRJ!!L,i!!$LP!!&)!!!"B!!!!$Kr!!#!!3"B1#%!8(`)!kDlBIrX6S!!)%9d!`#\r3"#!!!!!N4A8!N!8K!!!!4%9e!*!&'3!!!(a&G!-!N!3F!!!!N!"&G3#3"4d!!!#\rS4A8!N!8L!!!!`%9e!*!&'3!!!1"&EJ`%!!!!)`!!!!b!!*!,J!!"!#J!!!"&G`#\r3"4m!N!4&D`!%!!!!*!!!!9b!!*!(I!J#TT2Krrb6`IriNk(rp*1"rr#3!!%!#*3\rKri!li`!!1i3!!$[&!!#B`3#RJ')!!)J$!!!S!!!!3B)!0$Km!!!iJ!!!1,i!!$M\rI!!")!!!"B!!!!$ZM!!"rS!Fe3B)!H(qJ"c3X!2r93B)!E$J!!!#3!!%!5V1"!%i\ri!!!!X!%!8MJ!!!#3!!%!9$KK!$K)!!!"B!!!!)##!!#`C!!!I'!(08'#!!`iI`!\r!5!!!P+J"!&L`(`!!J!%!D*!!(`!#1(m!"MLH!!#)[J!!1+8!!8J!!!&J!!!!L!%\r!TbJ!!!"!JJ!NJ')!!)J$!!!S!!!!3B)!&$Kr!!!iJ!!"5!!!!@!!!!!iI`!'1*i\r!!$LJ!!!i`!!"5!!!!@!!!!"8B!Br3B)!($Kr!!BiRJ!!L,i!!$LP!!&)!!!"B!!\r!!$Kr!!#!!3#)1#%!J(`)!kD$iIrmJm(rq)1Krr5$JIr`6S!!)%9d!`#3"#!!!!!\rX4A8!N!8K!!!!6%9e!*!&*3!!!)a&G!-!N!3#!!!!P%9e!*!&'3!!!-a&G!-!N!3\rF!!!!i%9e!*!&(3!!!2K&G3#3"5)!!!%34A8!N!8C!!!"-%9Z$!3!!!!Q!!!!$)!\r!N!Z!!!&F)!!!!%9h!*!&*!#3"%9Z"3%!!!!T!!!!#B!!N!F)G'e`-*!'!$&&EJ8\r"!!!!+J!!!!D!!*!(*6!eE'3!!!"&D`!%!!!!+`!!!8#!!*!(I!J#TVpKrqb3!!%\r!#*3Krf!li`!!1k3!!$YP!!!lKJ!!Jm)!!$`GUl-S!&"'3))!'#`F!!""JJ!3Xhm\r!!*1I!!*)!!"31(X!!$`GUl-S!&"'3))!%$b!G'8iK'e`5!!!#$LG!!!iS!!"10m\r!!$Mr!!*)!!!"B!!!!)##!!#`C!!!I'!(08'#!!`iI`!!5!!!S$`GUl-S!&"'3))\r!I)J#!!"m!!Ge3))!&$J!rrq3!!)!!$J!!!'B!J!!1(m!"S##!!")!!!"B!!!!)"\rL!!!iJ`!"2'!!!MKMKU"m""[@I!!CeR`!)!!)!!$Kr!!SiRJ!!J+)!!%J!!!&\rJ!!!!1(m!!%J!!!&J!!!!9'!'2d##rla)!!!B1'%!1$LI!!!iS!!"5!!!!@!!!!!\riI`!!J!%!U$JK!+"m#!1QZf(rl%k!!#"&G!-!N!3U!!!!)%9e!*!&,!!!!("&G!-\r!N!3#!!!!H%9c%!#3"#J!!!#F4A-3!*!%*`!!!+a&Fa!!N!3S!!!!Y%9d!`#3"#N\r!!!#m4A8!N!8B!!!!`%9c%!#3"#F!!!$)4A-3!*!%*`!!!14&Fa!!N!3R!!!!m%9\re!*!&,3!!!24&G3#3"5i!!!%!4A8!N!8[!!!")%9Z$!3!!!!`!!!!$)!!N!Z!!!&\r!+!!!!%9h!*!&+`#3"%9V!!3!!!!a!!!!I)!!N!Gm#!+QNq(rr*!!!3!)P#(rJ$[\rM!!#`J3#H1"m!"T!!!3"+U!%!RV!"!&!i!!!!X!%!9$KK!$K)!!!"B!!!!)##!!#\r`C!!!I'!(08'#!!`iI`!!5!!!'+J"!'b`(`!!J!%!FT!!(`!#1(m!!)!"!)Ji)3#\r!I!J$TS2Krra1J!!J4A8!N!8b!!!!0%9d!`#3"!)!!!!m4@i-"!!!!$-!!!!-J!#\r3#i!!!(`)!!!!4AF!N!8a!*!%4@X!"!!!!$3!!!$8J!#3"h`)!UD6iIrmN!!"!!L\r8)Ip`1q-!!)"L!!#)!`!!+!!!!%'#!*3iS3!`1*rrq$J!!!Km#31QK'3!#)!%!!5\r8C3!)N!!&!!4#!2r`J'3!#+!%!!b3!'8!#,!&!!bSB3!iJ)%!1MLK!$iih`!!5!!\r!!@!!!!#!JJ!!X'3!!$KK!$iiR`!'1+!!!$M!!!&)!!!"B!!!!&4J"Mp"JJ!X1(m\r!"ML"!$k)S3!q1+8!!8J!!!&J!!!!5!!!%$J!!!#!BJ!!X!-!!)!"!*Ji)3#3!(`\r)!kD$iIrm6S!!)%9d!`#3"#!!!!!84A8!N!8K!!!!D%9d!`#3"!)!!!"`4A8!N!8\rL!!!!L%9e!*!&'3!!!+K&G!-!N!3#!!!!Z%9Z$!3!!!!e!!!!$)!!N!Z!!!$8#!!\r!!%9h!*!&0!#3"%9U!!3!!!!h!!!!I)!!N!Gm#!+QNq(rr*2"rrL3!!%!#*3Krm!\rl``!!1q3!!*LK!'1)!3"M+!!!!%'#!"Ji!!!kJ(i!!$KMrrq3!(i!!*J$!!#)I`!\r!J"i!!(`$!!"i!!)"q!!!iR`!"L,m!!%J!!!&J!!!!J!%!5$JK!%"m#!1QJq(\rrr)2"rrK1J!!J4A8!N!8i!!!!A%9Z$!3!!!!j!!!!$)!!N!Z!!!"m%!!!!%9h!*!\r&0`#3"%9Z%!%!!!!k!!!!!B!!N!LY,QP&D`!%!!!!1`!!!1b!!*!(I!J#TT2Krrb\r6`IriNk(rp*1"rr#3!!%!#*3Krl!l``!!Jq)!!)1#!!#!BJ!!1!-"rj!!!3!iJk)\r!!$J!!!#!B3!iQ!-!!$KK!$JiRJ!'J,i!!MJ!!!&m"3"3I!!!0&3&fAj)!!!"Nlm\r!%S!H!!+3!"m!C%J!!%bS(J!!X"m!&MJ!rrq`(`!FJ"m!C*!!(`!`1(m!!%J!!!&\rJ!!!!X(`!!(aJ"c9"JJ!-1')!!%J!!#3iB3!i1*d!!$LJ!!&)!!!"J"m!C#`!!!&\r!J[q`J'%!1)!"!&Ji)3"3I!J$TS2Krrb$`IriJk(rp)1"rr"1J!!J4A3$!*!%"3!\r!!#"&G!-!N!3#!!!!*%9d!`#3"$B!!!!S4A3$!*!%0J!!!$4&G3#3"6F!!!"J4A8\r!N!8m!!!!N!"&Fa!!N!3k!!!!T%9e!*!&0`!!!,K&EJ`%!!!!23!!!!b!!*!,J!!\r!l#!!!!"&G`#3"6X!N!4&D`!%!!!!2J!!!K5!!*!(I!J#TVm"rq#3!!%!#*3Krc!\rl!`!!Jf)!!)1L!!!i'`(rN!!"!+3lf`!!1!!!!)"K!+5B!`!!1(J!!$L"!$JiS!!\r!5!!!!@!!!!#`I3!!I'!(08'#!!`iB!!!5!!"U)"L!!#)!`!!+!!!!%'#!#`iB!!\r!L!%!9P3!"[G!JJ!8S!%!B&3!"#&"JJ!)1'!!!94J"Mp!JJ!81!$r2l!G!!!iB!!\r!5!!"B%J!!!&J!!!!1b-!!$Ki!!!iJ!!"5!!!!@!!!!!l3`!!Id!(0#`!rrp!JJ!\rB5!!!!@!!!!#`I3!!1i!!!%J!!%JmB'&X1)!!!$KMDA0)!!!"B!!!!(am'hP"JJ!\r81(`!!%J!!!&J!!!!5!!!%%J!!!&J!!!!X(d!!$Kk!!")!!!"B!!!!$Kj!!")!!!\r"B!!!!#JF!!"!JJ!-1'!!!%J!!-!li!!!5!!!1)JE!!"m!!Ge3B)!6$KK!+3iRJ!\r!Iq8(0$J!!!"m!!FdI+8!8$!&rrpmS#N35!!!!6[r!!%iI!!!1*m!!$Lq!!")!!!\r"B!!!!,"p!!"mB!Fe3B,rX+JG!!!X!!!!3))!0$Km!!!iJ2rr1,i!!%J!!!&J!!!\r!X(d!!(aJ"c9!JJ!81'%!T$LH!!!iS!!"5!!!!6Km!!")!!!"B!!!!+JG!!!X!!!\r!3B)!$$KJ!!")!!!)J'%!T)!"!0Ji)3$3I!J$TVX"rq"1J!!J4A3$!*!%0J!!!"4\r&G!-!N!3#!!!!'%9e!*!&2`!!!%"&G!-!N!3F!!!!A%9e!*!&3!!!!+4&G3#3"8%\r!!!#i4A8!N!9#!!!!d%9e!*!&3`!!!2"&G3#3"83!!!%%4A8!N!9#!!!"%%9e!*!\r&43!!!5"&G3#3"8B!!!%X4A8!N!8h!!!"H%9e!*!&4`!!!Ba&G3#3"8F!!!'i4A8\r!N!8h!!!"f%9e!*!&5!!!!H"&EJ`%!!!!53!!!!b!!*!,J!!#&%!!!!"&G`#3"6i\r!N!4&D`!%!!!!5J!!!&b!!*!(I!J#TT2Krrb3!!%!#*3Krl!li`!!1'%!2$L"!$K\r)!!!"I'!(08'#!"!iI`!!5!!!!8J!!"JiI`!!U)%!2)#K!$K)!!!"B!!!!)!"!&J\ri)3"3I!J$TS2Krra1J!!J4A8!N!8,!!!!(%9e!*!&1`!!!#a&G3#3"8X!!!"!4@i\r-"!!!!%`!!!!-J!#3#i!!!&`)!!!!4AF!N!9+!*!%4@X!"!!!!%d!!!#FJ!#3"h`\r)!UD6iIrmNm(rq*!!!3!)P#(r-$[$!!#3!)%!l)2L!!!iB3#!J)%!l$LJ!!")!!!\r"U"m!!#`!!!""JJ!31(i!!%J!!!&)!!"!1'%!1$L"!)")!!!"B!!!!+JI!!!X!!!\r!3B)!%$Kq!!")!!!"5!!!'$Kq!!#SJ3#!J+%!JNJ!!!&J!!!!J!%!f$JK!0"m#!1\rQJq(rr)2"rrK1J!!J4A3$!*!%!J!!!"a&G3#3"4X!!!!X4A8!N!8l!!!!3%9e!*!\r&6J!!!&"&G3#3"6X!!!"S4A8!N!9,!!!!I%9Z$!3!!!"2!!!!$)!!N!Z!!!#F%!!\r!!%9h!*!&63#3"%9V!!3!!!",!!!#')!!N!Gm#!+Q[b(rj*!!!3!)P#(rS$Z$!!!\rlC!!!1d8!!)2L!!#$SJ!!Jb)!!)!$!!)X!!!"3))!@+Km!!"rB!FdI!-!!%##!"3\rX'J!#3))!$$[G!!")!!!J1(d!!$LF!!H)[!!'5!!!!@!!!!#)(!!'Ipd#&$J!!$U\rB(J!!1!!!!*JH!!%iI3!!5!!"J*1r!"+cI`!@1!$rrl!I!"b6A`!`1(m!!%J!!!&\rJ!!!!X(N!!(aJ"c9"JJ!-1')!!%J!!8arB`FdU"`!!(`$!!"!JJ"3J(m!C)!F!!*\rm!`!!3))!3$Kp!!!iR!!'L"d!!(`&"h3iT3!"5!!!!@!!!!!X!`!!3))!($J!!$U\rB(3!!1!!!!*JG!!%iI3!!5!!!m$J!!!#B(3(rL(`!"MJG!Ipr``"31(i!!$LF!!H\r)[!!'5!!!!@!!!!#6[`!5J"`!!T!!(`"N1!!!1T`HrrprB`FdU"`!!(`$!!"!JJ!\riJ"m!C(`D!!"!JJ!X1(i!!6L!!$T)!!!"B!!!!#J$!!""JJ!-1(i!!%J!!(JiIJ!\r"5!!!F+JF!!#`(`!@1!$rrl!I!"b!(`"NN!!I!$!iI`!!5!!!!@!!!!#`H3!!I'!\r(08'#!!`iBJ!!5!!!1)JG!!"m!!GdIm$`8$Kq!!!iR3!"L,d!!(bP"h4)!!!"B!!\r!!)!I!$!X!!!#3),r8$Kq!!#!!3"S1#%!B(`)!kDl)IrN6S!!)%9d!`#3"!8!!!!\rF4A3$!*!%0J!!!#"&G!-!N!3#!!!!*%9e!*!&'3!!!'"&G3#3"6`!!!#J4A-3!*!\r%1J!!!,4&G3#3"9!!!!$`4A8!N!8C!!!"1%9e!*!&83!!!AK&G3#3"6`!!!'d4A-\r3!*!%1J!!!FK&G3#3"6J!!!(X4@i-"!!!!&)!!!!-J!#3#i!!!KJi!!!!4AF!N!9\r,!*!%4@i&!3!!!&-!!!!-J!#3"a%P-$4S@#8`1&Jk!%9V!!3!!!"8!!!!G)!!N!G\rm#!+QNq(rr*2"rrL3!!%!#*3Krm!li`!!Jm)!!$Kq!!#!JJ!!U,m!!)$I!!*)!!!\r"B!!!!$Kq!!iiR`!(L,m!"NJ!!!&J!!!!1)!!!)JI!!CmB2)8Q)-!$MKq!!#!!3"\r)1#%!3(`)!kD$iIrmJm(rq%k!!#"&G!-!N!3f!!!!'%9d!`#3"&-!!!!J4A8!N!8\rY!!!!,%9e!*!&'3!!!%"&EJ`%!!!!93!!!!b!!*!,J!!!G"!!!!"&G`#3"93!N!4\r&D`!%!!!!2`!!!)L!!*!(I!J#TT2Krrb6`IriN!!"!!L8)Ir!1m-!!$[N!!#BS3"\rMU!-!!,!%!"D!!`!#N!!%!$!i(J!'N!!%!"+)!3"M+!!!!%'#!!`i!2rr5!!!#$J\r!!!#`(`!F1!!!!*JI!"miI`!!5!!!!@!!!!#!JJ!!X'3!!)!"!%Ji)3"!I!J$TS2\rKrrb$`Iri6S!!)%9e!*!&2!!!!'"&G!-!N!3#!!!!D%9Z$!3!!!"@!!!!$)!!N!Z\r!!!#)%!!!!%9h!*!&2`#3"%9V!!3!!!!@!!!!I)!!N!Gm#!+QNq(rr*!!!3!)P#(\rr`*!!B3"B1q3!!)!%!!)X!!!"3))!%$Kr!!")!!!"5!!!-$Kr!!#!JJ!!1+!!!8J\r!!!'!BJ!!U!-!!#`!!!"!JJ!3J')!!)!$!'53!"m!!S"K!&JiR`!!5!!!!B!"!%J\ri)3"!I!J$TS2Krra1J!!J4A8!N!86!!!!+%9d!`#3"!8!!!!d4A8!N!8r!!!!2%9\rd!`#3"!)!!!"!4A3$!*!%"3!!!&"&G3#3"3J!!!"N4@i-"!!!!&F!!!!-J!#3#i!\r!!(`)!!!!4AF!N!8@!*!%4@X!"!!!!%i!!!%%J!#3"h`)!UD6iIrmNm(rq*!!!3!\r)P#(r`*!!B3"B1m3!!)2L!!!iIJ!!5!!!!94J"Mp"JJ!J1!!!!,!H!!!i!!!"N!!\rH!!)i!!!!Q"i!"NJ!!*JiIJ!!1*m!!$LJ!!")!!!"I'!(08##!)!iB!!!L"m!(P3\r!"[G!JJ!8S"m!+&3!"#&"JJ!)1'!!!94J"Mp"JJ!d1(i!!$LI!!")!!!"B!!!!(a\rJ"c9!JJ"!1(i!!$LI!!!iS!!!5!!!!AaJ"c9!JJ!SL"m!(P3!"[G!JJ!81!$XAi"\rL!!#`!`!!5!!!$)!I!$#3!"i!!S"K!&JiRJ!!5!!!!B!"!%Ji)3"!I!J$TS2Krrb\r$`Iri6S!!)%9d!`#3"!8!!!!F4A8!N!88!!!!*%9e!*!&2`!!!&K&G3#3"9J!!!#\r84A8!N!8r!!!!X%9d!`#3"!)!!!$-4A8!N!8)!!!!k%9Z$!3!!!"C!!!!$)!!N!Z\r!!!%%%!!!!%9h!*!&6J#3"%9V!!3!!!![!!!!H)!!N!Gm#!+QNq(rr*2"rrL6SIr\rdN!!"!!L8)Ip`N!"K!+Jla!!!1k8!!)2L!!")!!!F1'%!1$LH!!")!!!"U"m!!#`\r!!!"!JJ!3,"d!!$Zprrp"JIrJJ'%!U$LH!!")!!!"J!%!Q$JK!*!!I!J$TS2Krrb\r$`IriJk(rp%k!!#"&G!-!N!3#!!!!*%9e!*!&&J!!!$4&G3#3"3J!!!"B4@i-"!!\r!!&S!!!!-J!#3#i!!!(JB!!!!4AF!N!8[!*!%4@X!"!!!!&X!!!"%J!#3"h`)!UD\r3!!%!#*3Kri#3!'%!Q*!!J3#FN!#K!+!iB3!iJ)%!R%J!!!'!B3#B1)%!1)#K!+"\r)!!!"J!%!L$JK!)"m#!1Q6S!!)%9e!*!&#!!!!#"&G3#3"5m!!!!`4@i-"!!!!&`\r!!!!-J!#3#i!!!%3!N!4&G`#3"9X!N!4&D`!%!!!!@!!!!)#!!*!(I!J#TT2Krrb\r3!!%!#*3Krl#3!'%!D$[N!!#!BJ!!L!-!!#J!!!""JJ!mL"m!(P3!"[G!JJ!`S"m\r!+&3!"#&"JJ!NJ'%!D$L!!!%iS3!j1-%!1%J!!!&J!!!!I'-(0%J!!!JiB!!!J))\r!!,"N!!#!!3"B1#%!8(`)!kD$iIrm6S!!)%9d!`#3""`!!!!B4A8!N!9G!!!!8%9\rd!`#3"!)!!!"N4@i-"!!!!&i!!!!-J!#3#i!!!)!)!!!!4AF!N!9B!*!%4@X!"!!\r!!"d!!!"mJ!#3"h`)!UD6iIrmNm(rq*!!!3!)P#(r`$[$!!#BJ3"IJq)!!)##!!!\riS!!!5!!!!DJI!!!X!!!!3B)!*)J"!&mS!!!!3B)!%$KJ!!#`I`!!5!!!'+Kr!!"\r)!!!31(i!!)##!!")!!!"J!%!5$JK!%"m#!1QJq(rr)2"rrK1J!!J4A3$!*!%!J!\r!!"a&G!-!N!3&!!!!)%9e!*!&2`!!!#K&G!-!N!3&!!!!A%9e!*!&@!!!!'"&EJ`\r%!!!!A`!!!!b!!*!,J!!!I"!!!!"&G`#3"4d!N!4&D`!%!!!!,J!!!&5!!*!(I!J\r#TT2Krrb3!!%!#*3Krm#3!'%!@)"K!&L!JJ!!1+!!!%J!!!&mB!FdI!!!0&3IfAi\ri!!!!J')!!,!$!!!iI`!!J!%!5$JK!%"m#!1QJq(rr%k!!#"&G!-!N!3&!!!!'%9\re!*!&2`!!!#"&G!-!N!3#!!!!0%9Z$!3!!!"J!!!!$)!!N!Z!!!"8#!!!!%9h!*!\r&,J#3"%9V!!3!!!"K!!!!L)!!N!Gm#!+QNq(rr*2"rrL6SIrdN!!"!!L8)Iq`1m-\r!!$[N!!!lS!!!U'-!!+J%!!"m!`!!3))!1)"q!!+!(`!#I!-!!%##!#JiIJ!'1*m\r!"MLJ!!!i`!!"5!!!!@!!!!"8B!Br3B)!#$ZJ!!%iI3!!J!%!@$JK!&"m#!1QJq(\rrr)2"rrL$SIrd6S!!)%9e!*!&)J!!!&4&EJ`%!!!!BJ!!!!b!!*!,J!!!L"J!!!"\r&G`#3"@%!N!4&D`!%!!!!B`!!!)L!!*!(I!J#TT2Krrb6`IriNk(rp*!!!3!)P#(\rrX$[$!!!lj!!!1k!!!+KM!!#S"!!!I!-!!%##!$5!IJ!#J"m!!R`$!!"!JJ!N1(i\r!"MLI!!BiS!!!1-!!!8J!!!&J!!!!9'!'2d##!!JlS!!"1(d!!)!"!&Ji)3"3I!J\r$TS2Krrb$`IriJk(rp%k!!#"&G3#3"5)!!!"84@i-"!!!!'3!!!!-J!#3#i!!!)J\rB!!!!4AF!N!9M!*!%4@X!"!!!!'8!!!#3!)!!N!Gm#!+QNq(rr*2"rrL3!!%!#*3\rKrZ!l``!!N!#"!6b$iJ!!1'%!J)#"!6`iS!!"5!!!!6KK!-JiJ3#!5!!!!8J!!#`\riB3$)1*i!!%J!!!&8B!Br3B)!$$KJ!!&)!!!J1'%!1$L"!-K)!!!"U"m!!#`!!!"\r"J[r31'!!!)!"!5Ji)3%JI!J$TS2Krrb$`Iri6S!!)%9d!`#3"!)!!!!F4A8!N!9\rE!!!!,%9e!*!&#!!!!$K&G3#3"@%!!!")4A8!N!8@!!!!C%9Z$!3!!!"Q!!!!$)!\r!N!Z!!!#3!"!!!!"&G`#3"@8!N!4&D`!%!!!!C`!!!+b!!*!(I!J#TT2Krrb6`Ir\riN!!"!!L8)Ip`N!"K!+Jlj!!!N!#K!,!laJ!!,"i!2d#"!"3i!2rEJ')!!,!$!!"\r)!!"31'%!1$LI!!")!!!"J')!!+J$!!!X!!!!3))!0$Kr!!H!J3#`Qpm!"PI&"Mj\r)!!!"B!!!!)!I!!)X!!!"3))!%$Kr!!!iJ2rr5!!!!B"K!+JiR`!!5!!!!B!"!*J\ri)3#3!(`)!kD$iIrmJm(rq%k!!#"&G!-!N!3#!!!!-%9e!*!&6J!!!%4&G!-!N!3\r#!!!!5%9e!*!&'3!!!'K&G3#3"4!!!!#%4A8!N!8)!!!!N!"&EJ`%!!!!D!!!!!b\r!!*!,J!!!V"!!!!"&G`#3"@F!N!4&D`!%!!!!#3!!!%5!!*!(I!J#TT2Krrb3!!%\r!#*3Krm#3!'%!@*!!J3"F1q8!!)"K!&L!J3"F1,m!!BMI!!")!!!"J!%!5$JK!%"\rm#!1QJq(rr%k!!#"&G3#3"@F!!!!X4@i-"!!!!'N!!!!-J!#3#i!!!%3)!!!!4AF\r!N!8*!*!%4@X!"!!!!'S!!!"%J!#3"h`)!UD3!!%!#*3Kri#3!'%!Q*!!J3#FN!#\rK!+!iB3!iJ)%!R%J!!!'!B3#B1)%!1)#K!+")!!!"J!%!L$JK!)"m#!1Q6S!!)%9\re!*!&#!!!!#"&G3#3"3N!!!!`4@i-"!!!!'X!!!!-J!#3#i!!!%3!N!4&G`#3"@S\r!N!4&D`!%!!!!E!!!!&#!!*!(I!J#TT2Krrb3!!%!#*3Krm#3!'%!@*!!J3"F1q8\r!!$Kr!!")!!!"B!!!!$M$!!#!B3"BJ)%!A$Lr!!")!!!"J!%!5$JK!%"m#!1QJq(\rrr%k!!#"&G3#3"@d!!!!J4A8!N!9R!!!!1%9Z$!3!!!"Z!!!!$)!!N!Z!!!"3#!!\r!!%9h!*!&E!#3"%9V!!3!!!"[!!!!4)!!N!Gm#!+QN!!"!!L8)Iq!N!"K!*L3!)%\r!R*!!S3#J1'%!1)#"!*a)!!!"J'%!Q$L"!$L!S3#J5!!!!B!"!)Ji)3#!I!J$TNk\r!!#"&G3#3"3J!!!!J4A8!N!9X!!!!-%9Z$!3!!!"`!!!!$)!!N!Z!!!"%!*!%4AF\r!N!9[!*!%4@X!"!!!!(%!!!#JJ!#3"h`)!UD6iIrmNm(rq*!!!3!)P#(rF*!!B3#\rSN!#"!+`la3!!Jq)!!$KK!$L!J3#X5!!!!B!"!$SX!!!"3))!&$KK!$JiRJ!!5!!\r!!8J!!$5S!3!iX"m!&S!"!$U3!"m!-$J"!$k3!"m!%V2I!"`iI`!!5!!!!@!!!!#\r!JJ!!X'3!!)"K!+JiJ3!i5!!!!B!"!*Ji)3#3!(`)!kD$iIrmJm(rq%k!!#"&G!-\r!N!3&!!!!)%9e!*!&#!!!!#a&G3#3"4!!!!"%4A8!N!8m!!!!E%9d!`#3"!)!!!"\rd4A8!N!8)!!!!K%9Z$!3!!!"b!!!!$)!!N!Z!!!#J%!!!!%9h!*!&F3#3"%9U!!3\r!!!"c!!!!d)!!N!Fi!!!!N!!&!!")!!#dJ!8!!&3!)$D3!!8!!)J$!!"m!!Gd,!!\r!4d#!!#3X!!!k3)!!%#`!!$"!J!!S5!!!H#`!!%&!J!"85!!!E#`!!'G!J!"N,!!\r!B8#!!#4)!!"BJ18!!)J$!!"m"JGd1!Erd(cJ!hL3!!8!!%J!!%5!j3!!L!-!!(`\r'"h3i"[qTI1!$H*!!"3!!5!!!+)$P!!#)!`!!I!B(G$J'rmPmi!0iN!!&!!")!!!\r-1'!!!%k!!#!iB`!",!3!!$L%rrp!J[p)1'!!!8k!!#"&D`!%!!!!G!!!!G#!!*!\r(I!J#TT2Krrb6`IriNk(rp*!!!3!)P#(rB$[$!!!lj!!!Q+%!`i1L!!#)"!!!,!!\r!%6[r!!&"JJ!-1'!!!%J!!AJiI`!!1)!!"$LK!)")!!!"9'!'2d'#!9b!!3#!X"i\r!!$Kr!!3iJ!!)1+%!J%J!!!&8B!Br3B)"2)!"!)#3!"i!!S`I!!`X!!!k3))"+$K\rr!!%iJ!!k5!!!!@!!!!!S!`!!3))"%)JI!!&m!!Ge3))!'$KK!$JiRJ!!5!!!!6K\rJ!!&)!!$d1(m!!8J!!!&J!!!!Q(m!!)"L!!#)!`!!+!!!!%'#!%#SIJ!!J*i!!ML\rr!!!ihJ!!5!!!!@!!!!#`I3!!I'!(08'#!$LS(3!!,!$re8##!#`i!!!!X"d!!%J\r!!#!iIJ!'1*m!!)JI!!"m"3Gd1+8!!8J!!!&J!!!!L!%!`bJ!!!"!JJ!JJ')!!)J\r$!!!S!!!!3B)!%$Kq!!!iJ!!"5!!!!6Kq!!BiR`!!1+!!!$M!!!&)!!!"B!!!!&4\rJ"Mp"JJ!J1(i!"MLI!!#)(`!!I!8(G$LP!!&)!!!"B!!!!$J!!$UB(`!!1'!!!8J\r!!!JiB!!!J!%!U$JK!+"m#!1QJq(rr)2"rrL$SIrd6S!!)%9d!`#3"!)!!!!N4A8\r!N!9c!!!!6%9e!*!&F`!!!'a&G3#3"9%!!!#84A8!N!8@!!!!Z%9e!*!&E3!!!-K\r&G!-!N!3J!!!!e%9e!*!&)3!!!24&G3#3"4N!!!%d4A3$!*!%(!!!!8K&G3#3"4d\r!!!&J4A8!N!8L!!!"G%9e!*!&'3!!!CK&EJ`%!!!!G3!!!!b!!*!,J!!"d"J!!!"\r&G`#3"A3!N!4&D`!%!!!!GJ!!!Y5!!*!(I!J#TVmKrq53!!%!#*3Kra!l``!!1q3\r!!$XP!!#$3J!!Ji)!!%J!!!&8B!Br3B)!$$Kq!!")!!+-1(m!!%J!!!&J!!!!N!"\rK!-L$BJ!!J')!!)J$!!!S!!!!3B)!l$Kq!!")!!!"1(m!!$LE!!")!!!"B!!!!+K\rq!!#!RJ!#1,X!!$MH!!")!!!"B!!!!,"m!!"mB!Fe3B)!*%#!!+`X!2r93B)!#%J\r!!+!i!!!!X"`!!$Kq!!")!!)-9b!'2d##!"b)'J!!+!!!!%'#!"!iIJ!!1)!!!8J\r!!!%iI`!!1)!!1NJ!!!&J!!!!I(dEH8'#!!Jlr3!"1(m!!$LE!!")!!!"B!!!!$K\rq!!BiQ`!!1+!!!$M!!!&)!!!"B!!!!&4J"Mp"JJ!F1(i!"MLE!!#)Z`!!1+8!!8J\r!!!&J!!!!1(i!!%J!!B#)(`!!,!!!1N'#!"`iI`!!1)!!1NJ!!!&J!!!!I(dEH8#\r#!#!iIJ!!5!!!!BJI!!!X!!!k3))!D$[r!!&)!!"JI"rS8#`!!$j!J3!81!$rfl!\rF!!!iIJ!!5!!"*$Kq!!FiR`!!I,rS8$J&!!'B(J!'9!8'2NJ!!!&J!!!!1(i!!$L\r!rrp)!!!"I'!(08'#!!`iIJ!!5!!!k$[p!!'S(!!!,!!!!%'#!+JiIJ!!5!!!d)J\rI!!!X!!!k3))!0$Kq!!!iJ!!"5!!!!6KK!)!iRJ!!5!!!!DJF!!!X!!!!1rm!!8'\r#!'`iIJ!!5!!!P$Kr!!!iJ!!k5!!!!@!!!!"mI4Yj3B)!$$J!!!#B(3!!1'%!1$L\rH!!!i[`!!5!!!!5JG!!""JJ!-1!!!1TJG!!#S(!!!,!!!!%'#!!`iIJ!!5!!!3#J\rG!!""JJ!81rd!!BJI!!"m!!Ge3),rA&FJ"Mp!JJ!FL"S!!#J!!!""JJ!31(i!!$L\r!!!&)!!!"1(i!!)!"!2Ji)3$`I!J$TVXKrq41J!!J4A3$!*!%(!!!!"a&G!-!N!3\r#!!!!)%9e!*!&G!!!!#4&G3#3"@d!!!!m4A3$!*!%0J!!!%K&G!-!N!3J!!!!6%9\re!*!&$J!!!'"&G3#3"AF!!!"X4A8!N!8K!!!!K%9e!*!&(3!!!04&G3#3"AJ!!!$\rJ4A8!N!9h!!!!r%9e!*!&)J!!!44&G3#3"4N!!!%d4A8!N!94!!!"@%9e!*!&&3!\r!!@a&G3#3"4N!!!'i4A8!N!83!!!"b%9e!*!&(3!!!JK&G3#3"4B!!!)84A8!N!9\r4!!!#1%9e!*!&E!!!!Pa&G3#3"4d!!!+i4@i-"!!!!(N!!!!-J!#3#i!!!Y3i!!!\r!4AF!N!9f!*!%4@X!"!!!!(S!!!!iJ!#3"h`)!UD3!!%!#*3Kri#3!'%!Q$KK!$L\r!J3#B1+!!!8J!!!%iB3!i5!!!!B!"!)Ji)3#!I!J$TNk!!#"&G3#3"4X!!!!F4A8\r!N!8l!!!!*%9Z$!3!!!"l!!!!$)!!N!Z!!!!i!*!%4AF!N!9k!*!%4@X!"!!!!(`\r!!!!iJ!#3"h`)!UD3!!%!#*3Kri#3!'%!Q$KK!$L!J3#B1+!!!8J!!!%iB3!i5!!\r!!B!"!)Ji)3#!I!J$TNk!!#"&G3#3"4X!!!!F4A8!N!9+!!!!*%9Z$!3!!!"p!!!\r!$)!!N!Z!!!!i!*!%4AF!N!9m!*!%4@X!"!!!!(i!!!"!J!#3"h`)!UD3!!%!#*3\rKri#3!'%!Q*!!J3#F1'%!1)#"!*JiS!!"5!!!!6KK!$L!J3#F5!!!!B!"!)Ji)3#\r!I!J$TNk!!#"&G3#3"4X!!!!J4A8!N!90!!!!,%9Z$!3!!!"r!!!!$)!!N!Z!!!"\r!!*!%4AF!N!9q!*!%4@X!"!!!!)!!!!!iJ!#3"h`)!UD3!!%!#*3Kri#3!'%!Q$K\rK!$L!J3#B1+!!!8J!!!%iB3!i5!!!!B!"!)Ji)3#!I!J$TNk!!#"&G3#3"4X!!!!\rF4A8!N!98!!!!*%9Z$!3!!!#"!!!!$)!!N!Z!!!!i!*!%4AF!N!@!!*!%4@X!"!!\r!!))!!!"`J!#3"h`)!UD3!!%!#*3Kri#`B3#DN!#"!*`iB3!iU)%!QNJ!!!'!B3#\rF1+2rq$L"!$!i!!!)I!N$TS4N!!L!"!!%P'8!#*!!"3!%3J$rm)"N!!LJ"!!-N!"\rP!!L`"3!-J')!!+KM!!#!!3#)1#%!J(`)!kC1J!!J4A8!N!8a!!!!(%9d!`#3"!)\r!!!"B4@i-"!!!!)-!!!!-J!#3#i!!!(!!N!4&G`#3"B)!N!4&D`!%!!!!K!!!!(b\r!!*!(I!J#TT!!!3!)P#(rJ,"K!*U3!)%!R*!!S3#J1'%!1+L"!*U!S3#F1-!!!%J\r!!!'!B3#J1+2rq$L"!$!i!!!)I!N$TS4N!!L!"!!%P'8!#*!!"3!%3J$rm)"N!!L\rJ"!!-N!"P!!L`"3!-J')!!+KM!!#!!3#)1#%!J(`)!kC1J!!J4A8!N!8N!!!!+%9\rd!`#3"!)!!!"N4@i-"!!!!)8!!!!-J!#3#i!!!(`!N!4&G`#3"B3!N!4&D`!%!!!\r!KJ!!!(5!!*!(I!J#TT!!!3!)P#(rJ*!!B3#BN!#"!*`iB3!iJ)%!Q$LJ!!")!!!\r"J'%!R$LMrrJiJ3!`1!!!#(`*!kD%C!!)J!3!"*4P!!L3!!8!"%)!rr#!C!!)S!3\r!$*!!C3!)X!8!$)"L!!#SB`!!J!%!L$JK!)"m#!1Q6S!!)%9e!*!&GJ!!!#"&G!-\r!N!3#!!!!A%9Z$!3!!!#(!!!!$)!!N!Z!!!"d!*!%4AF!N!@'!*!%4@X!"!!!!)J\r!!!#!J!#3"h`)!UD3!!%!#*3Kri#3!'%!Q,#"!*k3!+%!S*!!`3#N1'%!1)#"!*L\rSS3#HJ-%!S%J!!!'!B3#N1+2rq$L"!$!i!!!)I!N$TS4N!!L!"!!%P'8!#*!!"3!\r%3J$rm)"N!!LJ"!!-N!"P!!L`"3!-J')!!+KM!!#!!3#)1#%!J(`)!kC1J!!J4A8\r!N!8V!!!!,%9d!`#3"!)!!!"S4@i-"!!!!)N!!!!-J!#3#i!!!)!!N!4&G`#3"BJ\r!N!4&D`!%!!!!LJ!!!)#!!*!(I!J#TT2Krrb3!!%!#*3Krc!li`!!1'%!J$LI!!!\riS!!!5!!!!6KK!$JiJ3#!5!!!!6LrrrJiJ3!`1!!!#(`*!kD%C!!)J!3!"*4P!!L\r3!!8!"%)!rr#!C!!)S!3!$*!!C3!)X!8!$)"L!!#SB`!!J!%!f$JK!0"m#!1QJq(\rrr%k!!#"&G3#3"4X!!!!J4A8!N!8@!!!!,%9d!`#3"!)!!!"N4@i-"!!!!)X!!!!\r-J!#3#i!!!)!)!!!!4AF!N!@+!*!%4@X!"!!!!)`!!!#)J!#3"h`)!UD6iIrmN!!\r"!!L8)Im`1q-!!*!!J3$X1'%!J$LI!!!iS!!!5!!!!6KK!$JiJ3#!J+%!l%J!!!%\ri[rri1)%!-$J!!!Km#31QK'3!#)!%!!58C3!)N!!&!!4#!2r`J'3!#+!%!!b3!'8\r!#,!&!!b!BJ!!U'-!!)!"!0Ji)3$3I!J$TS2Krra1J!!J4A8!N!8E!!!!*%9e!*!\r&DJ!!!$4&G!-!N!3#!!!!E%9Z$!3!!!#0!!!!$)!!N!Z!!!#)#!!!!%9h!*!&M!#\r3"%9V!!3!!!#1!!!!I)!!N!Gm#!+QNq(rr*2"rrL6SIrdN!!"!!L8)Ip`1k-!!$[\r%!!!iB3!i1*d!!$LJ!!")!!!"1'%!1$LH!!!iS!!!5!!!!6[M!!"ri!Fe3B)!$$K\rr!!")!!!31"d!"T!!(J!51'!!!)!"!*Ji)3#3!(`)!kD$iIrmJm(rq)1Krr41J!!\rJ4A8!N!8E!!!!,%9e!*!&2`!!!$a&EJ`%!!!!M`!!!!b!!*!,J!!!I"J!!!"&G`#\r3"Bi!N!4&D`!%!!!!N!!!!!#)J!#3"h`)!UD6iIrmN!!"!!L8)Im`1q-!!,#"!1i\riB3#!1*m!!$LJ!!")!!!"1'%!1$L"!)#SS3$Z5!!!!6LrrrJiJ3!`1!!!#(`*!kD\r%C!!)J!3!"*4P!!L3!!8!"%)!rr#!C!!)S!3!$*!!C3!)X!8!$)"L!!#SB`!!J!%\r!f$JK!0"m#!1QJq(rr%k!!#"&G3#3"4X!!!!N4A8!N!9a!!!!0%9d!`#3"!)!!!"\rX4@i-"!!!!*%!!!!-J!#3#i!!!)J)!!!!4AF!N!@3!!#3"%9U!!3!!!#5!!!!B)!\r!N!Gm#!+QNq(rr*!!!3!)P#(rF*!!B3#S1!!!!*!!!3"+1'%!1%J!!!&J!!!!1q-\r!!(rJ"c9"JJ!-1(m!!%J!!"5S!3"1J'%!U,!$!!!iB!!!J!%!Q$JK!*!!I!J$TS2\rKrra1J!!J4A8!N!@6!!!!)%9Z$!3!!!#8!!!!$)!!N!Z!!!"J#!!!!%9h!*!&NJ#\r3"%9V!!3!!!#9!!!&q)!!N!Gm#!+Q[d(rk*!!!3!)P#(lF*!!B35SN!#""+`iB33\rSJ)%%U$LJ!!&)!!!"1'%$i)#""+`iS!!"5!!!!6KK!4!iJ32J1+!!!8J!!!%iB31\rB1)%"%%J!!!'S!33S,!!!!%##!#!iB33S5!!!!6[M!!"ri!Fe3B)!$$Kr!!")!!9\rXU!%$i#`!!!"!JJ!J1'%$i%J!!!%li`!!Iq!(08'#!!`iI`!!5!!&4+KK"#LS!32\rJI!-!!%'#!!`iB2VT5!!&,$KK"#iiJ32Q1+!!!$M!!!&)!!!"B!!!!&4J"Mjm!!!\rd9"lCIS"K"#U!!32LI'-!8$!$rrprS"N31'%$i$L"!RJiS!!!5!!!!AaJ"c4m!!!\rd9"cCIMKK"#JiJ3,N1+!!!%J!!!%li`!!Iq!(08'#!!`iI`!!5!!%Y)J"!`*8!!E\rh3B)!)$KK"#JiJ32J5!!!!94J"Mp"JJ!-1'$rKNJ!")`lB!!!L!%$!P3!"[G!JJ!\r8L!%$!P3!"rp"JJ!)1f!!!9GJ"Mp"JJ!BU'%%+)#""#SiS33Z5!!!!@!!!!"A`!B\rr3))!&&HJ"Mp!JJ!-1q!!!%J!!maAJ!Br3B)!f)J"!TC8!!Eh3B)!'+!"!U`S!!!\r!3B)!$$KJrp&)!!331'%!b$b!9%fSS32JJ-%$iML%8%C)!!!"1+%#+$L$rrJi!!!\r)I!N$TS4N!!L!"!!%P'8!#*!!"3!%3J$rm)"N!!LJ"!!-N!"P!!L`"3!-1d!!!)J\r"!TC8!!Eh3))!&)J"!TC8!!Ir3B)!#$Y!!!&A3!Br3B)!'+KK!q#!J32L1+%$jNJ\r!!!&J!!!!U'%$i)#"!q)iS32Q1-%#0NJ!!!&J!!!!1q-!!(rJ"c9"JJ!-1(m!!%J\r!!eaAS!Br3))!*+KK"#L!J33U1+%%,MM"!qC)!!!"B!!!!$[M!!")!!*X9m!'2d#\r#!#LSB33SJ)%%+MLK"#k!`31D11%$RNJ!!!&J!!!!1q-!!%J!!N!iB3#!U)%%+)#\rK"#Si`32Q11!!!%J!!!%iS30)1)2rq$J!!!Km#31QK'3!#)!%!!58C3!)N!!&!!4\r#!2r`J'3!#+!%!!b3!'8!#,!&!!`iB3035!!!!94J"Mp!JJ"XU'%%+)#""#SiS33\rZ1-%$jNJ!!!&J!!!!1q-!!(rJ"c9!JJ(!U'%%+)#""#SiS32QJ-%$QMMK!jj)!!!\r"B!!!!$[M!!"ri!Fe3B)"Q+KK"#L!J33U1+%$jMM""#j)!!!"B!!!!%J!!A`iB3(\rS2)"86DLK!q#!`32L1)434NJ!!!%iB30@1)%"lSLK!HiiT3!"5!!!!@!!!!")!!"\r-1'%"S$b!9%fSS3(SJ-%"kML%8%C)!!!"1'%$9ML"!DD)S3'Q1+8!!8J!!!&J!!!\r!1'%"lML"!DD)S3'Q1+8!!8J!!!&J!!!!1'%$8%J!!!&8B!Br3),rV$KK!HK)!!!\r"9'!'2d##rjbSB33SJ)%%+MLK"#ii`30@5!!!!@!!!!!li`!!Iq!(08##!,bSB33\rSJ)%%+MLK!eD!`31D11%$RNJ!!!&J!!!!1q-!!(rJ"c9"JJ!JU'%%+)#""#SiS30\r@1-%%,NJ!!!&J!!!!5!!!H+KK!q#!J32L1+%$9MM"!qC)!!!"B!!!!$[M!!"ri!F\re3B)!9$KK!$JiJ33S1+!!!8J!!!%iB3&B1)%!1%J!!!'SB32JJ)%$iMLK!eD!`3&\rD11%"ANJ!!!&J!!!!U'%%+)#""#SiS30@1-%%,NJ!!!&J!!!!9i!'2d'#!&Kri!F\re3B)!2+KK!M#!J3)b1+%#0MM"!qC)!!!"B!!!!&G!"Mp"JJ!`U'%$i)#"!q)iS32\rQ5!!!!@!!!!")!!!BU'%#-)#"!M)iS3)f5!!!!@!!!!"ri!Fe3))!+&I!"Mp!JJ!\rJU'%$i)#"!q)iS32Q1-%$jNJ!!!&J!!!!1q-!!&GJ"Mp"JJ!iIq!(08'#!"bSB33\rSJ)%%+MLK"#j)!!!"B!!!!%J!!"LSB32JJ)%$iMLK!qC)!!!"B!!!!$Kr!!#!!35\rB1#%%N!"m#!1QZd(rk%k!!#"&G3#3"4X!!!!N4A8!N!8E!!!!0%9e!*!&@`!!!%4\r&G3#3"3J!!!"34A8!N!@5!!!!C%9e!*!&NJ!!!)a&G3#3"5)!!!$-4A8!N!8r!!!\r"!%9e!*!&2`!!!4a&G3#3"@8!!!&)4A8!N!@@!!!"N!"&G3#3"5X!!!(X4A8!N!@\r@!!!#@%9e!*!&P`!!!R"&G3#3"CF!!!+N4A8!N!@B!!!#d%9e!*!&(`!!![4&G3#\r3"5i!!!-`4A8!N!@A!!!$6%9e!*!&Q!!!!h4&G3#3"CF!!!1B4A8!N!8V!!!$Z%9\re!*!&'3!!!ma&G3#3"5X!!!2X4A8!N!8C!!!%!%9e!*!&'3!!""K&G3#3"5i!!!3\rN4A8!N!8Z!!!%0%9e!*!&P`!!"&"&G3#3"CJ!!!4i4A8!N!@A!!!%R%9e!*!&P`!\r!",K&G3#3"9X!!!6B4A8!N!8)!!!%j%9e!*!&Q!!!"2a&G3#3"CF!!!884A8!N!@\rA!!!&2%9e!*!&Q3!!"9K&G3#3"CS!!!9`4A8!N!@A!!!&Q%9e!*!&Q3!!"F"&G3#\r3"CN!!!AB4@i-"!!!!*X!!!!-J!#3#i!!"IJ`!!!!4AF!N!@9!*!%4@X!"!!!!*`\r!!!#3!)!!N!Gm#!+QNq(rr*2"rrL3!!%!#*3Krh!l``!!Jq)!!$KK!$JiRJ!!1+!\r!!%J!!!'S(`!!,!!!!%'#!!bSI`!!5!!!2$LqrrJiJ3!`1!!!#(`*!kD%C!!)J!3\r!"*4P!!L3!!8!"%)!rr#!C!!)S!3!$*!!C3!)X!8!$$KJ!!#!!3#B1#%!N!"m#!1\rQJq(rr)2"rrK1J!!J4A3$!*!%!J!!!"K&G3#3"4X!!!!S4@i-"!!!!*d!!!!-J!#\r3#i!!!*!!%!!!!%9h!*!&R!#3"%9V!!3!!!#H!!!!I)!!N!Gm#!+QNq(rr*!!!3!\r)P#(r!*!!B3%B1'%!T)#"!4JiS!!"5!!!!6KK!+3iJ3!i1+!!!8J!!!%li`!!Iq!\r(08'#!!`iI`!!5!!!*$KK!)4)!!!"B!!!!)!"!*b3!!%!D$KK!$K)!!!"B!!!!)!\r"!3Ji)3%!I!J$TS2Krra1J!!J4A8!N!8E!!!!)%9e!*!&2`!!!$"&G3#3"Cm!!!"\r-4A8!N!@J!!!!B%9Z$!3!!!#K!!!!$)!!N!Z!!!"m#!!!!%9h!*!&RJ#3"%9X"3%\r!!!!f!!!#!)!!N!G&E"!"!!!!+!!!!!'!!*!(4@`3"!!!!#F!!!!%J!#3"d9Y"33\r!!!!&!!!!E)!!N!G&E38#!!!!!`!!!!+!!*!(4@d&!J!!!!)!!!!#J!#3"d9[#J3\r!!!#L!!!!#)!!N!p&GJ#3"Ci!N!4&GJm!N!5M!!!!"%9[#J3!!!#N!!!!#)!!N!p\r&GJ#3"C`!N!4&GJm!N!5M!!!!"%9[#J3!!!#P!!!!#)!!N!p&GJ#3"C8!N!4&GJm\r!N!5M!!!!"%9[#J3!!!#Q!!!!#)!!N!p&GJ#3"C!!!*!%4AB2!*!%S`!!!!4&E`S\r%!!!!T`!!!!L!!*!24AB!N!@1!*!%4AB2!*!%S`!!!!4&E`S%!!!!U!!!!!L!!*!\r24AB!N!@-!*!%4AB2!*!%S`!!!!4&E`S%!!!!U3!!!!L!!*!24AB!N!@+!*!%4AB\r2!*!%S`!!!!4&E`S%!!!!UJ!!!!L!!*!24AB!N!@)!*!%4AB2!*!%S`!!!!4&E`S\r%!!!!U`!!!!L!!*!24AB!N!@'!*!%4AB2!*!%S`!!!!4&E`S%!!!!V!!!!!L!!*!\r24AB!N!@%!*!%4AB2!*!%S`!!!!4&E`S%!!!!V3!!!!L!!*!24AB!N!@#!*!%4AB\r2!*!%S`!!!!4&E`S%!!!!VJ!!!!L!!*!24AB!N!@!!*!%4AB2!*!%S`!!!!4&E`S\r%!!!!V`!!!!L!!*!24AB!N!9q!*!%4AB2!*!%S`!!!!4&E`S%!!!!X!!!!!L!!*!\r24AB!N!9m!*!%4AB2!*!%S`!!!!4&E`S%!!!!X3!!!!L!!*!24AB!N!9k!*!%4AB\r2!*!%S`!!!!4&E`S%!!!!XJ!!!!L!!*!24AB!N!9f!*!%4AB2!*!%S`!!!!4&E`S\r%!!!!X`!!!!L!!*!24AB!N!9d!*!%4AB2!*!%S`!!!!4&E`S%!!!!Y!!!!!L!!*!\r24AB!N!9a!*!%4AB2!*!%S`!!!!4&E`S%!!!!Y3!!!!L!!*!24AB!N!9[!*!%4AB\r2!*!%S`!!!!4&E`S%!!!!YJ!!!!L!!*!24AB!N!9X!*!%4AB2!*!%S`!!!!4&E`S\r%!!!!Y`!!!!L!!*!24AB!N!9U!*!%4AB2!*!%S`!!!!4&E`S%!!!!Z!!!!!L!!*!\r24AB!N!8*!*!%4AB2!*!%S`!!!!4&E`S%!!!!Z3!!!!L!!*!24AB!N!9R!*!%4AB\r2!*!%S`!!!!4&E`S%!!!!ZJ!!!!L!!*!24AB!N!9P!*!%4AB2!*!%S`!!!!4&E`S\r%!!!!Z`!!!!L!!*!24AB!N!9M!*!%4AB2!*!%S`!!!!4&E`S%!!!![!!!!!L!!*!\r24AB!N!9K!*!%4AB2!*!%S`!!!!4&E`S%!!!![3!!!!L!!*!24AB!N!8Z!*!%4AB\r2!*!%S`!!!!4&E`S%!!!![J!!!!L!!*!24AB!N!8G!*!%4AB2!*!%S`!!!!4&E`S\r%!!!![`!!!!L!!*!24AB!N!9B!*!%4AB2!*!%S`!!!!4&E`S%!!!!`!!!!!L!!*!\r24AB!N!9E!*!%4AB2!*!%S`!!!!4&E`S%!!!!`3!!!!L!!*!24AB!N!8[!*!%4AB\r2!*!%S`!!!!4&E`S%!!!!`J!!!!L!!*!24AB!N!91!*!%4AB2!*!%S`!!!!4&E`S\r%!!!!``!!!!L!!*!24AB!N!8@!*!%4AB2!*!%S`!!!!4&E`S%!!!!a!!!!!L!!*!\r24AB!N!8r!*!%4AB2!*!%S`!!!!4&E`S%!!!!a3!!!!L!!*!24AB!N!98!*!%4AB\r2!*!%S`!!!!4&E`S%!!!!aJ!!!!L!!*!24AB!N!9,!*!%4AB2!*!%S`!!!!4&E`S\r%!!!!a`!!!!L!!*!24AB!N!90!*!%4AB2!*!%S`!!!!4&E`S%!!!!b!!!!!L!!*!\r24AB!N!9+!*!%4AB2!*!%S`!!!!4&E`S%!!!!b3!!!!L!!*!24AB!N!8q!*!%4AB\r2!*!%S`!!!!4&E`S%!!!!bJ!!!!L!!*!24AB!N!8l!*!%4AB2!*!%S`!!!!4&E`S\r%!!!!b`!!!!L!!*!24AB!N!8d!*!%4AB2!*!%S`!!!!4&E`S%!!!!c!!!!!L!!*!\r24AB!N!8a!*!%4AB2!*!%S`!!!!4&E`S%!!!!c3!!!!L!!*!24AB!N!8V!*!%4AB\r2!*!%S`!!!!4&E`S%!!!!cJ!!!!L!!*!24AB!N!8N!*!%4AB2!*!%S`!!!!4&E`S\r%!!!!c`!!!!L!!*!24AB!N!8I!*!%4AB2!*!%S`!!!!4&E`S%!!!!d!!!!!L!!*!\r24AB!N!8E!*!%4AB2!*!%S`!!!!4&E`S%!!!!d3!!!!L!!*!24AB!N!8)!*!%4AB\r2!*!%S`!!!!4&E`S%!!!!dJ!!!!L!!*!24AB!N!89!*!%4AB2!*!%S`!!!!4&E`S\r%!!!!d`!!!!L!!*!24AB!N!88!*!%4AB2!*!%S`!!!!4&E`S%!!!!e!!!!!L!!*!\r24AB!N!86!*!%4AB2!*!%S`!!!!4&E`S%!!!!e3!!!!L!!*!24AB!N!83!*!%4AB\r2!*!%S`!!!!4&E`S%!!!!eJ!!!!L!!*!24AB!N!81!*!%4AB2!*!%S`!!!!4&E`S\r%!!!!e`!!!!L!!*!24AB!N!8(!*!%4AB2!*!%S`!!!!4&EJ-%!!!!8`!!!!5!!*!\r,4AB&!*!%8`#3"%9[!`3!!!!&!!!!")!!N!Y&GJ8!N!3&!*!%4@i$"!!!!$B!!!!\r%J!#3#d9f"3#3"$B!N!4&EJ-%!!!!+J!!!!5!!*!,4AB&!*!%+J#3"%9Z!`3!!!!\rT!!!!")!!N!Y&GJ8!N!3T!*!%4@m$"!!!!#!!!!!%J!#3#d9f"3#3"#!!N!4&E`-\r%!!!!(!!!!!5!!*!,4AB&!*!%(!#3"%9[!`3!!!!%!!!!")!!N!Y&GJ8!N!3%!*!\r%4@m$"!!!!!-!!!!%J!#3#d9f"3#3"!-!N!4&E`-%!!!!!J!!!!5!!*!,4AB&!*!\r%!J#3"%9[$`3!!!#M!*!%J!#3"d9S!!!%U%G98dN!!HaPFR*[FPpI194'D@aP8h"\rPB`!#qQ0eFPC[E&pI194'D@aP8h"PB`!#Qf0eFN4TFPpI194'D@aP8h"PB`!%Zfa\rKFh4*EQC[Aemj9%CTE'96F'9M!!4D3$Ja-`!(k#j$D%4TFPpI194'D@aP8h"PBdC\r53cP84QPXC90`C@-!"[!ZAepMG&pI194'D@aP8h"PBdC53cP84QPXC90`C@-!"cF\rZAepKF'aIAcP84QPXC90`C@0'8%09B`!%@d!i-63!![NZ3h9bFQ9ZG%4TFPpI4P*\rc8Q`!"N`Z8%*)4f9d9QpX8hPZB`!%Ad!i-6J!!DBZ4'9QBA9XG%4TFPpI194'D@a\rP8h"PBdCf!!4k3$Jb-`!'!Lj'D@jN9QpXAemj9%CTE'96F'9M4R-!"i)Z8%*(CA4\r@5@jQEe0jEQ-!"*K!1$-a!!0i,P*[Eh4IAcP84QPXC90`C@0'GJ!&1#j*Fe*[Eh4\rIAcP84QPXC90`C@0'GJ!'B5j%C@CKG@adAemj9%CTE'96F'9M4RB!!p3ZAepYE9p\rI194'D@aP8h"PBdCf!!5I3$Jc1!!"Y5j36(0dFQ0`H3!(C5jYC@eMF(N!",T!1$3\rc!!@S,PpIBh4IAcP84QPXC90`C@0'8N-f4P06F'9M9@-!!!YSBA0"E'PKF`!(ILj\r5CA0[E(CPAemj9%CTE'96F'9M4P9M!!6B3$Je-3!#&#jIAf0dAemj9%CTE'96F'9\rM4R0X8%09Be9M!!9kD'&c6@&VC8C68h"PB`!&Cbj'8deKDf9'8e0`C@-!"%`Z4A&\reB@a6G(*TEQF!"2P!1$Bb!!'K,PpIBh4IAcP84QPXC90`C@0'Fe"$9@09B`!!P5j\r33NGPG&G%5@jQEe0jEQ-!""a!1$Fe!!DKER)N1$Jd!!3p3$Ji03!%A%!i163!"&e\r!1$Ne!!B(,PpIBh4IAcP84QPXC90`C@0'9@acE!!$J5j'D@jN4QpXC'9b!!"N,R0\r`FQPZG'B!"M-Z4AKTFh4cAemj9%CTE'96F'9M3dCf!!3Z,PpIB@eTAemj9%CTE'9\r6F'9M4QN!"&j!1$Nf!!-F,PpIBh4IAcP84QPXC90`C@0'F`!"Y#j33NGPG%C$3NP\rZCQp6H@jM!!3l3$N`-!!%##j#E'9cFepI194'D@aP8h"PBdCf!!4#3$N`0`!!lfC\reE'a3BA4S!!)[,N0[F(P$Efe`EfjPER4IAdC58'033e9M9@-!!0BZE@9YE@pfC3!\r%A%!j-6%!"(Y!16)`!!$2,NCeE'a3BA4SAemj9%CTE'96F'9M3dCf!!&1,P"#4f9\rd3f&d5@jQEe0jEQ-!"(a!16)a!!8h,NCeE'a"E'PKFe"KG'KIAcP84QPXC90`C@0\r$4RB!"BmZ3f&d5@jQEepI194'D@aP8h"PBd0'8M%`3dPZCQp33P*PBe9M!!-[,N0\reFP*PFdCTE'8!"qBZ4P0`6h"PEP*PFdCTE'8!!@dZ8Q9c4A*bEh)!"DJZ4f9d-9*\rPFfpeFQ0P!!GX,N4PG'&MD&*PFfpeFQ0P!!9A,N0XEh0P8Q9c4QPXC3!$Pbj9Ff9\r5CA0'D@aP!!9),NGPG%&XD@&c5@jQE`!'`bj%DA0`Eh0P5'&ZC'aP!!6#3$Nd0`!\r(D#j5C@a3BA4SAemj9%CTE'96F'9M3dCf!!!B,P*PE&"KG'KIAcP84QPXC90`C@0\r$4R0X!!6G3$Ne-J!("Lj5C@a3BA4SAemj9%CTE'96F'9M3dC53cC'8e0`C@-!!aB\rZAep`F&pI194'D@aP8h"PBdCf!!6l3$Nf-!!(r#jYC@eMEA!!"pdZFh4bBfKb!!3\rr3$Ni-`!%38!j1$8!"K3Z4@jMEf4PAemj9%CTE'96F'9M3dCf!!4#3$Ni0J!%4%!\rj1$J!"'&!16Ne!!0c,P*PFfpXGQ9IAcP84QPXC90`C@0'8N-a-%0*EQC[8%*5C@-\r!"Aa!-6!`13!&Qd!a-$%i!!6a,PpIE@PIAcP84QPXC90`C@0$4QN!"E0!-6!b-!!\r"iLj5CA0[E(CP3@aTBA0'D@aP!!@e3$%`-M)!"G0!-6!c-!!&e8!a-$-b!!Hm,Pp\rICA&IAcP84QPXC90`C@0$4P*$194'D@aP8h"PB`!&ed!a-$-d!!Ge,PpIEQ9IAcP\r84QPXC90`C@0$4P*$194'D@aP8h"PB`!&f8!a-$-f!!9D,NPc8'&bC@jd6fCIAcP\r84QPXC90`C@0$4P*$194'D@aP8h"PB`!&qN!a-$3h!!)$,N&NC&"KG'K$Efe`Efj\rPER4IAcP84QPXC90`C@0'8%0MD3!&'N!a-$8h!!8F3$%`06N!"cSZAep`E&pI194\r'D@aP8h"PBd0'8%09B`!&08!a-$Ba!!Dd,PpIBA"XAemj9%CTE'96F'9M4P"$B`!\r([5jcG(*XC@i!"6G!-6!f-`!'c#jIAh"XAemj9%CTE'96F'9M3dC33f-!"6P!-6!\rf03!%)#jIAhCMAemj9%CTE'96F'9M3dCc!!983$%`0c!!!h8Z8Q9KC%j)CAKIAdC\r33f0T8&9X!!*p,NPc4@jMEf4PC%C68h"PBepI194'D@aP8h"PBdC33f09B`!&hN!\ra-6)h!!IF,PpIBh4IAcP84QPXC90`C@0'8%0M9@-!"#%Z3fp`H8-b8&0dFPpI4P"\r$Be"9B`!!AbjcG(*bBfKb!!@"3$%a0cN!"98Z4P0`-NCeE'a3BA4S!!@C3$%a1$%\r!"'%Z4P0`-P*PE&"KG'J!"CY!-6%i-`!(F5j'8h!b4'Pb8Q9X8'&dD!!&R8!a-6J\re!!A5,NC6F$*&EQ0[C'PZC`!&Rd!a-6Jh!!Gc,NC5C@C1G@db4P06F'9M!!@K3$%\ra1$N!!UFZ9d3b4P06F'9M!!@j3$%a16%!"&3Z8'&dD$*'8e0`C@-!"EY!-6%j-`!\r(j#j6F'9MD@&X-NC68h"PB`!&[8!a-6Ne!!B5,NC6F&9`!!A!3$%a16J!!2`Z4P0\r`4'phEJ!&R%!a-M!a!!0J,NC6F%0KG%PZCQm!"D"!-6)`03!"@5j'8h"*EQ4PH!!\r&Sd!a-M!i!!(d,N4PCQ&eE(4@8Q9QAep'8R-!"8`Z8%*(CA4@Efa6H@jM!!@p3$%\rb-6)!"5SZ4P0`8feKFR40EhCP!!+",NK5Fh4'6'pMD`!!l5j)8Q9ZB@eP!!#J,N0\rKG%e[GQ8!!XNZ5&0PG%C-Ef0V!!#a,NK%C@aPG'8!"Ea!-6)j-!!$Fbj'8h"5CA0\r[E(CP!!A!3$%b163!"l)Z4P0`9'peBfK'EfaNCA)!")JZ4f9d4'&dC94TE@8!!8B\rZ8%*6CA4$BA4*EQC[8hPZB`!&a%!a-MNi!!B24P0`9'peBfK'EfaNCA)!!hj86d-\r!!X*'8h"5CA0[E(CP!!4l4P0`8feKFR40EhCP!!!P4P0`5@jNCAJ!!Se'8h"$BA4\r*EQC[!!G94P0`4'phEJ!&D8C6F&9`!!D&8h"PBfPKE$*'8e0`C@-!!eG3BA4S-NC\r68h"PB`!"0&G%-NC68h"PB`!'h%C5C@C1G@db4P06F'9M!!3-4P0`-N9ZBfpND@j\rR!!D+4P0`-N4TFP*PE&"KG'J!!`e'8h!b8Q9X8'&dD!!%qdC6F$*'G@aX8'&dD!!\r'@epIBh4IAcP84QPXC90`C@0'8%0M9@-!!69*Fd9ZBfpNC@4'8e0`C@0IAcP84QP\rXC90`C@0'8%0M9@-!!qPIAhCMAemj9%CTE'96F'9M3dCc!!9UAep`E&pI194'D@a\rP8h"PBd0'8%0M!!@ZAepKF'aIAcP84QPXC90`C@0'8%0M!!EZAep`E&pI194'D@a\rP8h"PBd0'8%09B`!'GepIBA"XAemj9%CTE'96F'9M4P"$9@-!!A*"C'43BA4S3fp\rYF'pZC@jdAemj9%CTE'96F'9M4P"$BfN!"#0*Fe"KFQ9ZG%pQAemj9%CTE'96F'9\rM3dC53cP84QPXC90`C@-!"[pIAfjPAemj9%CTE'96F'9M3dC53cP84QPXC90`C@-\r!"N&IAf9aAemj9%CTE'96F'9M3dC53cP84QPXC90`C@-!"Ie&H'PcG(0IAcP84QP\rXC90`C@0$4RB!"[95CA0[E(CPAemj9%CTE'96F'9M4P9M!!+r8Q9cEfafC9pI194\r'D@aP8h"PBdC53c%`3dPZCQp33P*PB`!$29pIE@PIAcP84QPXC90`C@0$4QN!!r"\rIAf&YD9pI194'D@aP8h"PBdCT!!*iAep`F&pI194'D@aP8h"PBdCf!!+GAepYE9p\rI194'D@aP8h"PBdCf!!4p3f&d5@jQEepI194'D@aP8h"PBd0'8M%`3dPZCQp33P*\rPBe9M!!@E4@jMEf4PAemj9%CTE'96F'9M3dCf!!H&8Q9X8'&dD&pI194'D@aP8h"\rPBd0'Ff`!"Mp5C@a3BA4SAemj9%CTE'96F'9M3dC53cC'8e0`C@-!"XY5C@a3BA4\rSAemj9%CTE'96F'9M3dCf!!4A4R9XE%&XD@&c8'&dD&pI194'D@aP8h"PBd0'GJ!\r(N8CeE'a3BA4SAemj9%CTE'96F'9M3dCf!!0J3QaPFh0IAcP84QPXC90`C@0'GJ!\r#&&pIBh4IAcP84QPXC90`C@0'F`!&!epIBh4IAcP84QPXC90`C@0'9@acE!!!Rep\rIBh4IAcP84QPXC90`C@0'Fe"$9@09B`!"e&pIBh4IAcP84QPXC90`C@0'Ffa33e9\rM9@-!"'*IAf0dAemj9%CTE'96F'9M4P*$0NC68h"PBe9M!!AdAepMG&pI194'D@a\rP8h"PBdC53cP84QPXC90`C@-!"G&%C@CKG@adAemj9%CTE'96F'9M4RB!"(0*Fe*\r[Eh4IAcP84QPXC90`C@0'GJ!#bP*[Eh4IAcP84QPXC90`C@0'GJ!&DdCTEQ4@Efa\rIAcP84QPXC90`C@0'F`!!i84PCQ&eE(4%DA*IAcP84QPXC90`C@0'GJ!'4%0S4'P\rbAemj9%CTE'96F'9M4P*$194'D@aP8h"PB`!!QY%!!!%!!!!"!*!)(R4*4&0jE@*\r[E!Q3"$dJ-M-X$3PV4QpZG%P%6@pLD@aP#C!%25!b0!ep1`d0)fPQ)%p-4&*2994\r*6N9138e&8`d0C@jeE5"l$3PZCAGCEh*V#C!'25"V4QpZG%P%6Q9h@@pbDb`0#@G\rPEQ9fB3Q3"MdJDdC[ER4*4%GPEQ9fB5`0#@e[EQ&ME`Q3"MdJDdC[ER4*4%e[EQ&\rMEb`0#ACPEQPMC3Q3"MdJDdC[ER4*4&CPEQPMC5`0#@a[EQ4[EJQ3"MdJDdC[ER4\r*4%a[EQ4[EL`0#@&dD'9ZF`Q3"Md!!!%!!!!"!*!)(J#3#4`!([rr5aJ:\r
\ No newline at end of file
// TODO
m_bChecked = bDoCheck;
}
-}
\ No newline at end of file
#include "OptimEnd.h"
-#endif /* __FULLPATH__ */
\ No newline at end of file
m_type = wxDF_PRIVATE;
m_id = XGetAtomName( (Display*) wxGetDisplay(), m_atom );
- if (m_id == T("file:ALL"))
+ if (m_id == wxT("file:ALL"))
{
m_type = wxDF_FILENAME;
}
if (m_type == wxDF_TEXT)
{
- m_id = T("STRING");
+ m_id = wxT("STRING");
}
else
if (m_type == wxDF_BITMAP)
{
- m_id = T("BITMAP");
+ m_id = wxT("BITMAP");
}
else
if (m_type == wxDF_FILENAME)
{
- m_id = T("file:ALL");
+ m_id = wxT("file:ALL");
}
else
{
- wxFAIL_MSG( T("invalid dataformat") );
+ wxFAIL_MSG( wxT("invalid dataformat") );
}
m_hasAtom = FALSE;
wxPrivateDataObject::wxPrivateDataObject()
{
- wxString id = T("application/");
+ wxString id = wxT("application/");
id += wxTheApp->GetAppName();
m_format.SetId( id );
void wxWindowDC::DoDrawSpline( wxList *points )
{
- wxCHECK_RET( Ok(), T("invalid window dc") );
+ wxCHECK_RET( Ok(), wxT("invalid window dc") );
wxPoint *p;
double cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4;
M_FONTDATA->m_style,
M_FONTDATA->m_weight,
M_FONTDATA->m_underlined,
- T(""),
+ wxT(""),
M_FONTDATA->m_encoding);
if ( !font )
{
- wxFAIL_MSG( T("Could not allocate even a default font -- something is wrong.") );
+ wxFAIL_MSG( wxT("Could not allocate even a default font -- something is wrong.") );
return (wxXFont*) NULL;
}
static char **CreateFontList(wxChar spacing, int *nFonts)
{
wxString pattern;
- pattern.Printf(T("-*-*-*-*-*-*-*-*-*-*-%c-*-*-*"), spacing);
+ pattern.Printf(wxT("-*-*-*-*-*-*-*-*-*-*-%c-*-*-*"), spacing);
// get the list of all fonts
return XListFonts((Display *)wxGetDisplay(), pattern, 32767, nFonts);
if ( fixedWidthOnly )
{
bool cont = TRUE;
- fonts = CreateFontList(T('m'), &nFonts);
+ fonts = CreateFontList(wxT('m'), &nFonts);
if ( fonts )
{
cont = ProcessFamiliesFromFontList(this, fonts, nFonts);
return TRUE;
}
- fonts = CreateFontList(T('c'), &nFonts);
+ fonts = CreateFontList(wxT('c'), &nFonts);
if ( !fonts )
{
return TRUE;
}
else
{
- fonts = CreateFontList(T('*'), &nFonts);
+ fonts = CreateFontList(wxT('*'), &nFonts);
if ( !fonts )
{
- wxFAIL_MSG(T("No fonts at all on this system?"));
+ wxFAIL_MSG(wxT("No fonts at all on this system?"));
return FALSE;
}
{
#if 0
wxString pattern;
- pattern.Printf(T("-*-%s-*-*-*-*-*-*-*-*-*-*-*-*"),
- family.IsEmpty() ? T("*") : family.c_str());
+ pattern.Printf(wxT("-*-%s-*-*-*-*-*-*-*-*-*-*-*-*"),
+ family.IsEmpty() ? wxT("*") : family.c_str());
// get the list of all fonts
int nFonts;
}
wxASSERT_MSG( m_cursor.Ok(),
- T("cursor must be valid after call to the base version"));
+ wxT("cursor must be valid after call to the base version"));
WXDisplay *dpy = GetXDisplay();
WXCursor x_cursor = m_cursor.GetXCursor(dpy);
// NB: all "NoRedraw" classes must have the same names as the "normal" classes
// with NR suffix - wxWindow::MSWCreate() supposes this
-wxChar wxFrameClassName[] = T("wxFrameClass");
-wxChar wxFrameClassNameNoRedraw[] = T("wxFrameClassNR");
-wxChar wxMDIFrameClassName[] = T("wxMDIFrameClass");
-wxChar wxMDIFrameClassNameNoRedraw[] = T("wxMDIFrameClassNR");
-wxChar wxMDIChildFrameClassName[] = T("wxMDIChildFrameClass");
-wxChar wxMDIChildFrameClassNameNoRedraw[] = T("wxMDIChildFrameClassNR");
-wxChar wxPanelClassName[] = T("wxPanelClass");
-wxChar wxCanvasClassName[] = T("wxCanvasClass");
+wxChar wxFrameClassName[] = wxT("wxFrameClass");
+wxChar wxFrameClassNameNoRedraw[] = wxT("wxFrameClassNR");
+wxChar wxMDIFrameClassName[] = wxT("wxMDIFrameClass");
+wxChar wxMDIFrameClassNameNoRedraw[] = wxT("wxMDIFrameClassNR");
+wxChar wxMDIChildFrameClassName[] = wxT("wxMDIChildFrameClass");
+wxChar wxMDIChildFrameClassNameNoRedraw[] = wxT("wxMDIChildFrameClassNR");
+wxChar wxPanelClassName[] = wxT("wxPanelClass");
+wxChar wxCanvasClassName[] = wxT("wxCanvasClass");
HICON wxSTD_FRAME_ICON = (HICON) NULL;
HICON wxSTD_MDICHILDFRAME_ICON = (HICON) NULL;
wxClassInfo::InitializeClasses();
#if wxUSE_RESOURCES
- wxGetResource(T("wxWindows"), T("OsVersion"), &wxOsVersion);
+ wxGetResource(wxT("wxWindows"), wxT("OsVersion"), &wxOsVersion);
#endif
// I'm annoyed ... I don't know where to put this and I don't want to
InitCommonControls();
#if wxUSE_RICHEDIT
- gs_hRichEdit = LoadLibrary(T("RICHED32.DLL"));
+ gs_hRichEdit = LoadLibrary(wxT("RICHED32.DLL"));
if (gs_hRichEdit == (HINSTANCE) NULL)
{
#if wxUSE_CTL3D
if (!Ctl3dRegister(wxhInstance))
- wxLogError(T("Cannot register CTL3D"));
+ wxLogError(wxT("Cannot register CTL3D"));
Ctl3dAutoSubclass(wxhInstance);
#endif
g_globalCursor = new wxCursor;
- wxSTD_FRAME_ICON = LoadIcon(wxhInstance, T("wxSTD_FRAME"));
- wxSTD_MDIPARENTFRAME_ICON = LoadIcon(wxhInstance, T("wxSTD_MDIPARENTFRAME"));
- wxSTD_MDICHILDFRAME_ICON = LoadIcon(wxhInstance, T("wxSTD_MDICHILDFRAME"));
+ wxSTD_FRAME_ICON = LoadIcon(wxhInstance, wxT("wxSTD_FRAME"));
+ wxSTD_MDIPARENTFRAME_ICON = LoadIcon(wxhInstance, wxT("wxSTD_MDIPARENTFRAME"));
+ wxSTD_MDICHILDFRAME_ICON = LoadIcon(wxhInstance, wxT("wxSTD_MDICHILDFRAME"));
- wxDEFAULT_FRAME_ICON = LoadIcon(wxhInstance, T("wxDEFAULT_FRAME"));
- wxDEFAULT_MDIPARENTFRAME_ICON = LoadIcon(wxhInstance, T("wxDEFAULT_MDIPARENTFRAME"));
- wxDEFAULT_MDICHILDFRAME_ICON = LoadIcon(wxhInstance, T("wxDEFAULT_MDICHILDFRAME"));
+ wxDEFAULT_FRAME_ICON = LoadIcon(wxhInstance, wxT("wxDEFAULT_FRAME"));
+ wxDEFAULT_MDIPARENTFRAME_ICON = LoadIcon(wxhInstance, wxT("wxDEFAULT_MDIPARENTFRAME"));
+ wxDEFAULT_MDICHILDFRAME_ICON = LoadIcon(wxhInstance, wxT("wxDEFAULT_MDICHILDFRAME"));
RegisterWindowClasses();
LOGBRUSH lb;
lb.lbStyle = BS_PATTERN;
- lb.lbHatch = (int)LoadBitmap( wxhInstance, T("wxDISABLE_BUTTON_BITMAP") );
+ lb.lbHatch = (int)LoadBitmap( wxhInstance, wxT("wxDISABLE_BUTTON_BITMAP") );
if ( lb.lbHatch )
{
wxDisableButtonBrush = ::CreateBrushIndirect( & lb );
if (i < len)
{
- if (cmdLine.GetChar(i) == T('"')) // We found the start of a string
+ if (cmdLine.GetChar(i) == wxT('"')) // We found the start of a string
{
i ++;
int first = i;
- while ((i < len) && (cmdLine.GetChar(i) != T('"')))
+ while ((i < len) && (cmdLine.GetChar(i) != wxT('"')))
i ++;
wxString arg(cmdLine.Mid(first, (i - first)));
// wxDebugContext, too.
if (wxDebugContext::CountObjectsLeft(TRUE) > 0)
{
- wxLogDebug(T("There were memory leaks."));
+ wxLogDebug(wxT("There were memory leaks."));
wxDebugContext::Dump();
wxDebugContext::PrintStatistics();
}
// the IMPLEMENT_APP macro is used instead, which sets an initializer
// function for delayed, dynamic app object construction.
wxCHECK_MSG( wxApp::GetInitializerFunction(), 0,
- T("No initializer - use IMPLEMENT_APP macro.") );
+ wxT("No initializer - use IMPLEMENT_APP macro.") );
wxTheApp = (*wxApp::GetInitializerFunction()) ();
}
- wxCHECK_MSG( wxTheApp, 0, T("You have to define an instance of wxApp!") );
+ wxCHECK_MSG( wxTheApp, 0, wxT("You have to define an instance of wxApp!") );
// save the WinMain() parameters
wxTheApp->ConvertToStandardCommandArgs(lpCmdLine);
{
#if wxUSE_THREADS
wxASSERT_MSG( wxThread::IsMain(),
- T("only the main thread can process Windows messages") );
+ wxT("only the main thread can process Windows messages") );
static bool s_hadGuiLock = TRUE;
static wxMsgArray s_aSavedMessages;
int wxApp::GetComCtl32Version() const
{
// have we loaded COMCTL32 yet?
- HMODULE theModule = ::GetModuleHandle(T("COMCTL32"));
+ HMODULE theModule = ::GetModuleHandle(wxT("COMCTL32"));
int version = 0;
// if so, then we can check for the version
return wxIcon("wxICON_WARNING");
default:
- wxFAIL_MSG(T("requested non existent standard icon"));
+ wxFAIL_MSG(wxT("requested non existent standard icon"));
// still fall through
case wxICON_HAND:
if (m_selectedInto)
{
wxChar buf[200];
- wxSprintf(buf, T("Bitmap was deleted without selecting out of wxMemoryDC %lX."), (unsigned long) m_selectedInto);
+ wxSprintf(buf, wxT("Bitmap was deleted without selecting out of wxMemoryDC %lX."), (unsigned long) m_selectedInto);
wxFatalError(buf);
}
if (m_hBitmap)
if (M_BITMAPDATA->m_selectedInto)
{
wxChar buf[200];
- wxSprintf(buf, T("Bitmap %lX was deleted without selecting out of wxMemoryDC %lX."), (unsigned long) this, (unsigned long) M_BITMAPDATA->m_selectedInto);
+ wxSprintf(buf, wxT("Bitmap %lX was deleted without selecting out of wxMemoryDC %lX."), (unsigned long) this, (unsigned long) M_BITMAPDATA->m_selectedInto);
wxFatalError(buf);
}
if (M_BITMAPDATA->m_hBitmap)
wxBitmapHandler *handler = FindHandler(type);
if ( handler == NULL ) {
- wxLogWarning(T("no bitmap handler for type %d defined."), type);
+ wxLogWarning(wxT("no bitmap handler for type %d defined."), type);
return FALSE;
}
wxBitmapHandler *handler = FindHandler(type);
if ( handler == NULL ) {
- wxLogWarning(T("no bitmap handler for type %d defined."), type);
+ wxLogWarning(wxT("no bitmap handler for type %d defined."), type);
return FALSE;
}
wxBitmapHandler *handler = FindHandler(type);
if ( handler == NULL ) {
- wxLogWarning(T("no bitmap handler for type %d defined."), type);
+ wxLogWarning(wxT("no bitmap handler for type %d defined."), type);
return FALSE;
}
}
// it's probably not found
- wxLogError(T("Can't load bitmap '%s' from resources! Check .rc file."), name.c_str());
+ wxLogError(wxT("Can't load bitmap '%s' from resources! Check .rc file."), name.c_str());
return FALSE;
}
m_hWnd = (WXHWND)CreateWindowEx
(
0,
- T("BUTTON"),
- T(""),
+ wxT("BUTTON"),
+ wxT(""),
WS_VISIBLE | WS_TABSTOP | WS_CHILD | BS_OWNERDRAW ,
0, 0, 0, 0,
GetWinHwnd(parent),
m_hWnd = (WXHWND)CreateWindowEx
(
MakeExtendedStyle(m_windowStyle),
- T("BUTTON"),
+ wxT("BUTTON"),
label,
WS_VISIBLE | WS_TABSTOP | WS_CHILD,
0, 0, 0, 0,
bool wxCaret::MSWCreateCaret()
{
- wxASSERT_MSG( GetWindow(), T("caret without window cannot be created") );
- wxASSERT_MSG( IsOk(), T("caret of zero size cannot be created") );
+ wxASSERT_MSG( GetWindow(), wxT("caret without window cannot be created") );
+ wxASSERT_MSG( IsOk(), wxT("caret of zero size cannot be created") );
if ( !m_hasCaret )
{
void wxCaret::DoShow()
{
- wxASSERT_MSG( GetWindow(), T("caret without window cannot be shown") );
- wxASSERT_MSG( IsOk(), T("caret of zero size cannot be shown") );
+ wxASSERT_MSG( GetWindow(), wxT("caret without window cannot be shown") );
+ wxASSERT_MSG( IsOk(), wxT("caret of zero size cannot be shown") );
if ( m_hasCaret )
{
if ( m_hasCaret )
{
wxWindow *winFocus = wxWindow::FindFocus();
- wxASSERT_MSG( winFocus == GetWindow(), T("how did we lose focus?") );
+ wxASSERT_MSG( winFocus == GetWindow(), wxT("how did we lose focus?") );
CALL_CARET_API(SetCaretPos, (m_x, m_y));
}
m_windowStyle = style;
wxString Label = label;
- if (Label == T(""))
- Label = T(" "); // Apparently needed or checkbox won't show
+ if (Label == wxT(""))
+ Label = wxT(" "); // Apparently needed or checkbox won't show
if ( id == -1 )
m_windowId = NewControlId();
msStyle |= WS_BORDER;
*/
- m_hWnd = (WXHWND)CreateWindowEx(exStyle, T("BUTTON"), Label,
+ m_hWnd = (WXHWND)CreateWindowEx(exStyle, wxT("BUTTON"), Label,
msStyle,
0, 0, 0, 0,
(HWND)parent->GetHWND(), (HMENU)m_windowId,
checkHeight = -1 ;
long msStyle = CHECK_FLAGS;
- HWND wx_button = CreateWindowEx(MakeExtendedStyle(m_windowStyle), CHECK_CLASS, T("toggle"),
+ HWND wx_button = CreateWindowEx(MakeExtendedStyle(m_windowStyle), CHECK_CLASS, wxT("toggle"),
msStyle,
0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId,
wxGetInstance(), NULL);
void wxBitmapCheckBox::SetLabel(const wxBitmap& bitmap)
{
- wxFAIL_MSG(T("not implemented"));
+ wxFAIL_MSG(wxT("not implemented"));
}
// update it
int index = m_pParent->GetItemIndex(this);
- wxASSERT_MSG( index != wxNOT_FOUND, T("what does this item do here?") );
+ wxASSERT_MSG( index != wxNOT_FOUND, wxT("what does this item do here?") );
m_nIndex = (size_t)index;
}
if ( ::SendMessage(hwndListbox, LB_GETITEMRECT,
m_nIndex, (LPARAM)&rcUpdate) == LB_ERR )
{
- wxLogDebug(T("LB_GETITEMRECT failed"));
+ wxLogDebug(wxT("LB_GETITEMRECT failed"));
}
#else // Win16
// FIXME this doesn't work if the listbox is scrolled!
void wxCheckListBox::Delete(int N)
{
wxCHECK_RET( N >= 0 && N < m_noItems,
- T("invalid index in wxListBox::Delete") );
+ wxT("invalid index in wxListBox::Delete") );
wxListBox::Delete(N);
void wxCheckListBox::InsertItems(int nItems, const wxString items[], int pos)
{
wxCHECK_RET( pos >= 0 && pos <= m_noItems,
- T("invalid index in wxCheckListBox::InsertItems") );
+ wxT("invalid index in wxCheckListBox::InsertItems") );
wxListBox::InsertItems(nItems, items, pos);
wxASSERT_MSG( !(style & wxCB_DROPDOWN) &&
!(style & wxCB_READONLY) &&
!(style & wxCB_SIMPLE),
- T("this style flag is ignored by wxChoice, you "
+ wxT("this style flag is ignored by wxChoice, you "
"probably want to use a wxComboBox") );
- if ( !MSWCreateControl(T("COMBOBOX"), msStyle) )
+ if ( !MSWCreateControl(wxT("COMBOBOX"), msStyle) )
return FALSE;
for ( int i = 0; i < n; i++ )
void wxChoice::Delete(int n)
{
- wxCHECK_RET( n < GetCount(), T("invalid item index in wxChoice::Delete") );
+ wxCHECK_RET( n < GetCount(), wxT("invalid item index in wxChoice::Delete") );
SendMessage(GetHwnd(), CB_DELETESTRING, n, 0);
}
{
if ( SendMessage(GetHwnd(), CB_SETITEMDATA, n, (LPARAM)clientData) == CB_ERR )
{
- wxLogLastError(T("CB_SETITEMDATA"));
+ wxLogLastError(wxT("CB_SETITEMDATA"));
}
}
LPARAM rc = SendMessage(GetHwnd(), CB_GETITEMDATA, n, 0);
if ( rc == CB_ERR )
{
- wxLogLastError(T("CB_GETITEMDATA"));
+ wxLogLastError(wxT("CB_GETITEMDATA"));
// unfortunately, there is no way to return an error code to the user
rc = (LPARAM) NULL;
bool wxOpenClipboard()
{
- wxCHECK_MSG( !gs_wxClipboardIsOpen, TRUE, T("clipboard already opened.") );
+ wxCHECK_MSG( !gs_wxClipboardIsOpen, TRUE, wxT("clipboard already opened.") );
wxWindow *win = wxTheApp->GetTopWindow();
if ( win )
}
else
{
- wxLogDebug(T("Can not open clipboard without a main window."));
+ wxLogDebug(wxT("Can not open clipboard without a main window."));
return FALSE;
}
bool wxCloseClipboard()
{
- wxCHECK_MSG( gs_wxClipboardIsOpen, FALSE, T("clipboard is not opened") );
+ wxCHECK_MSG( gs_wxClipboardIsOpen, FALSE, wxT("clipboard is not opened") );
gs_wxClipboardIsOpen = FALSE;
bool wxClipboard::AddData( wxDataObject *data )
{
- wxCHECK_MSG( data, FALSE, T("data is invalid") );
+ wxCHECK_MSG( data, FALSE, wxT("data is invalid") );
#if wxUSE_DRAG_AND_DROP
- wxCHECK_MSG( wxIsClipboardOpened(), FALSE, T("clipboard not open") );
+ wxCHECK_MSG( wxIsClipboardOpened(), FALSE, wxT("clipboard not open") );
wxDataFormat format = data->GetFormat();
bool wxClipboard::GetData( wxDataObject *data )
{
- wxCHECK_MSG( wxIsClipboardOpened(), FALSE, T("clipboard not open") );
+ wxCHECK_MSG( wxIsClipboardOpened(), FALSE, wxT("clipboard not open") );
#if wxUSE_DRAG_AND_DROP
wxDataFormat format = data->GetFormat();
if ( want3D || wxStyleHasBorder(m_windowStyle) )
msStyle |= WS_BORDER;
- m_hWnd = (WXHWND)::CreateWindowEx(exStyle, T("COMBOBOX"), NULL,
+ m_hWnd = (WXHWND)::CreateWindowEx(exStyle, wxT("COMBOBOX"), NULL,
msStyle,
0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId,
wxGetInstance(), NULL);
- wxCHECK_MSG( m_hWnd, FALSE, T("Failed to create combobox") );
+ wxCHECK_MSG( m_hWnd, FALSE, wxT("Failed to create combobox") );
/*
#if wxUSE_CTL3D
if ( !m_hWnd )
{
#ifdef __WXDEBUG__
- wxLogError(T("Failed to create a control of class '%s'"), classname);
+ wxLogError(wxT("Failed to create a control of class '%s'"), classname);
#endif // DEBUG
return FALSE;
lpDIB->bmiHeader.biBitCount)));
// Get a hDC so we can create a bitmap compatible with it
- hDC = CreateDC( T("DISPLAY"), NULL, NULL, NULL);
+ hDC = CreateDC( wxT("DISPLAY"), NULL, NULL, NULL);
// 5) Create a device dependent bitmap with the XOR bits.
hbmXor = CreateDIBitmap( hDC, (LPBITMAPINFOHEADER)&(lpDIB->bmiHeader),
lpDIB->bmiHeader.biBitCount)));
// Get a hDC so we can create a bitmap compatible with it
- hDC = CreateDC( T("DISPLAY"), NULL, NULL, NULL);
+ hDC = CreateDC( wxT("DISPLAY"), NULL, NULL, NULL);
// 5) Create a device dependent bitmap with the XOR bits.
hbmXor = CreateBitmap( (int )lpDIB->bmiHeader.biWidth,
}
case wxCURSOR_HAND:
{
- M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), T("wxCURSOR_HAND"));
+ M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_HAND"));
break;
}
case wxCURSOR_BULLSEYE:
{
- M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), T("wxCURSOR_BULLSEYE"));
+ M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_BULLSEYE"));
break;
}
case wxCURSOR_PENCIL:
{
- M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), T("wxCURSOR_PENCIL"));
+ M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_PENCIL"));
break;
}
case wxCURSOR_MAGNIFIER:
{
- M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), T("wxCURSOR_MAGNIFIER"));
+ M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_MAGNIFIER"));
break;
}
case wxCURSOR_NO_ENTRY:
{
- M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), T("wxCURSOR_NO_ENTRY"));
+ M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_NO_ENTRY"));
break;
}
case wxCURSOR_LEFT_BUTTON:
}
case wxCURSOR_SIZING:
{
- M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), T("wxCURSOR_SIZING"));
+ M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_SIZING"));
break;
}
case wxCURSOR_WATCH:
{
- M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), T("wxCURSOR_WATCH"));
+ M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_WATCH"));
break;
}
case wxCURSOR_SPRAYCAN:
{
- M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), T("wxCURSOR_ROLLER"));
+ M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_ROLLER"));
break;
}
case wxCURSOR_PAINT_BRUSH:
{
- M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), T("wxCURSOR_PBRUSH"));
+ M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_PBRUSH"));
break;
}
case wxCURSOR_POINT_LEFT:
{
- M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), T("wxCURSOR_PLEFT"));
+ M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_PLEFT"));
break;
}
case wxCURSOR_POINT_RIGHT:
{
- M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), T("wxCURSOR_PRIGHT"));
+ M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_PRIGHT"));
break;
}
case wxCURSOR_QUESTION_ARROW:
{
- M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), T("wxCURSOR_QARROW"));
+ M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_QARROW"));
break;
}
case wxCURSOR_BLANK:
{
- M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), T("wxCURSOR_BLANK"));
+ M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), wxT("wxCURSOR_BLANK"));
break;
}
default:
wxColour wxNullColour;
// Default window names
-const wxChar *wxButtonNameStr = T("button");
-const wxChar *wxCanvasNameStr = T("canvas");
-const wxChar *wxCheckBoxNameStr = T("check");
-const wxChar *wxChoiceNameStr = T("choice");
-const wxChar *wxComboBoxNameStr = T("comboBox");
-const wxChar *wxDialogNameStr = T("dialog");
-const wxChar *wxFrameNameStr = T("frame");
-const wxChar *wxGaugeNameStr = T("gauge");
-const wxChar *wxStaticBoxNameStr = T("groupBox");
-const wxChar *wxListBoxNameStr = T("listBox");
-const wxChar *wxStaticTextNameStr = T("message");
-const wxChar *wxStaticBitmapNameStr = T("message");
-const wxChar *wxMultiTextNameStr = T("multitext");
-const wxChar *wxPanelNameStr = T("panel");
-const wxChar *wxRadioBoxNameStr = T("radioBox");
-const wxChar *wxRadioButtonNameStr = T("radioButton");
-const wxChar *wxBitmapRadioButtonNameStr = T("radioButton");
-const wxChar *wxScrollBarNameStr = T("scrollBar");
-const wxChar *wxSliderNameStr = T("slider");
-const wxChar *wxStaticNameStr = T("static");
-const wxChar *wxTextCtrlWindowNameStr = T("textWindow");
-const wxChar *wxTextCtrlNameStr = T("text");
-const wxChar *wxVirtListBoxNameStr = T("virtListBox");
-const wxChar *wxButtonBarNameStr = T("buttonbar");
-const wxChar *wxEnhDialogNameStr = T("Shell");
-const wxChar *wxToolBarNameStr = T("toolbar");
-const wxChar *wxStatusLineNameStr = T("status_line");
-const wxChar *wxGetTextFromUserPromptStr = T("Input Text");
-const wxChar *wxMessageBoxCaptionStr = T("Message");
-const wxChar *wxFileSelectorPromptStr = T("Select a file");
-const wxChar *wxFileSelectorDefaultWildcardStr = T("*.*");
-const wxChar *wxInternalErrorStr = T("wxWindows Internal Error");
-const wxChar *wxFatalErrorStr = T("wxWindows Fatal Error");
-const wxChar *wxTreeCtrlNameStr = T("treeCtrl");
-const wxChar *wxDirDialogNameStr = T("wxDirCtrl");
-const wxChar *wxDirDialogDefaultFolderStr = T("/");
+const wxChar *wxButtonNameStr = wxT("button");
+const wxChar *wxCanvasNameStr = wxT("canvas");
+const wxChar *wxCheckBoxNameStr = wxT("check");
+const wxChar *wxChoiceNameStr = wxT("choice");
+const wxChar *wxComboBoxNameStr = wxT("comboBox");
+const wxChar *wxDialogNameStr = wxT("dialog");
+const wxChar *wxFrameNameStr = wxT("frame");
+const wxChar *wxGaugeNameStr = wxT("gauge");
+const wxChar *wxStaticBoxNameStr = wxT("groupBox");
+const wxChar *wxListBoxNameStr = wxT("listBox");
+const wxChar *wxStaticTextNameStr = wxT("message");
+const wxChar *wxStaticBitmapNameStr = wxT("message");
+const wxChar *wxMultiTextNameStr = wxT("multitext");
+const wxChar *wxPanelNameStr = wxT("panel");
+const wxChar *wxRadioBoxNameStr = wxT("radioBox");
+const wxChar *wxRadioButtonNameStr = wxT("radioButton");
+const wxChar *wxBitmapRadioButtonNameStr = wxT("radioButton");
+const wxChar *wxScrollBarNameStr = wxT("scrollBar");
+const wxChar *wxSliderNameStr = wxT("slider");
+const wxChar *wxStaticNameStr = wxT("static");
+const wxChar *wxTextCtrlWindowNameStr = wxT("textWindow");
+const wxChar *wxTextCtrlNameStr = wxT("text");
+const wxChar *wxVirtListBoxNameStr = wxT("virtListBox");
+const wxChar *wxButtonBarNameStr = wxT("buttonbar");
+const wxChar *wxEnhDialogNameStr = wxT("Shell");
+const wxChar *wxToolBarNameStr = wxT("toolbar");
+const wxChar *wxStatusLineNameStr = wxT("status_line");
+const wxChar *wxGetTextFromUserPromptStr = wxT("Input Text");
+const wxChar *wxMessageBoxCaptionStr = wxT("Message");
+const wxChar *wxFileSelectorPromptStr = wxT("Select a file");
+const wxChar *wxFileSelectorDefaultWildcardStr = wxT("*.*");
+const wxChar *wxInternalErrorStr = wxT("wxWindows Internal Error");
+const wxChar *wxFatalErrorStr = wxT("wxWindows Fatal Error");
+const wxChar *wxTreeCtrlNameStr = wxT("treeCtrl");
+const wxChar *wxDirDialogNameStr = wxT("wxDirCtrl");
+const wxChar *wxDirDialogDefaultFolderStr = wxT("/");
// See wx/utils.h
-const wxChar *wxFloatToStringStr = T("%.2f");
-const wxChar *wxDoubleToStringStr = T("%.2f");
+const wxChar *wxFloatToStringStr = wxT("%.2f");
+const wxChar *wxDoubleToStringStr = wxT("%.2f");
#ifdef __WXMSW__
-const wxChar *wxUserResourceStr = T("TEXT");
+const wxChar *wxUserResourceStr = wxT("TEXT");
#endif
#if wxUSE_SHARED_LIBRARY
void wxDC::DoSetClippingRegionAsRegion(const wxRegion& region)
{
- wxCHECK_RET( region.GetHRGN(), T("invalid clipping region") );
+ wxCHECK_RET( region.GetHRGN(), wxT("invalid clipping region") );
wxRect box = region.GetBox();
}
else
{
- wxCHECK_RET( m_selectedBitmap.Ok(), T("this DC can't be cleared") );
+ wxCHECK_RET( m_selectedBitmap.Ok(), wxT("this DC can't be cleared") );
rect.left = 0; rect.top = 0;
rect.right = m_selectedBitmap.GetWidth();
HDC memdc = ::CreateCompatibleDC( cdc );
HBITMAP hbitmap = (HBITMAP) bmp.GetHBITMAP( );
- wxASSERT_MSG( hbitmap, T("bitmap is ok but HBITMAP is NULL?") );
+ wxASSERT_MSG( hbitmap, wxT("bitmap is ok but HBITMAP is NULL?") );
::SelectObject( memdc, hbitmap );
::BitBlt( cdc, x, y, bmp.GetWidth(), bmp.GetHeight(), memdc, 0, 0, SRCCOPY);
HFONT f = (HFONT) ::SelectObject(GetHdc(), (HFONT) m_font.GetResourceHandle());
if (f == (HFONT) NULL)
{
- wxLogDebug(T("::SelectObject failed in wxDC::SetFont."));
+ wxLogDebug(wxT("::SelectObject failed in wxDC::SetFont."));
}
if (!m_oldFont)
m_oldFont = (WXHFONT) f;
wxPaintDC::wxPaintDC(wxWindow *canvas)
{
- wxCHECK_RET( canvas, T("NULL canvas in wxPaintDC ctor") );
+ wxCHECK_RET( canvas, wxT("NULL canvas in wxPaintDC ctor") );
#ifdef __WXDEBUG__
if ( g_isPainting <= 0 )
{
- wxFAIL_MSG( T("wxPaintDC may be created only in EVT_PAINT handler!") );
+ wxFAIL_MSG( wxT("wxPaintDC may be created only in EVT_PAINT handler!") );
return;
}
size_t index;
wxPaintDCInfo *info = FindInCache(&index);
- wxCHECK_RET( info, T("existing DC should have a cache entry") );
+ wxCHECK_RET( info, wxT("existing DC should have a cache entry") );
if ( !--info->count )
{
// a device context
if (bitmap.GetSelectedInto() && (bitmap.GetSelectedInto() != this))
{
- wxFatalError(T("Error in wxMemoryDC::SelectObject\nBitmap is selected in another wxMemoryDC.\nDelete the first wxMemoryDC or use SelectObject(NULL)"));
+ wxFatalError(wxT("Error in wxMemoryDC::SelectObject\nBitmap is selected in another wxMemoryDC.\nDelete the first wxMemoryDC or use SelectObject(NULL)"));
return;
}
if (bm == ERROR)
{
- wxFatalError(T("Error in wxMemoryDC::SelectObject\nBitmap may not be loaded, or may be selected in another wxMemoryDC.\nDelete the first wxMemoryDC to deselect bitmap."));
+ wxFatalError(wxT("Error in wxMemoryDC::SelectObject\nBitmap may not be loaded, or may be selected in another wxMemoryDC.\nDelete the first wxMemoryDC to deselect bitmap."));
}
else if (!m_oldBitmap)
m_oldBitmap = (WXHBITMAP) bm;
{
m_isInteractive = interactive;
- if (!file.IsNull() && file != T(""))
+ if (!file.IsNull() && file != wxT(""))
m_printData.SetFilename(file);
#if wxUSE_COMMON_DIALOGS
}
else
#endif
- if ((!driver_name.IsNull() && driver_name != T("")) &&
- (!device_name.IsNull() && device_name != T("")) &&
- (!file.IsNull() && file != T("")))
+ if ((!driver_name.IsNull() && driver_name != wxT("")) &&
+ (!device_name.IsNull() && device_name != wxT("")) &&
+ (!file.IsNull() && file != wxT("")))
{
m_hDC = (WXHDC) CreateDC(WXSTRINGCAST driver_name, WXSTRINGCAST device_name, WXSTRINGCAST file, NULL);
m_ok = m_hDC ? TRUE: FALSE;
if (ret <= 0)
{
DWORD lastError = GetLastError();
- wxLogDebug(T("wxDC::StartDoc failed with error: %d\n"), lastError);
+ wxLogDebug(wxT("wxDC::StartDoc failed with error: %d\n"), lastError);
}
#endif
GlobalFree(pd.hDevMode);
pd.hDevMode=NULL;
}
- return ( deviceName != T("") );
+ return ( deviceName != wxT("") );
}
#if 0
wxChar* deviceName;
wxChar* portName = (wxChar*) NULL; // Obsolete in WIN32
- if (devNameStr == T(""))
+ if (devNameStr == wxT(""))
deviceName = (wxChar*) NULL;
else
deviceName = WXSTRINGCAST devNameStr;
if ( hDevMode )
lpDevMode = (DEVMODE*) GlobalLock(hDevMode);
- if (devNameStr == T(""))
+ if (devNameStr == wxT(""))
{
// Retrieve the default device name
wxString portName;
bool ret = wxGetDefaultDeviceName(devNameStr, portName);
- wxASSERT_MSG( ret, T("Could not get default device name.") );
+ wxASSERT_MSG( ret, wxT("Could not get default device name.") );
deviceName = WXSTRINGCAST devNameStr;
}
wxDDEServer::~wxDDEServer(void)
{
- if (m_serviceName != T(""))
+ if (m_serviceName != wxT(""))
{
HSZ serviceName = DdeCreateStringHandle(DDEIdInst, WXSTRINGCAST m_serviceName, CP_WINANSI);
if (DdeNameService(DDEIdInst, serviceName, NULL, DNS_UNREGISTER) == 0)
switch (DdeGetLastError(DDEIdInst))
{
case DMLERR_ADVACKTIMEOUT:
- err = T("A request for a synchronous advise transaction has timed out.");
+ err = wxT("A request for a synchronous advise transaction has timed out.");
break;
case DMLERR_BUSY:
- err = T("The response to the transaction caused the DDE_FBUSY bit to be set.");
+ err = wxT("The response to the transaction caused the DDE_FBUSY bit to be set.");
break;
case DMLERR_DATAACKTIMEOUT:
- err = T("A request for a synchronous data transaction has timed out.");
+ err = wxT("A request for a synchronous data transaction has timed out.");
break;
case DMLERR_DLL_NOT_INITIALIZED:
- err = T("A DDEML function was called without first calling the DdeInitialize function,\n\ror an invalid instance identifier\n\rwas passed to a DDEML function.");
+ err = wxT("A DDEML function was called without first calling the DdeInitialize function,\n\ror an invalid instance identifier\n\rwas passed to a DDEML function.");
break;
case DMLERR_DLL_USAGE:
- err = T("An application initialized as APPCLASS_MONITOR has\n\rattempted to perform a DDE transaction,\n\ror an application initialized as APPCMD_CLIENTONLY has \n\rattempted to perform server transactions.");
+ err = wxT("An application initialized as APPCLASS_MONITOR has\n\rattempted to perform a DDE transaction,\n\ror an application initialized as APPCMD_CLIENTONLY has \n\rattempted to perform server transactions.");
break;
case DMLERR_EXECACKTIMEOUT:
- err = T("A request for a synchronous execute transaction has timed out.");
+ err = wxT("A request for a synchronous execute transaction has timed out.");
break;
case DMLERR_INVALIDPARAMETER:
- err = T("A parameter failed to be validated by the DDEML.");
+ err = wxT("A parameter failed to be validated by the DDEML.");
break;
case DMLERR_LOW_MEMORY:
- err = T("A DDEML application has created a prolonged race condition.");
+ err = wxT("A DDEML application has created a prolonged race condition.");
break;
case DMLERR_MEMORY_ERROR:
- err = T("A memory allocation failed.");
+ err = wxT("A memory allocation failed.");
break;
case DMLERR_NO_CONV_ESTABLISHED:
- err = T("A client's attempt to establish a conversation has failed.");
+ err = wxT("A client's attempt to establish a conversation has failed.");
break;
case DMLERR_NOTPROCESSED:
- err = T("A transaction failed.");
+ err = wxT("A transaction failed.");
break;
case DMLERR_POKEACKTIMEOUT:
- err = T("A request for a synchronous poke transaction has timed out.");
+ err = wxT("A request for a synchronous poke transaction has timed out.");
break;
case DMLERR_POSTMSG_FAILED:
- err = T("An internal call to the PostMessage function has failed. ");
+ err = wxT("An internal call to the PostMessage function has failed. ");
break;
case DMLERR_REENTRANCY:
- err = T("Reentrancy problem.");
+ err = wxT("Reentrancy problem.");
break;
case DMLERR_SERVER_DIED:
- err = T("A server-side transaction was attempted on a conversation\n\rthat was terminated by the client, or the server\n\rterminated before completing a transaction.");
+ err = wxT("A server-side transaction was attempted on a conversation\n\rthat was terminated by the client, or the server\n\rterminated before completing a transaction.");
break;
case DMLERR_SYS_ERROR:
- err = T("An internal error has occurred in the DDEML.");
+ err = wxT("An internal error has occurred in the DDEML.");
break;
case DMLERR_UNADVACKTIMEOUT:
- err = T("A request to end an advise transaction has timed out.");
+ err = wxT("A request to end an advise transaction has timed out.");
break;
case DMLERR_UNFOUND_QUEUE_ID:
- err = T("An invalid transaction identifier was passed to a DDEML function.\n\rOnce the application has returned from an XTYP_XACT_COMPLETE callback,\n\rthe transaction identifier for that callback is no longer valid.");
+ err = wxT("An invalid transaction identifier was passed to a DDEML function.\n\rOnce the application has returned from an XTYP_XACT_COMPLETE callback,\n\rthe transaction identifier for that callback is no longer valid.");
break;
default:
- err = T("Unrecognised error type.");
+ err = wxT("Unrecognised error type.");
break;
}
- MessageBox((HWND) NULL, (LPCTSTR)err, T("DDE Error"), MB_OK | MB_ICONINFORMATION);
+ MessageBox((HWND) NULL, (LPCTSTR)err, wxT("DDE Error"), MB_OK | MB_ICONINFORMATION);
}
#endif
// otherwise it would look too strange)
const wxChar *dlg;
if ( style & wxRESIZE_BORDER )
- dlg = T("wxResizeableDialog");
+ dlg = wxT("wxResizeableDialog");
else if ( style & wxCAPTION )
- dlg = T("wxCaptionDialog");
+ dlg = wxT("wxCaptionDialog");
else
- dlg = T("wxNoCaptionDialog");
+ dlg = wxT("wxNoCaptionDialog");
MSWCreate(m_windowId, parent, NULL, this, NULL,
x, y, width, height,
0, // style is not used if we have dlg template
bool async)
{
// check preconditions
- wxCHECK_MSG( IsOk(), FALSE, T("using uninitialized wxDialUpManager") );
+ wxCHECK_MSG( IsOk(), FALSE, wxT("using uninitialized wxDialUpManager") );
if ( ms_hRasConnection )
{
- wxFAIL_MSG(T("there is already an active connection"));
+ wxFAIL_MSG(wxT("there is already an active connection"));
return TRUE;
}
return FALSE;
}
- wxASSERT_MSG( ms_hRasConnection, T("dialing but no connection?") );
+ wxASSERT_MSG( ms_hRasConnection, wxT("dialing but no connection?") );
ms_dialer = NULL;
bool wxDialUpManagerMSW::HangUp()
{
- wxCHECK_MSG( IsOk(), FALSE, T("using uninitialized wxDialUpManager") );
+ wxCHECK_MSG( IsOk(), FALSE, wxT("using uninitialized wxDialUpManager") );
// we may terminate either the connection we initiated or another one which
// is active now
}
}
- wxASSERT_MSG( ms_isAlwaysOnline != -1, T("logic error") );
+ wxASSERT_MSG( ms_isAlwaysOnline != -1, wxT("logic error") );
return ms_isAlwaysOnline != 0;
}
bool wxDialUpManagerMSW::IsOnline() const
{
- wxCHECK_MSG( IsOk(), FALSE, T("using uninitialized wxDialUpManager") );
+ wxCHECK_MSG( IsOk(), FALSE, wxT("using uninitialized wxDialUpManager") );
if ( ms_userSpecifiedOnlineStatus != -1 )
{
void wxDialUpManagerMSW::SetOnlineStatus(bool isOnline)
{
- wxCHECK_RET( IsOk(), T("using uninitialized wxDialUpManager") );
+ wxCHECK_RET( IsOk(), wxT("using uninitialized wxDialUpManager") );
ms_userSpecifiedOnlineStatus = isOnline;
}
bool wxDialUpManagerMSW::EnableAutoCheckOnlineStatus(size_t nSeconds)
{
- wxCHECK_MSG( IsOk(), FALSE, T("using uninitialized wxDialUpManager") );
+ wxCHECK_MSG( IsOk(), FALSE, wxT("using uninitialized wxDialUpManager") );
bool ok = ms_pfnRasConnectionNotification != 0;
if ( dwRet != 0 )
{
- wxLogDebug(T("RasConnectionNotification() failed: %s"),
+ wxLogDebug(wxT("RasConnectionNotification() failed: %s"),
GetErrorString(dwRet));
CleanUpThreadData();
void wxDialUpManagerMSW::DisableAutoCheckOnlineStatus()
{
- wxCHECK_RET( IsOk(), T("using uninitialized wxDialUpManager") );
+ wxCHECK_RET( IsOk(), wxT("using uninitialized wxDialUpManager") );
if ( m_hThread )
{
void wxDialUpManagerMSW::SetWellKnownHost(const wxString& WXUNUSED(hostname),
int WXUNUSED(port))
{
- wxCHECK_RET( IsOk(), T("using uninitialized wxDialUpManager") );
+ wxCHECK_RET( IsOk(), wxT("using uninitialized wxDialUpManager") );
// nothing to do - we don't use this
}
void wxDialUpManagerMSW::SetConnectCommand(const wxString& WXUNUSED(dial),
const wxString& WXUNUSED(hangup))
{
- wxCHECK_RET( IsOk(), T("using uninitialized wxDialUpManager") );
+ wxCHECK_RET( IsOk(), wxT("using uninitialized wxDialUpManager") );
// nothing to do - we don't use this
}
{
wxDialUpManagerMSW *dialUpManager = wxDialUpManagerMSW::GetDialer();
- wxCHECK_RET( dialUpManager, T("who started to dial then?") );
+ wxCHECK_RET( dialUpManager, wxT("who started to dial then?") );
SendMessage(dialUpManager->GetRasWindow(), wxWM_RAS_DIALING_PROGRESS,
rasconnstate, dwError);
fh = OpenFile (wxFNCONV(lpFileName), &of, OF_READ);
if (fh == -1) {
- wsprintf(str,T("Can't open file '%s'"), lpFileName);
- MessageBox(NULL, str, T("Error"), MB_ICONSTOP | MB_OK);
+ wsprintf(str,wxT("Can't open file '%s'"), lpFileName);
+ MessageBox(NULL, str, wxT("Error"), MB_ICONSTOP | MB_OK);
return (0);
}
// Begin drag
bool wxDragImage::BeginDrag(const wxPoint& hotspot, wxWindow* WXUNUSED(window))
{
- wxASSERT_MSG( (m_hImageList != 0), T("Image list must not be null in BeginDrag."));
+ wxASSERT_MSG( (m_hImageList != 0), wxT("Image list must not be null in BeginDrag."));
bool ret = (ImageList_BeginDrag((HIMAGELIST) m_hImageList, 0, hotspot.x, hotspot.y) != 0);
- wxASSERT_MSG( (ret), T("BeginDrag failed."));
+ wxASSERT_MSG( (ret), wxT("BeginDrag failed."));
if (!ret)
return FALSE;
// First add the cursor to the image list
int cursorIndex = ImageList_AddIcon((HIMAGELIST) m_hImageList, (HICON) m_cursor.GetHCURSOR());
- wxASSERT_MSG( (cursorIndex != -1), T("ImageList_AddIcon failed in BeginDrag."));
+ wxASSERT_MSG( (cursorIndex != -1), wxT("ImageList_AddIcon failed in BeginDrag."));
if (cursorIndex != -1)
{
// End drag
bool wxDragImage::EndDrag(wxWindow* WXUNUSED(window))
{
- wxASSERT_MSG( (m_hImageList != 0), T("Image list must not be null in EndDrag."));
+ wxASSERT_MSG( (m_hImageList != 0), wxT("Image list must not be null in EndDrag."));
ImageList_EndDrag();
// is non-NULL, or in screen coordinates if NULL.
bool wxDragImage::Move(const wxPoint& pt, wxWindow* window)
{
- wxASSERT_MSG( (m_hImageList != 0), T("Image list must not be null in Move."));
+ wxASSERT_MSG( (m_hImageList != 0), wxT("Image list must not be null in Move."));
// TODO: what coordinates are these in: window, client, or screen?
bool ret = (ImageList_DragMove( pt.x, pt.y ) != 0);
bool wxDragImage::Show(wxWindow* window)
{
- wxASSERT_MSG( (m_hImageList != 0), T("Image list must not be null in Show."));
+ wxASSERT_MSG( (m_hImageList != 0), wxT("Image list must not be null in Show."));
HWND hWnd = 0;
if (window)
bool wxDragImage::Hide(wxWindow* window)
{
- wxASSERT_MSG( (m_hImageList != 0), T("Image list must not be null in Hide."));
+ wxASSERT_MSG( (m_hImageList != 0), wxT("Image list must not be null in Hide."));
HWND hWnd = 0;
if (window)
wxString filter2;
if ( defaultExtension && !filter )
- filter2 = wxString(T("*.")) + defaultExtension;
+ filter2 = wxString(wxT("*.")) + defaultExtension;
else if ( filter )
filter2 = filter;
for( unsigned int i = 0; i < filter2.Len(); i++ )
{
- if( filter2.GetChar(i) == T('|') )
+ if( filter2.GetChar(i) == wxT('|') )
{
// save the start index of the new filter
unsigned int is = i++;
// find the end of the filter
for( ; i < filter2.Len(); i++ )
{
- if(filter2[i] == T('|'))
+ if(filter2[i] == wxT('|'))
break;
}
int y)
{
- wxFileDialog fileDialog(parent, title ? title : T(""), defaultDir ? defaultDir : T(""),
- defaultFileName ? defaultFileName : T(""), filter ? filter : T(""), flags, wxPoint(x, y));
+ wxFileDialog fileDialog(parent, title ? title : wxT(""), defaultDir ? defaultDir : wxT(""),
+ defaultFileName ? defaultFileName : wxT(""), filter ? filter : wxT(""), flags, wxPoint(x, y));
if ( fileDialog.ShowModal() == wxID_OK )
{
m_message = message;
m_dialogStyle = style;
m_parent = parent;
- m_path = T("");
+ m_path = wxT("");
m_fileName = defaultFileName;
m_dir = defaultDir;
m_wildCard = wildCard;
static wxChar fileNameBuffer [ MAXPATH ]; // the file-name
wxChar titleBuffer [ MAXFILE+1+MAXEXT ]; // the file-name, without path
- *fileNameBuffer = T('\0');
- *titleBuffer = T('\0');
+ *fileNameBuffer = wxT('\0');
+ *titleBuffer = wxT('\0');
long msw_flags = 0;
if ( (m_dialogStyle & wxHIDE_READONLY) || (m_dialogStyle & wxSAVE) )
size_t i = 0;
size_t len = m_dir.Length();
for (i = 0; i < len; i++)
- if (m_dir[i] == T('/'))
- m_dir[i] = T('\\');
+ if (m_dir[i] == wxT('/'))
+ m_dir[i] = wxT('\\');
of.lpstrInitialDir = m_dir.c_str();
wxString theFilter;
if ( wxStrlen(m_wildCard) == 0 )
- theFilter = wxString(T("*.*"));
+ theFilter = wxString(wxT("*.*"));
else
theFilter = m_wildCard ;
wxString filterBuffer;
- if ( !wxStrchr( theFilter, T('|') ) ) { // only one filter ==> default text
+ if ( !wxStrchr( theFilter, wxT('|') ) ) { // only one filter ==> default text
filterBuffer.Printf(_("Files (%s)|%s"),
theFilter.c_str(), theFilter.c_str());
}
}
- filterBuffer += T("|");
+ filterBuffer += wxT("|");
// Replace | with \0
for (i = 0; i < filterBuffer.Len(); i++ ) {
- if ( filterBuffer.GetChar(i) == T('|') ) {
- filterBuffer[i] = T('\0');
+ if ( filterBuffer.GetChar(i) == wxT('|') ) {
+ filterBuffer[i] = wxT('\0');
}
}
//=== Setting defaultFileName >>=========================================
wxStrncpy( fileNameBuffer, (const wxChar *)m_fileName, MAXPATH-1 );
- fileNameBuffer[ MAXPATH-1 ] = T('\0');
+ fileNameBuffer[ MAXPATH-1 ] = wxT('\0');
of.lpstrFile = fileNameBuffer; // holds returned filename
of.nMaxFile = MAXPATH;
m_filterIndex = (int)of.nFilterIndex;
- if ( of.nFileExtension && fileNameBuffer[ of.nFileExtension-1] != T('.') )
+ if ( of.nFileExtension && fileNameBuffer[ of.nFileExtension-1] != wxT('.') )
{ // user has typed an filename
// without an extension:
extension = extension + wxStrlen( extension ) +1;
}
- extension = wxStrrchr( extension, T('.') );
+ extension = wxStrrchr( extension, wxT('.') );
if ( extension // != "blabla"
- && !wxStrrchr( extension, T('*') ) // != "blabla.*"
- && !wxStrrchr( extension, T('?') ) // != "blabla.?"
+ && !wxStrrchr( extension, wxT('*') ) // != "blabla.*"
+ && !wxStrrchr( extension, wxT('?') ) // != "blabla.?"
&& extension[1] // != "blabla."
- && extension[1] != T(' ') ) // != "blabla. "
+ && extension[1] != wxT(' ') ) // != "blabla. "
{
// now concat extension to the fileName:
m_fileName = wxString(fileNameBuffer) + extension;
int len = wxStrlen( fileNameBuffer );
wxStrncpy( fileNameBuffer + len, extension, MAXPATH - len );
- fileNameBuffer[ MAXPATH -1 ] = T('\0');
+ fileNameBuffer[ MAXPATH -1 ] = wxT('\0');
}
}
if ( dwErr != 0 )
{
// this msg is only for developers
- wxLogError(T("Common dialog failed with error code %0lx."),
+ wxLogError(wxT("Common dialog failed with error code %0lx."),
dwErr);
}
//else: it was just cancelled
prompt.Printf(str, what);
const wxChar *ext = extension;
- if (*ext == T('.'))
+ if (*ext == wxT('.'))
ext++;
wxString wild;
- wild.Printf(T("*.%s"), ext);
+ wild.Printf(wxT("*.%s"), ext);
return wxFileSelector (prompt, NULL, default_name, ext, wild, 0, parent);
}
{
// VZ: the old code returned FALSE in this case, but it doesn't seem
// to make sense because the font _was_ created
- wxLogDebug(T("Calling wxFont::RealizeResource() twice"));
+ wxLogDebug(wxT("Calling wxFont::RealizeResource() twice"));
return TRUE;
}
{
case wxSCRIPT:
ff_family = FF_SCRIPT ;
- ff_face = T("Script") ;
+ ff_face = wxT("Script") ;
break ;
case wxDECORATIVE:
case wxROMAN:
ff_family = FF_ROMAN;
- ff_face = T("Times New Roman") ;
+ ff_face = wxT("Times New Roman") ;
break;
case wxTELETYPE:
case wxMODERN:
ff_family = FF_MODERN;
- ff_face = T("Courier New") ;
+ ff_face = wxT("Courier New") ;
break;
case wxSWISS:
ff_family = FF_SWISS;
- ff_face = T("Arial") ;
+ ff_face = wxT("Arial") ;
break;
case wxDEFAULT:
default:
ff_family = FF_SWISS;
- ff_face = T("Arial") ;
+ ff_face = wxT("Arial") ;
}
BYTE ff_italic;
break;
default:
- wxFAIL_MSG(T("unknown font slant"));
+ wxFAIL_MSG(wxT("unknown font slant"));
// fall through
case wxNORMAL:
switch ( M_FONTDATA->m_weight )
{
default:
- wxFAIL_MSG(T("unknown font weight"));
+ wxFAIL_MSG(wxT("unknown font weight"));
// fall through
case wxNORMAL:
break;
default:
- wxFAIL_MSG(T("unsupported encoding"));
+ wxFAIL_MSG(wxT("unsupported encoding"));
// fall through
case wxFONTENCODING_SYSTEM:
{
// VZ: calling CreateStatusBar twice is an error - why anyone would do it?
wxCHECK_MSG( m_frameStatusBar == NULL, FALSE,
- T("recreating status bar in wxFrame") );
+ wxT("recreating status bar in wxFrame") );
m_frameStatusBar = OnCreateStatusBar(number, style, id,
name);
void wxFrame::SetStatusText(const wxString& text, int number)
{
- wxCHECK_RET( m_frameStatusBar != NULL, T("no statusbar to set text for") );
+ wxCHECK_RET( m_frameStatusBar != NULL, wxT("no statusbar to set text for") );
m_frameStatusBar->SetStatusText(text, number);
}
void wxFrame::SetStatusWidths(int n, const int widths_field[])
{
- wxCHECK_RET( m_frameStatusBar != NULL, T("no statusbar to set widths for") );
+ wxCHECK_RET( m_frameStatusBar != NULL, wxT("no statusbar to set widths for") );
m_frameStatusBar->SetStatusWidths(n, widths_field);
PositionStatusBar();
return;
}
- wxCHECK_RET( !menu_bar->GetFrame(), T("this menubar is already attached") );
+ wxCHECK_RET( !menu_bar->GetFrame(), wxT("this menubar is already attached") );
if (m_frameMenuBar)
delete m_frameMenuBar;
wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name)
{
wxCHECK_MSG( m_frameToolBar == NULL, FALSE,
- T("recreating toolbar in wxFrame") );
+ wxT("recreating toolbar in wxFrame") );
wxToolBar* toolBar = OnCreateToolBar(style, id, name);
if (toolBar)
msFlags |= ZYZGS_3D;
HWND wx_button =
- CreateWindowEx(MakeExtendedStyle(m_windowStyle), T("zYzGauge"), NULL, msFlags,
+ CreateWindowEx(MakeExtendedStyle(m_windowStyle), wxT("zYzGauge"), NULL, msFlags,
0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId,
wxGetInstance(), NULL);
/* static global variables */
-static wxChar gszzYzGaugeClass[] = T("zYzGauge");
+static wxChar gszzYzGaugeClass[] = wxT("zYzGauge");
/* window word position definitions */
/* Get a DC to determine whether device is mono or not, and set
* default foreground/background colors as appropriate.
*/
- hdc = CreateIC(T("DISPLAY"), NULL, NULL, 0L) ;
+ hdc = CreateIC(wxT("DISPLAY"), NULL, NULL, 0L) ;
if (hdc)
{
/* check for mono-display */
hFont = (HFONT) SelectObject(hdc, pgauge->hFont);
/* build up a string to blit out--ie the meaning of life: "42%" */
- wsprintf(ach, T("%3d%%"), (WORD)((DWORD)iPos * 100 / iRange));
+ wsprintf(ach, wxT("%3d%%"), (WORD)((DWORD)iPos * 100 / iRange));
/* Win32s has no GetTextExtent(); let's try GetTextExtentPoint() instead */
#if defined(__WIN32__)
GetTextExtentPoint(hdc, ach, wGomerX = lstrlen(ach), &size);
bool wxWinHelpController::DisplayContents(void)
{
- if (m_helpFile == T("")) return FALSE;
+ if (m_helpFile == wxT("")) return FALSE;
wxString str = m_helpFile;
size_t len = str.Length();
- if (!(str[(size_t)(len-1)] == T('p') && str[(size_t)(len-2)] == T('l') && str[(size_t)(len-3)] == T('h') && str[(size_t)(len-4)] == T('.')))
- str += T(".hlp");
+ if (!(str[(size_t)(len-1)] == wxT('p') && str[(size_t)(len-2)] == wxT('l') && str[(size_t)(len-3)] == wxT('h') && str[(size_t)(len-4)] == wxT('.')))
+ str += wxT(".hlp");
if (wxTheApp->GetTopWindow())
{
bool wxWinHelpController::DisplaySection(int section)
{
// Use context number
- if (m_helpFile == T("")) return FALSE;
+ if (m_helpFile == wxT("")) return FALSE;
wxString str = m_helpFile;
size_t len = str.Length();
- if (!(str[(size_t)(len-1)] == T('p') && str[(size_t)(len-2)] == T('l') && str[(size_t)(len-3)] == T('h') && str[(size_t)(len-4)] == T('.')))
- str += T(".hlp");
+ if (!(str[(size_t)(len-1)] == wxT('p') && str[(size_t)(len-2)] == wxT('l') && str[(size_t)(len-3)] == wxT('h') && str[(size_t)(len-4)] == wxT('.')))
+ str += wxT(".hlp");
if (wxTheApp->GetTopWindow())
{
bool wxWinHelpController::DisplayBlock(long block)
{
// Use context number -- a very rough equivalent to block id!
- if (m_helpFile == T("")) return FALSE;
+ if (m_helpFile == wxT("")) return FALSE;
wxString str = m_helpFile;
size_t len = str.Length();
if (!(str[(size_t)(len-1)] == 'p' && str[(size_t)(len-2)] == 'l' && str[(size_t)(len-3)] == 'h' && str[(size_t)(len-4)] == '.'))
- str += T(".hlp");
+ str += wxT(".hlp");
if (wxTheApp->GetTopWindow())
{
bool wxWinHelpController::KeywordSearch(const wxString& k)
{
- if (m_helpFile == T("")) return FALSE;
+ if (m_helpFile == wxT("")) return FALSE;
wxString str = m_helpFile;
size_t len = str.Length();
- if (!(str[(size_t)(len-1)] == T('p') && str[(size_t)(len-2)] == T('l') && str[(size_t)(len-3)] == T('h') && str[(size_t)(len-4)] == T('.')))
- str += T(".hlp");
+ if (!(str[(size_t)(len-1)] == wxT('p') && str[(size_t)(len-2)] == wxT('l') && str[(size_t)(len-3)] == wxT('h') && str[(size_t)(len-4)] == wxT('.')))
+ str += wxT(".hlp");
if (wxTheApp->GetTopWindow())
{
event.m_commandInt = aSelections[0] ;
event.m_clientData = GetClientData(event.m_commandInt);
wxString str(GetString(event.m_commandInt));
- if (str != T(""))
+ if (str != wxT(""))
{
event.m_commandString = str;
}
wstyle |= WS_BORDER;
}
- m_hWnd = (WXHWND)::CreateWindowEx(exStyle, T("LISTBOX"), NULL,
+ m_hWnd = (WXHWND)::CreateWindowEx(exStyle, wxT("LISTBOX"), NULL,
wstyle | WS_CHILD,
0, 0, 0, 0,
(HWND)parent->GetHWND(), (HMENU)m_windowId,
wxGetInstance(), NULL);
- wxCHECK_MSG( m_hWnd, FALSE, T("Failed to create listbox") );
+ wxCHECK_MSG( m_hWnd, FALSE, wxT("Failed to create listbox") );
#if wxUSE_CTL3D
if (want3D)
void wxListBox::SetFirstItem(int N)
{
wxCHECK_RET( N >= 0 && N < m_noItems,
- T("invalid index in wxListBox::SetFirstItem") );
+ wxT("invalid index in wxListBox::SetFirstItem") );
SendMessage(GetHwnd(),LB_SETTOPINDEX,(WPARAM)N,(LPARAM)0) ;
}
void wxListBox::Delete(int N)
{
wxCHECK_RET( N >= 0 && N < m_noItems,
- T("invalid index in wxListBox::Delete") );
+ wxT("invalid index in wxListBox::Delete") );
SendMessage(GetHwnd(), LB_DELETESTRING, N, 0);
m_noItems--;
if ( m_windowStyle & wxLB_OWNERDRAW ) {
// client data must be pointer to wxOwnerDrawn, otherwise we would crash
// in OnMeasure/OnDraw.
- wxFAIL_MSG(T("Can't use client data with owner-drawn listboxes"));
+ wxFAIL_MSG(wxT("Can't use client data with owner-drawn listboxes"));
}
else
#endif
ListBox_SetItemData(GetHwnd(), ui, pNewItem);
wxASSERT_MSG(clientData[ui] == NULL,
- T("Can't use client data with owner-drawn listboxes"));
+ wxT("Can't use client data with owner-drawn listboxes"));
}
}
#endif
void wxListBox::SetSelection(int N, bool select)
{
wxCHECK_RET( N >= 0 && N < m_noItems,
- T("invalid index in wxListBox::SetSelection") );
+ wxT("invalid index in wxListBox::SetSelection") );
if ((m_windowStyle & wxLB_MULTIPLE) || (m_windowStyle & wxLB_EXTENDED))
SendMessage(GetHwnd(), LB_SETSEL, select, N);
bool wxListBox::Selected(int N) const
{
wxCHECK_MSG( N >= 0 && N < m_noItems, FALSE,
- T("invalid index in wxListBox::Selected") );
+ wxT("invalid index in wxListBox::Selected") );
return SendMessage(GetHwnd(), LB_GETSEL, N, 0) == 0 ? FALSE : TRUE;
}
void wxListBox::Deselect(int N)
{
wxCHECK_RET( N >= 0 && N < m_noItems,
- T("invalid index in wxListBox::Deselect") );
+ wxT("invalid index in wxListBox::Deselect") );
if ((m_windowStyle & wxLB_MULTIPLE) || (m_windowStyle & wxLB_EXTENDED))
SendMessage(GetHwnd(), LB_SETSEL, FALSE, N);
void *wxListBox::GetClientData(int N) const
{
wxCHECK_MSG( N >= 0 && N < m_noItems, NULL,
- T("invalid index in wxListBox::GetClientData") );
+ wxT("invalid index in wxListBox::GetClientData") );
return (void *)SendMessage(GetHwnd(), LB_GETITEMDATA, N, 0);
}
void wxListBox::SetClientData(int N, void *Client_data)
{
wxCHECK_RET( N >= 0 && N < m_noItems,
- T("invalid index in wxListBox::SetClientData") );
+ wxT("invalid index in wxListBox::SetClientData") );
if ( ListBox_SetItemData(GetHwnd(), N, Client_data) == LB_ERR )
- wxLogDebug(T("LB_SETITEMDATA failed"));
+ wxLogDebug(wxT("LB_SETITEMDATA failed"));
}
// Return number of selections and an array of selected integers
if (no_sel != 0) {
int *selections = new int[no_sel];
if ( ListBox_GetSelItems(GetHwnd(), no_sel, selections) == LB_ERR ) {
- wxFAIL_MSG(T("This listbox can't have single-selection style!"));
+ wxFAIL_MSG(wxT("This listbox can't have single-selection style!"));
}
aSelections.Alloc(no_sel);
wxCHECK_MSG( !(m_windowStyle & wxLB_MULTIPLE) &&
!(m_windowStyle & wxLB_EXTENDED),
-1,
- T("GetSelection() can't be used with multiple-selection "
+ wxT("GetSelection() can't be used with multiple-selection "
"listboxes, use GetSelections() instead.") );
return ListBox_GetCurSel(GetHwnd());
wxString wxListBox::GetString(int N) const
{
wxCHECK_MSG( N >= 0 && N < m_noItems, "",
- T("invalid index in wxListBox::GetClientData") );
+ wxT("invalid index in wxListBox::GetClientData") );
int len = ListBox_GetTextLen(GetHwnd(), N);
return;
TEXTMETRIC lpTextMetric;
- if (s != T(""))
+ if (s != wxT(""))
{
int existingExtent = (int)SendMessage(GetHwnd(), LB_GETHORIZONTALEXTENT, 0, 0L);
HDC dc = GetWindowDC(GetHwnd());
wxListBox::InsertItems(int nItems, const wxString items[], int pos)
{
wxCHECK_RET( pos >= 0 && pos <= m_noItems,
- T("invalid index in wxListBox::InsertItems") );
+ wxT("invalid index in wxListBox::InsertItems") );
int i;
for (i = 0; i < nItems; i++)
ListBox_InsertString(GetHwnd(), i + pos, items[i]);
m_noItems += nItems;
- SetHorizontalExtent(T(""));
+ SetHorizontalExtent(wxT(""));
}
void wxListBox::SetString(int N, const wxString& s)
{
wxCHECK_RET( N >= 0 && N < m_noItems,
- T("invalid index in wxListBox::SetString") );
+ wxT("invalid index in wxListBox::SetString") );
int sel = -1;
if (!(m_windowStyle & wxLB_MULTIPLE) && !(m_windowStyle & wxLB_EXTENDED))
MEASUREITEMSTRUCT *pStruct = (MEASUREITEMSTRUCT *)item;
wxDC dc;
- dc.SetHDC((WXHDC)CreateIC(T("DISPLAY"), NULL, NULL, 0));
+ dc.SetHDC((WXHDC)CreateIC(wxT("DISPLAY"), NULL, NULL, 0));
dc.SetFont(wxSystemSettings::GetSystemFont(wxSYS_ANSI_VAR_FONT));
pStruct->itemHeight = dc.GetCharHeight() + 2*OWNER_DRAWN_LISTBOX_EXTRA_SPACE;
// Create the ListView control.
m_hWnd = (WXHWND)CreateWindowEx(exStyle,
WC_LISTVIEW,
- T(""),
+ wxT(""),
wstyle,
x, y, w, h,
GetWinHwnd(GetParent()),
if ( !m_hWnd )
{
- wxLogError(T("Can't create list control window."));
+ wxLogError(wxT("Can't create list control window."));
return FALSE;
}
m_colCount--;
}
- wxASSERT_MSG( m_colCount == 0, T("no columns should be left") );
+ wxASSERT_MSG( m_colCount == 0, wxT("no columns should be left") );
return TRUE;
}
}
else
{
- wxLogDebug(T("Failed to insert the column '%s' into listview!"),
+ wxLogDebug(wxT("Failed to insert the column '%s' into listview!"),
lvCol.pszText);
}
int width = size.x;
int height = size.y;
- m_windowMenu = (WXHMENU) ::LoadMenu(wxGetInstance(), T("wxWindowMenu"));
+ m_windowMenu = (WXHMENU) ::LoadMenu(wxGetInstance(), wxT("wxWindowMenu"));
DWORD msflags = WS_OVERLAPPED;
if (style & wxMINIMIZE_BOX)
{
// this shouldn't happen because it means that our messages are being
// lost (they're not sent to the parent frame nor to the children)
- wxFAIL_MSG(T("MDI parent frame is not active, "
+ wxFAIL_MSG(wxT("MDI parent frame is not active, "
"yet there is no active MDI child?"));
}
else if ( m_hWnd == hwndDeact )
{
wxASSERT_MSG( parent->m_currentChild == this,
- T("can't deactivate MDI child which wasn't active!") );
+ wxT("can't deactivate MDI child which wasn't active!") );
activated = FALSE;
parent->m_currentChild = NULL;
m_hWnd = (WXHWND)::CreateWindowEx
(
exStyle,
- T("MDICLIENT"),
+ wxT("MDICLIENT"),
NULL,
msStyle,
0, 0, 0, 0,
// update menu bar of the parent window
wxWindow *parent = win->GetParent();
- wxCHECK_RET( parent, T("MDI client without parent frame? weird...") );
+ wxCHECK_RET( parent, wxT("MDI client without parent frame? weird...") );
::DrawMenuBar(GetWinHwnd(parent));
}
int chars = GetMenuString(hmenu, i, buf, WXSIZEOF(buf), MF_BYPOSITION);
if ( chars == 0 )
{
- wxLogLastError(T("GetMenuString"));
+ wxLogLastError(wxT("GetMenuString"));
continue;
}
- if ( wxStripMenuCodes(wxString(buf)).IsSameAs(T("Help")) )
+ if ( wxStripMenuCodes(wxString(buf)).IsSameAs(wxT("Help")) )
{
success = TRUE;
::InsertMenu(hmenu, i, MF_BYPOSITION | MF_POPUP | MF_STRING,
- (UINT)subMenu, T("&Window"));
+ (UINT)subMenu, wxT("&Window"));
break;
}
}
if ( !success )
{
- ::AppendMenu(hmenu, MF_POPUP, (UINT)subMenu, T("&Window"));
+ ::AppendMenu(hmenu, MF_POPUP, (UINT)subMenu, wxT("&Window"));
}
MDISetMenu(win, hmenu, subMenu);
// function appends a new item or submenu to the menu
void wxMenu::Append(wxMenuItem *pItem)
{
- wxCHECK_RET( pItem != NULL, T("can't append NULL item to the menu") );
+ wxCHECK_RET( pItem != NULL, wxT("can't append NULL item to the menu") );
#if wxUSE_ACCEL
// check for accelerators: they are given after '\t'
wxString label = pItem->GetName();
- int posTab = label.Find(T('\t'));
+ int posTab = label.Find(wxT('\t'));
if ( posTab != wxNOT_FOUND ) {
// parse the accelerator string
int keyCode = 0;
else if ( current == _("shift") )
accelFlags |= wxACCEL_SHIFT;
else {
- wxLogDebug(T("Unknown accel modifier: '%s'"),
+ wxLogDebug(wxT("Unknown accel modifier: '%s'"),
current.c_str());
}
}
if ( current.IsEmpty() ) {
- wxLogDebug(T("No accel key found, accel string ignored."));
+ wxLogDebug(wxT("No accel key found, accel string ignored."));
}
else {
if ( current.Len() == 1 ) {
(current.Len() == 2 ||
(current.Len() == 3 && isdigit(current[2U]))) ) {
int n;
- wxSscanf(current.c_str() + 1, T("%d"), &n);
+ wxSscanf(current.c_str() + 1, wxT("%d"), &n);
keyCode = VK_F1 + n - 1;
}
else {
- wxLogDebug(T("Unrecognized accel key '%s', accel "
+ wxLogDebug(wxT("Unrecognized accel key '%s', accel "
"string ignored."), current.c_str());
}
}
if ( !SetMenuItemInfo(GetHmenu(), (unsigned)id, FALSE, &mii) )
{
- wxLogLastError(T("SetMenuItemInfo"));
+ wxLogLastError(wxT("SetMenuItemInfo"));
}
}
#endif // __WIN32__
break;
}
- wxCHECK_RET( node, T("wxMenu::Delete(): item doesn't exist") );
+ wxCHECK_RET( node, wxT("wxMenu::Delete(): item doesn't exist") );
HMENU menu = GetHmenu();
void wxMenu::Enable(int id, bool Flag)
{
wxMenuItem *item = FindItemForId(id);
- wxCHECK_RET( item != NULL, T("can't enable non-existing menu item") );
+ wxCHECK_RET( item != NULL, wxT("can't enable non-existing menu item") );
item->Enable(Flag);
}
bool wxMenu::IsEnabled(int id) const
{
wxMenuItem *item = FindItemForId(id);
- wxCHECK_MSG( item != NULL, FALSE, T("invalid item id") );
+ wxCHECK_MSG( item != NULL, FALSE, wxT("invalid item id") );
return item->IsEnabled();
}
void wxMenu::Check(int id, bool Flag)
{
wxMenuItem *item = FindItemForId(id);
- wxCHECK_RET( item != NULL, T("can't get status of non-existing menu item") );
+ wxCHECK_RET( item != NULL, wxT("can't get status of non-existing menu item") );
item->Check(Flag);
}
bool wxMenu::IsChecked(int id) const
{
wxMenuItem *item = FindItemForId(id);
- wxCHECK_MSG( item != NULL, FALSE, T("invalid item id") );
+ wxCHECK_MSG( item != NULL, FALSE, wxT("invalid item id") );
return item->IsChecked();
}
void wxMenu::SetLabel(int id, const wxString& label)
{
wxMenuItem *item = FindItemForId(id) ;
- wxCHECK_RET( item, T("wxMenu::SetLabel: no such item") );
+ wxCHECK_RET( item, wxT("wxMenu::SetLabel: no such item") );
item->SetName(label);
}
if (pItem)
label = pItem->GetName() ;
else
- wxFAIL_MSG(T("wxMenu::GetLabel: item doesn't exist"));
+ wxFAIL_MSG(wxT("wxMenu::GetLabel: item doesn't exist"));
return label;
}
if (item)
item->SetHelp(helpString);
else
- wxFAIL_MSG(T("wxMenu::SetHelpString: item doesn't exist"));
+ wxFAIL_MSG(wxT("wxMenu::SetHelpString: item doesn't exist"));
}
wxString wxMenu::GetHelpString (int itemId) const
if (item)
help = item->GetHelp();
else
- wxFAIL_MSG(T("wxMenu::GetHelpString: item doesn't exist"));
+ wxFAIL_MSG(wxT("wxMenu::GetHelpString: item doesn't exist"));
return help;
}
(unsigned)idMenuTitle, m_title) ||
!InsertMenu(hMenu, 1u, MF_BYPOSITION, (unsigned)-1, NULL) )
{
- wxLogLastError(T("InsertMenu"));
+ wxLogLastError(wxT("InsertMenu"));
}
}
}
{
// menu can be in at most one menubar because otherwise they would both
// delete the menu pointer
- wxASSERT_MSG( !m_menuBar, T("menu belongs to 2 menubars, expect a crash") );
+ wxASSERT_MSG( !m_menuBar, wxT("menu belongs to 2 menubars, expect a crash") );
m_menuBar = menubar;
m_savehMenu = m_hMenu;
void wxMenu::Detach()
{
- wxASSERT_MSG( m_menuBar, T("can't detach menu if it's not attached") );
+ wxASSERT_MSG( m_menuBar, wxT("can't detach menu if it's not attached") );
m_hMenu = m_savehMenu;
m_savehMenu = 0;
void wxMenuBar::Refresh()
{
- wxCHECK_RET( m_menuBarFrame, T("can't refresh a menubar withotu a frame") );
+ wxCHECK_RET( m_menuBarFrame, wxT("can't refresh a menubar withotu a frame") );
DrawMenuBar((HWND)m_menuBarFrame->GetHWND()) ;
}
if (m_hMenu != 0 )
return m_hMenu;
- wxCHECK_MSG( !m_hMenu, TRUE, T("menubar already created") );
+ wxCHECK_MSG( !m_hMenu, TRUE, wxT("menubar already created") );
m_hMenu = (WXHMENU)::CreateMenu();
wxMenu *itemMenu = NULL;
wxMenuItem *item = FindItemForId(id, &itemMenu) ;
- wxCHECK_RET( item, T("attempt to enable an item which doesn't exist") );
+ wxCHECK_RET( item, wxT("attempt to enable an item which doesn't exist") );
item->Enable(enable);
}
wxMenu *itemMenu = NULL;
wxMenuItem *item = FindItemForId(id, &itemMenu) ;
- wxCHECK_RET( item, T("attempt to check an item which doesn't exist") );
- wxCHECK_RET( item->IsCheckable(), T("attempt to check an uncheckable item") );
+ wxCHECK_RET( item, wxT("attempt to check an item which doesn't exist") );
+ wxCHECK_RET( item->IsCheckable(), wxT("attempt to check an uncheckable item") );
item->Check(check);
}
wxMenu *itemMenu = NULL;
wxMenuItem *item = FindItemForId(id, &itemMenu) ;
- wxCHECK_MSG( item, FALSE, T("wxMenuBar::IsChecked(): no such item") );
+ wxCHECK_MSG( item, FALSE, wxT("wxMenuBar::IsChecked(): no such item") );
int flag = ::GetMenuState(GetHmenuOf(itemMenu), id, MF_BYCOMMAND);
wxMenu *itemMenu = NULL;
wxMenuItem *item = FindItemForId(id, &itemMenu) ;
- wxCHECK_MSG( item, FALSE, T("wxMenuBar::IsEnabled(): no such item") );
+ wxCHECK_MSG( item, FALSE, wxT("wxMenuBar::IsEnabled(): no such item") );
int flag = ::GetMenuState(GetHmenuOf(itemMenu), id, MF_BYCOMMAND) ;
wxMenu *itemMenu = NULL;
wxMenuItem *item = FindItemForId(id, &itemMenu) ;
- wxCHECK_RET( item, T("wxMenuBar::SetLabel(): no such item") );
+ wxCHECK_RET( item, wxT("wxMenuBar::SetLabel(): no such item") );
item->SetName(label);
}
wxMenu *itemMenu = NULL;
wxMenuItem *item = FindItemForId(id, &itemMenu) ;
- wxCHECK_MSG( item, T(""), T("wxMenuBar::GetLabel(): no such item") );
+ wxCHECK_MSG( item, wxT(""), wxT("wxMenuBar::GetLabel(): no such item") );
return item->GetName();
}
wxMenu *itemMenu = NULL;
wxMenuItem *item = FindItemForId(id, &itemMenu) ;
- wxCHECK_RET( item, T("wxMenuBar::SetHelpString(): no such item") );
+ wxCHECK_RET( item, wxT("wxMenuBar::SetHelpString(): no such item") );
item->SetHelp(helpString);
}
wxMenu *itemMenu = NULL;
wxMenuItem *item = FindItemForId(id, &itemMenu) ;
- wxCHECK_MSG( item, T(""), T("wxMenuBar::GetHelpString(): no such item") );
+ wxCHECK_MSG( item, wxT(""), wxT("wxMenuBar::GetHelpString(): no such item") );
return item->GetHelp();
}
UINT flagsOld = ::GetMenuState((HMENU)m_hMenu, pos, MF_BYPOSITION);
if ( flagsOld == 0xFFFFFFFF )
{
- wxLogLastError(T("GetMenuState"));
+ wxLogLastError(wxT("GetMenuState"));
return;
}
if ( ::RemoveMenu((HMENU)m_hMenu, (UINT)pos, MF_BYPOSITION) )
{
// VZ: I'm not sure about what's going on here, so I leave an assert
- wxASSERT_MSG( m_menus[pos] == a_menu, T("what is this parameter for??") );
+ wxASSERT_MSG( m_menus[pos] == a_menu, wxT("what is this parameter for??") );
a_menu->Detach();
if ( !::AppendMenu(GetHmenu(), MF_POPUP | MF_STRING,
(UINT)submenu, title) )
{
- wxLogLastError(T("AppendMenu"));
+ wxLogLastError(wxT("AppendMenu"));
}
Refresh();
new_menus[i] = m_menus[i];
m_menus[i] = NULL;
new_titles[i] = m_titles[i];
- m_titles[i] = T("");
+ m_titles[i] = wxT("");
}
new_menus[pos] = (wxMenu *)menu;
new_menus[i] = m_menus[i-1];
m_menus[i-1] = NULL;
new_titles[i] = m_titles[i-1];
- m_titles[i-1] = T("");
+ m_titles[i-1] = wxT("");
}
if (m_menus)
{
new_menus[i] = m_menus[i];
m_menus[i] = NULL;
new_titles[i] = m_titles[i];
- m_titles[i] = T("");
+ m_titles[i] = wxT("");
}
if (m_menus)
{
void wxMenuBar::Attach(wxFrame *frame)
{
- wxASSERT_MSG( !m_menuBarFrame, T("menubar already attached!") );
+ wxASSERT_MSG( !m_menuBarFrame, wxT("menubar already attached!") );
m_menuBarFrame = frame;
else if ( m_savehMenu != 0 )
return m_savehMenu;
- wxFAIL_MSG(T("wxMenu without HMENU"));
+ wxFAIL_MSG(wxT("wxMenu without HMENU"));
return 0;
}
#endif //owner drawn
m_strHelp(strHelp)
{
- wxASSERT_MSG( pParentMenu != NULL, T("a menu item should have a parent") );
+ wxASSERT_MSG( pParentMenu != NULL, wxT("a menu item should have a parent") );
#if wxUSE_OWNER_DRAWN
// set default menu colors
void wxMenuItem::Check(bool bDoCheck)
{
- wxCHECK_RET( IsCheckable(), T("only checkable items may be checked") );
+ wxCHECK_RET( IsCheckable(), wxT("only checkable items may be checked") );
if ( m_bChecked != bDoCheck ) {
long rc = CheckMenuItem(GetHMenuOf(m_pParentMenu),
MF_BYCOMMAND | flagsOld,
id, data) == 0xFFFFFFFF )
{
- wxLogLastError(T("ModifyMenu"));
+ wxLogLastError(wxT("ModifyMenu"));
}
}
}
M_METAFILEDATA->m_windowsMappingMode = wxMM_ANISOTROPIC;
M_METAFILEDATA->m_metafile = 0;
- if (!file.IsNull() && (file.Cmp(T("")) == 0))
+ if (!file.IsNull() && (file.Cmp(wxT("")) == 0))
M_METAFILEDATA->m_metafile = (WXHANDLE) GetMetaFile(file);
}
if (!file.IsNull() && wxFileExists(file))
wxRemoveFile(file);
- if (!file.IsNull() && (file != T("")))
+ if (!file.IsNull() && (file != wxT("")))
m_hDC = (WXHDC) CreateMetaFile(file);
else
m_hDC = (WXHDC) CreateMetaFile(NULL);
m_minY = 10000;
m_maxX = -10000;
m_maxY = -10000;
- if (file != T("") && wxFileExists(file)) wxRemoveFile(file);
+ if (file != wxT("") && wxFileExists(file)) wxRemoveFile(file);
m_hDC = (WXHDC) CreateMetaFile(file);
m_ok = TRUE;
if (!fd) return FALSE;
wxChar tempFileBuf[256];
- wxGetTempFileName(T("mf"), tempFileBuf);
+ wxGetTempFileName(wxT("mf"), tempFileBuf);
FILE *fHandle = fopen(wxConvFile.cWX2MB(tempFileBuf), "wb");
if (!fHandle)
return FALSE;
#define HASCAPTION( hwnd ) (TestWinStyle( hwnd, IBS_VERTCAPTION ) ||\
TestWinStyle( hwnd, IBS_HORZCAPTION ))
-#define SETCAPTIONSIZE(h,i) (UINT)SetProp(h,T("ibSize"),(HANDLE)i)
-#define GETCAPTIONSIZE(h) (UINT)GetProp(h,T("ibSize"))
-#define FREECAPTIONSIZE(h) RemoveProp(h,T("ibSize"))
+#define SETCAPTIONSIZE(h,i) (UINT)SetProp(h,wxT("ibSize"),(HANDLE)i)
+#define GETCAPTIONSIZE(h) (UINT)GetProp(h,wxT("ibSize"))
+#define FREECAPTIONSIZE(h) RemoveProp(h,wxT("ibSize"))
-#define SETMENUWASUPFLAG(h,i) (UINT)SetProp(h,T("ibFlag"),(HANDLE)i)
-#define GETMENUWASUPFLAG(h) (UINT)GetProp(h,T("ibFlag"))
-#define FREEMENUWASUPFLAG(h) RemoveProp(h,T("ibFlag"))
+#define SETMENUWASUPFLAG(h,i) (UINT)SetProp(h,wxT("ibFlag"),(HANDLE)i)
+#define GETMENUWASUPFLAG(h) (UINT)GetProp(h,wxT("ibFlag"))
+#define FREEMENUWASUPFLAG(h) RemoveProp(h,wxT("ibFlag"))
/////////////////////////////////////////////////////////////////////
// Little known fact:
{
// VZ: I don't know what should be here, but the vars must
// be inited!
- wxFAIL_MSG(T("don't know how to initialize cx, cy"));
+ wxFAIL_MSG(wxT("don't know how to initialize cx, cy"));
cx = cy = 0;
}
{
// Can only rotate true type fonts (well, ok, we could
// try and use "modern").
- wxStrcpy( lf.lfFaceName, T("Arial") ) ;
+ wxStrcpy( lf.lfFaceName, wxT("Arial") ) ;
lf.lfPitchAndFamily = FF_SWISS | 0x04;
lf.lfEscapement = 900 ;
wxWindow* win = NULL;
- if (str == T("BUTTON"))
+ if (str == wxT("BUTTON"))
{
int style1 = (style & 0xFF);
if ((style1 == BS_3STATE) || (style1 == BS_AUTO3STATE) || (style1 == BS_AUTOCHECKBOX) ||
{
// TODO: how to find the bitmap?
win = new wxBitmapButton;
- wxLogError(T("Have not yet implemented bitmap button as BS_BITMAP button."));
+ wxLogError(wxT("Have not yet implemented bitmap button as BS_BITMAP button."));
}
#endif
else if (style1 == BS_OWNERDRAW)
}
else
{
- wxLogError(T("Don't know what kind of button this is: id = %d"),
+ wxLogError(wxT("Don't know what kind of button this is: id = %d"),
id);
}
}
- else if (str == T("COMBOBOX"))
+ else if (str == wxT("COMBOBOX"))
{
win = new wxComboBox;
}
// for correct functioning.
// Could have wxWindow::AdoptAttributesFromHWND(WXHWND)
// to be overridden by each control class.
- else if (str == T("EDIT"))
+ else if (str == wxT("EDIT"))
{
win = new wxTextCtrl;
}
- else if (str == T("LISTBOX"))
+ else if (str == wxT("LISTBOX"))
{
win = new wxListBox;
}
- else if (str == T("SCROLLBAR"))
+ else if (str == wxT("SCROLLBAR"))
{
win = new wxScrollBar;
}
#if defined(__WIN95__) && !defined(__TWIN32__)
- else if (str == T("MSCTLS_UPDOWN32"))
+ else if (str == wxT("MSCTLS_UPDOWN32"))
{
win = new wxSpinButton;
}
#endif
- else if (str == T("MSCTLS_TRACKBAR32"))
+ else if (str == wxT("MSCTLS_TRACKBAR32"))
{
// Need to ascertain if it's horiz or vert
win = new wxSlider;
}
- else if (str == T("STATIC"))
+ else if (str == wxT("STATIC"))
{
int style1 = (style & 0xFF);
win = new wxStaticBitmap;
// Help! this doesn't correspond with the wxWin implementation.
- wxLogError(T("Please make SS_BITMAP statics into owner-draw buttons."));
+ wxLogError(wxT("Please make SS_BITMAP statics into owner-draw buttons."));
}
#endif
}
else
{
- wxString msg(T("Don't know how to convert from Windows class "));
+ wxString msg(wxT("Don't know how to convert from Windows class "));
msg += str;
wxLogError(msg);
}
int wxNotebook::SetSelection(int nPage)
{
- wxCHECK_MSG( IS_VALID_PAGE(nPage), -1, T("notebook page out of range") );
+ wxCHECK_MSG( IS_VALID_PAGE(nPage), -1, wxT("notebook page out of range") );
ChangePage(m_nSelection, nPage);
bool wxNotebook::SetPageText(int nPage, const wxString& strText)
{
- wxCHECK_MSG( IS_VALID_PAGE(nPage), FALSE, T("notebook page out of range") );
+ wxCHECK_MSG( IS_VALID_PAGE(nPage), FALSE, wxT("notebook page out of range") );
TC_ITEM tcItem;
tcItem.mask = TCIF_TEXT;
wxString wxNotebook::GetPageText(int nPage) const
{
- wxCHECK_MSG( IS_VALID_PAGE(nPage), T(""), T("notebook page out of range") );
+ wxCHECK_MSG( IS_VALID_PAGE(nPage), wxT(""), wxT("notebook page out of range") );
wxChar buf[256];
TC_ITEM tcItem;
int wxNotebook::GetPageImage(int nPage) const
{
- wxCHECK_MSG( IS_VALID_PAGE(nPage), -1, T("notebook page out of range") );
+ wxCHECK_MSG( IS_VALID_PAGE(nPage), -1, wxT("notebook page out of range") );
TC_ITEM tcItem;
tcItem.mask = TCIF_IMAGE;
bool wxNotebook::SetPageImage(int nPage, int nImage)
{
- wxCHECK_MSG( IS_VALID_PAGE(nPage), FALSE, T("notebook page out of range") );
+ wxCHECK_MSG( IS_VALID_PAGE(nPage), FALSE, wxT("notebook page out of range") );
TC_ITEM tcItem;
tcItem.mask = TCIF_IMAGE;
// remove one page from the notebook
bool wxNotebook::DeletePage(int nPage)
{
- wxCHECK_MSG( IS_VALID_PAGE(nPage), FALSE, T("notebook page out of range") );
+ wxCHECK_MSG( IS_VALID_PAGE(nPage), FALSE, wxT("notebook page out of range") );
if ( m_nSelection == nPage ) {
// advance selection backwards - the page being deleted shouldn't be left
// remove one page from the notebook, without deleting
bool wxNotebook::RemovePage(int nPage)
{
- wxCHECK_MSG( IS_VALID_PAGE(nPage), FALSE, T("notebook page out of range") );
+ wxCHECK_MSG( IS_VALID_PAGE(nPage), FALSE, wxT("notebook page out of range") );
TabCtrl_DeleteItem(m_hwnd, nPage);
}
if ( TabCtrl_InsertItem(m_hwnd, nPage, &tcItem) == -1 ) {
- wxLogError(T("Can't create the notebook page '%s'."), strText.c_str());
+ wxLogError(wxT("Can't create the notebook page '%s'."), strText.c_str());
return FALSE;
}
wxVariant retVariant;
if (Invoke(property, DISPATCH_PROPERTYGET, retVariant, noArgs, args))
{
- if (retVariant.GetType() == T("void*"))
+ if (retVariant.GetType() == wxT("void*"))
{
return (WXIDISPATCH*) retVariant.GetVoidPtr();
}
if (FAILED(CLSIDFromProgID((BSTR) unicodeName, &clsId)))
{
- wxLogWarning(T("Cannot obtain CLSID from ProgID"));
+ wxLogWarning(wxT("Cannot obtain CLSID from ProgID"));
return FALSE;
}
if (FAILED(GetActiveObject(clsId, NULL, &pUnk)))
{
- wxLogWarning(T("Cannot find an active object"));
+ wxLogWarning(wxT("Cannot find an active object"));
return FALSE;
}
if (pUnk->QueryInterface(IID_IDispatch, (LPVOID*) &m_dispatchPtr) != S_OK)
{
- wxLogWarning(T("Cannot find IDispatch interface"));
+ wxLogWarning(wxT("Cannot find IDispatch interface"));
return FALSE;
}
if (FAILED(CLSIDFromProgID((BSTR) unicodeName, &clsId)))
{
- wxLogWarning(T("Cannot obtain CLSID from ProgID"));
+ wxLogWarning(wxT("Cannot obtain CLSID from ProgID"));
return FALSE;
}
// start a new copy of Excel, grab the IDispatch interface
if (FAILED(CoCreateInstance(clsId, NULL, CLSCTX_LOCAL_SERVER, IID_IDispatch, (void**)&m_dispatchPtr)))
{
- wxLogWarning(T("Cannot start an instance of this class."));
+ wxLogWarning(wxT("Cannot start an instance of this class."));
return FALSE;
}
wxString type(variant.GetType());
- if (type == T("long"))
+ if (type == wxT("long"))
{
oleVariant.vt = VT_I4;
oleVariant.lVal = variant.GetLong() ;
}
- else if (type == T("double"))
+ else if (type == wxT("double"))
{
oleVariant.vt = VT_R8;
oleVariant.dblVal = variant.GetDouble();
}
- else if (type == T("bool"))
+ else if (type == wxT("bool"))
{
oleVariant.vt = VT_BOOL;
// 'bool' required for VC++ 4 apparently
oleVariant.boolVal = variant.GetBool();
#endif
}
- else if (type == T("string"))
+ else if (type == wxT("string"))
{
wxString str( variant.GetString() );
oleVariant.vt = VT_BSTR;
oleVariant.bstrVal = ConvertStringToOle(str);
}
- else if (type == T("date"))
+ else if (type == wxT("date"))
{
wxDate date( variant.GetDate() );
oleVariant.vt = VT_DATE;
0, 0, 0, oleVariant.date))
return FALSE;
}
- else if (type == T("time"))
+ else if (type == wxT("time"))
{
wxTime time( variant.GetTime() );
oleVariant.vt = VT_DATE;
time.GetHour(), time.GetMinute(), time.GetSecond(), oleVariant.date))
return FALSE;
}
- else if (type == T("void*"))
+ else if (type == wxT("void*"))
{
oleVariant.vt = VT_DISPATCH;
oleVariant.pdispVal = (IDispatch*) variant.GetVoidPtr();
}
- else if (type == T("list") || type == T("stringlist"))
+ else if (type == wxT("list") || type == wxT("stringlist"))
{
oleVariant.vt = VT_VARIANT | VT_ARRAY;
}
default:
{
- wxLogError(T("wxAutomationObject::ConvertOleToVariant: Unknown variant value type"));
+ wxLogError(wxT("wxAutomationObject::ConvertOleToVariant: Unknown variant value type"));
return FALSE;
}
}
}
else
{
- wxLogWarning(T("ReleaseVariant: Array contains non-variant type"));
+ wxLogWarning(wxT("ReleaseVariant: Array contains non-variant type"));
}
// Free the array itself.
break;
default:
- wxLogWarning(T("ReleaseVariant: Unknown type"));
+ wxLogWarning(wxT("ReleaseVariant: Unknown type"));
break;
}
}
wxString s;
wxCHECK_MSG( !IsStandard(), s,
- T("name of predefined format cannot be retrieved") );
+ wxT("name of predefined format cannot be retrieved") );
int len = ::GetClipboardFormatName(m_format, s.GetWriteBuf(max), max);
s.UngetWriteBuf();
FORMATETC *rgelt,
ULONG *pceltFetched)
{
- wxLogTrace(T("wxIEnumFORMATETC::Next"));
+ wxLogTrace(wxT("wxIEnumFORMATETC::Next"));
if ( celt > 1 )
return S_FALSE;
STDMETHODIMP wxIEnumFORMATETC::Skip(ULONG celt)
{
- wxLogTrace(T("wxIEnumFORMATETC::Skip"));
+ wxLogTrace(wxT("wxIEnumFORMATETC::Skip"));
if ( m_nCurrent == 0 )
m_nCurrent++;
STDMETHODIMP wxIEnumFORMATETC::Reset()
{
- wxLogTrace(T("wxIEnumFORMATETC::Reset"));
+ wxLogTrace(wxT("wxIEnumFORMATETC::Reset"));
m_nCurrent = 0;
STDMETHODIMP wxIEnumFORMATETC::Clone(IEnumFORMATETC **ppenum)
{
- wxLogTrace(T("wxIEnumFORMATETC::Clone"));
+ wxLogTrace(wxT("wxIEnumFORMATETC::Clone"));
wxIEnumFORMATETC *pNew = new wxIEnumFORMATETC(m_format.cfFormat);
pNew->AddRef();
// get data functions
STDMETHODIMP wxIDataObject::GetData(FORMATETC *pformatetcIn, STGMEDIUM *pmedium)
{
- wxLogTrace(T("wxIDataObject::GetData"));
+ wxLogTrace(wxT("wxIDataObject::GetData"));
// is data is in our format?
HRESULT hr = QueryGetData(pformatetcIn);
STDMETHODIMP wxIDataObject::GetDataHere(FORMATETC *pformatetc,
STGMEDIUM *pmedium)
{
- wxLogTrace(T("wxIDataObject::GetDataHere"));
+ wxLogTrace(wxT("wxIDataObject::GetDataHere"));
// put data in caller provided medium
if ( pmedium->tymed != TYMED_HGLOBAL )
// copy data
void *pBuf = GlobalLock(pmedium->hGlobal);
if ( pBuf == NULL ) {
- wxLogLastError(T("GlobalLock"));
+ wxLogLastError(wxT("GlobalLock"));
return E_OUTOFMEMORY;
}
STGMEDIUM *pmedium,
BOOL fRelease)
{
- wxLogTrace(T("wxIDataObject::SetData"));
+ wxLogTrace(wxT("wxIDataObject::SetData"));
return E_NOTIMPL;
}
{
// do we accept data in this format?
if ( pformatetc == NULL ) {
- wxLogTrace(T("wxIDataObject::QueryGetData: invalid ptr."));
+ wxLogTrace(wxT("wxIDataObject::QueryGetData: invalid ptr."));
return E_INVALIDARG;
}
// the only one allowed by current COM implementation
if ( pformatetc->lindex != -1 ) {
- wxLogTrace(T("wxIDataObject::QueryGetData: bad lindex %d"),
+ wxLogTrace(wxT("wxIDataObject::QueryGetData: bad lindex %d"),
pformatetc->lindex);
return DV_E_LINDEX;
}
// we don't support anything other (THUMBNAIL, ICON, DOCPRINT...)
if ( pformatetc->dwAspect != DVASPECT_CONTENT ) {
- wxLogTrace(T("wxIDataObject::QueryGetData: bad dwAspect %d"),
+ wxLogTrace(wxT("wxIDataObject::QueryGetData: bad dwAspect %d"),
pformatetc->dwAspect);
return DV_E_DVASPECT;
}
// @@ we only transfer data by global memory (bad for large amounts of it!)
if ( !(pformatetc->tymed & TYMED_HGLOBAL) ) {
- wxLogTrace(T("wxIDataObject::QueryGetData: %s != TYMED_HGLOBAL."),
+ wxLogTrace(wxT("wxIDataObject::QueryGetData: %s != TYMED_HGLOBAL."),
GetTymedName(pformatetc->tymed));
return DV_E_TYMED;
}
// and now check the type of data requested
if ( m_pDataObject->IsSupportedFormat((wxDataFormatId)pformatetc->cfFormat) ) {
- wxLogTrace(T("wxIDataObject::QueryGetData: %s ok"),
+ wxLogTrace(wxT("wxIDataObject::QueryGetData: %s ok"),
wxDataObject::GetFormatName((wxDataFormatId)pformatetc->cfFormat));
return S_OK;
}
else {
- wxLogTrace(T("wxIDataObject::QueryGetData: %s unsupported"),
+ wxLogTrace(wxT("wxIDataObject::QueryGetData: %s unsupported"),
wxDataObject::GetFormatName((wxDataFormatId)pformatetc->cfFormat));
return DV_E_FORMATETC;
}
STDMETHODIMP wxIDataObject::GetCanonicalFormatEtc(FORMATETC *pFormatetcIn,
FORMATETC *pFormatetcOut)
{
- wxLogTrace(T("wxIDataObject::GetCanonicalFormatEtc"));
+ wxLogTrace(wxT("wxIDataObject::GetCanonicalFormatEtc"));
// @@ implementation is trivial, we might want something better here
if ( pFormatetcOut != NULL )
STDMETHODIMP wxIDataObject::EnumFormatEtc(DWORD dwDirection,
IEnumFORMATETC **ppenumFormatEtc)
{
- wxLogTrace(T("wxIDataObject::EnumFormatEtc"));
+ wxLogTrace(wxT("wxIDataObject::EnumFormatEtc"));
if ( dwDirection == DATADIR_SET ) {
// we don't allow setting of data anyhow
// Notes : you must call SetData() before if you had used def ctor
wxDragResult wxDropSource::DoDragDrop(bool bAllowMove)
{
- wxCHECK_MSG( m_pData != NULL, wxDragNone, T("No data in wxDropSource!") );
+ wxCHECK_MSG( m_pData != NULL, wxDragNone, wxT("No data in wxDropSource!") );
DWORD dwEffect;
HRESULT hr = ::DoDragDrop(m_pData->GetInterface(),
else {
if ( FAILED(hr) ) {
wxLogApiError("DoDragDrop", hr);
- wxLogError(T("Drag & drop operation failed."));
+ wxLogError(wxT("Drag & drop operation failed."));
}
else {
- wxLogDebug(T("Unexpected success return code %08lx from DoDragDrop."), hr);
+ wxLogDebug(wxT("Unexpected success return code %08lx from DoDragDrop."), hr);
}
return wxDragError;
POINTL pt,
DWORD *pdwEffect)
{
- wxLogDebug(T("IDropTarget::DragEnter"));
+ wxLogDebug(wxT("IDropTarget::DragEnter"));
wxASSERT( m_pIDataObject == NULL );
// Notes : good place to do any clean-up
STDMETHODIMP wxIDropTarget::DragLeave()
{
- wxLogDebug(T("IDropTarget::DragLeave"));
+ wxLogDebug(wxT("IDropTarget::DragLeave"));
// remove the UI feedback
m_pTarget->OnLeave();
POINTL pt,
DWORD *pdwEffect)
{
- wxLogDebug(T("IDropTarget::Drop"));
+ wxLogDebug(wxT("IDropTarget::Drop"));
// TODO I don't know why there is this parameter, but so far I assume
// that it's the same we've already got in DragEnter
UINT len2 = ::DragQueryFile(hdrop, n, aszFiles[n], len);
if ( len2 != len - 1 ) {
- wxLogDebug(T("In wxFileDropTarget::OnDrop DragQueryFile returned %d "
+ wxLogDebug(wxT("In wxFileDropTarget::OnDrop DragQueryFile returned %d "
"characters, %d expected."), len2, len - 1);
}
}
if ( m_pszCForm == NULL )
m_pszCForm = new wxChar[UUID_CSTRLEN];
- wsprintf(m_pszCForm, T("0x%8.8X,0x%4.4X,0x%4.4X,0x%2.2X,0x2.2%X,"
+ wsprintf(m_pszCForm, wxT("0x%8.8X,0x%4.4X,0x%4.4X,0x%2.2X,0x2.2%X,"
"0x2.2%X,0x2.2%X,0x2.2%X,0x2.2%X,0x2.2%X,0x2.2%X"),
m_uuid.Data1, m_uuid.Data2, m_uuid.Data3,
m_uuid.Data4[1], m_uuid.Data4[2], m_uuid.Data4[3], m_uuid.Data4[4],
delete [] szStripped;
// # without this menu items look too tightly packed (at least under Windows)
- str += T('W'); // 'W' is typically the widest letter
+ str += wxT('W'); // 'W' is typically the widest letter
dc.GetTextExtent(str, (long *)pwidth, (long *)pheight);
if (!win)
{
wxEndBusyCursor();
- wxLogDebug(T("Could not create an abort dialog."));
+ wxLogDebug(wxT("Could not create an abort dialog."));
delete dc;
}
}
}
- wxASSERT_MSG( selectedButton != -1, T("click from alien button?") );
+ wxASSERT_MSG( selectedButton != -1, wxT("click from alien button?") );
if ( selectedButton != m_selectedButton )
{
}
// Create a dummy radio control to end the group.
- (void)CreateWindowEx(0, RADIO_CLASS, T(""), WS_GROUP | RADIO_FLAGS,
+ (void)CreateWindowEx(0, RADIO_CLASS, wxT(""), WS_GROUP | RADIO_FLAGS,
0, 0, 0, 0, hwndParent,
(HMENU)NewControlId(), wxGetInstance(), NULL);
wxString wxRadioBox::GetLabel(int item) const
{
- wxCHECK_MSG( item >= 0 && item < m_noItems, T(""), T("invalid radiobox index") );
+ wxCHECK_MSG( item >= 0 && item < m_noItems, wxT(""), wxT("invalid radiobox index") );
return wxGetWindowText(m_radioButtons[item]);
}
void wxRadioBox::SetLabel(int item, const wxString& label)
{
- wxCHECK_RET( item >= 0 && item < m_noItems, T("invalid radiobox index") );
+ wxCHECK_RET( item >= 0 && item < m_noItems, wxT("invalid radiobox index") );
m_radioWidth[item] = m_radioHeight[item] = -1;
SetWindowText((HWND)m_radioButtons[item], label.c_str());
m_radioWidth[item] = bitmap->GetWidth() + FB_MARGIN;
m_radioHeight[item] = bitmap->GetHeight() + FB_MARGIN;
*/
- wxFAIL_MSG(T("not implemented"));
+ wxFAIL_MSG(wxT("not implemented"));
}
int wxRadioBox::FindString(const wxString& s) const
void wxRadioBox::SetSelection(int N)
{
- wxCHECK_RET( (N >= 0) && (N < m_noItems), T("invalid radiobox index") );
+ wxCHECK_RET( (N >= 0) && (N < m_noItems), wxT("invalid radiobox index") );
// Following necessary for Win32s, because Win32s translate BM_SETCHECK
if (m_selectedButton >= 0 && m_selectedButton < m_noItems)
void wxRadioBox::Enable(int item, bool enable)
{
wxCHECK_RET( item >= 0 && item < m_noItems,
- T("invalid item in wxRadioBox::Enable()") );
+ wxT("invalid item in wxRadioBox::Enable()") );
::EnableWindow((HWND) m_radioButtons[item], enable);
}
void wxRadioBox::Show(int item, bool show)
{
wxCHECK_RET( item >= 0 && item < m_noItems,
- T("invalid item in wxRadioBox::Show()") );
+ wxT("invalid item in wxRadioBox::Show()") );
::ShowWindow((HWND)m_radioButtons[item], show ? SW_SHOW : SW_HIDE);
}
{
wxRadioBox *radiobox = (wxRadioBox *)::GetWindowLong(hwnd, GWL_USERDATA);
- wxCHECK_MSG( radiobox, 0, T("radio button without radio box?") );
+ wxCHECK_MSG( radiobox, 0, wxT("radio button without radio box?") );
int sel = radiobox->GetSelection();
msStyle,0,0,0,0,
(HWND) parent->GetHWND(), (HMENU)m_windowId, wxGetInstance(), NULL);
- wxCHECK_MSG( m_hWnd, FALSE, T("Failed to create radiobutton") );
+ wxCHECK_MSG( m_hWnd, FALSE, wxT("Failed to create radiobutton") );
#if wxUSE_CTL3D
if (want3D)
// SetValue(value);
// start GRW fix
- if (label != T(""))
+ if (label != wxT(""))
{
int label_width, label_height;
GetTextExtent(label, &label_width, &label_height, NULL, NULL, & this->GetFont());
if ( appName.IsEmpty() )
{
- wxCHECK_RET( wxTheApp, T("No application name in wxRegConfig ctor!") );
+ wxCHECK_RET( wxTheApp, wxT("No application name in wxRegConfig ctor!") );
strRoot << wxTheApp->GetAppName();
}
else
if ( IsImmutable(path.Name()) ) {
if ( TryGetValue(m_keyGlobal, path.Name(), *pStr) ) {
if ( m_keyLocal.HasValue(path.Name()) ) {
- wxLogWarning(T("User value for immutable key '%s' ignored."),
+ wxLogWarning(wxT("User value for immutable key '%s' ignored."),
path.Name().c_str());
}
*pStr = wxConfigBase::ExpandEnvVars(*pStr);
if ( IsImmutable(path.Name()) ) {
if ( TryGetValue(m_keyGlobal, path.Name(), *pStr) ) {
if ( m_keyLocal.HasValue(path.Name()) ) {
- wxLogWarning(T("User value for immutable key '%s' ignored."),
+ wxLogWarning(wxT("User value for immutable key '%s' ignored."),
path.Name().c_str());
}
if ( IsImmutable(path.Name()) ) {
if ( TryGetValue(m_keyGlobal, path.Name(), plResult) ) {
if ( m_keyLocal.HasValue(path.Name()) ) {
- wxLogWarning(T("User value for immutable key '%s' ignored."),
+ wxLogWarning(wxT("User value for immutable key '%s' ignored."),
path.Name().c_str());
}
wxConfigPathChanger path(this, key);
if ( IsImmutable(path.Name()) ) {
- wxLogError(T("Can't change immutable entry '%s'."), path.Name().c_str());
+ wxLogError(wxT("Can't change immutable entry '%s'."), path.Name().c_str());
return FALSE;
}
wxConfigPathChanger path(this, key);
if ( IsImmutable(path.Name()) ) {
- wxLogError(T("Can't change immutable entry '%s'."), path.Name().c_str());
+ wxLogError(wxT("Can't change immutable entry '%s'."), path.Name().c_str());
return FALSE;
}
// TODO there is no way to rename a registry key - we must do a deep copy
// ourselves
- wxFAIL_MSG(T("Registry key renaming not implemented"));
+ wxFAIL_MSG(wxT("Registry key renaming not implemented"));
return FALSE;
}
}
aStdKeys[] =
{
- { HKEY_CLASSES_ROOT, T("HKEY_CLASSES_ROOT"), T("HKCR") },
+ { HKEY_CLASSES_ROOT, wxT("HKEY_CLASSES_ROOT"), wxT("HKCR") },
#ifdef __WIN32__
- { HKEY_CURRENT_USER, T("HKEY_CURRENT_USER"), T("HKCU") },
- { HKEY_LOCAL_MACHINE, T("HKEY_LOCAL_MACHINE"), T("HKLM") },
- { HKEY_USERS, T("HKEY_USERS"), T("HKU") }, // short name?
- { HKEY_PERFORMANCE_DATA, T("HKEY_PERFORMANCE_DATA"), T("HKPD") },
+ { HKEY_CURRENT_USER, wxT("HKEY_CURRENT_USER"), wxT("HKCU") },
+ { HKEY_LOCAL_MACHINE, wxT("HKEY_LOCAL_MACHINE"), wxT("HKLM") },
+ { HKEY_USERS, wxT("HKEY_USERS"), wxT("HKU") }, // short name?
+ { HKEY_PERFORMANCE_DATA, wxT("HKEY_PERFORMANCE_DATA"), wxT("HKPD") },
#if WINVER >= 0x0400
- { HKEY_CURRENT_CONFIG, T("HKEY_CURRENT_CONFIG"), T("HKCC") },
+ { HKEY_CURRENT_CONFIG, wxT("HKEY_CURRENT_CONFIG"), wxT("HKCC") },
#ifndef __GNUWIN32__
- { HKEY_DYN_DATA, T("HKEY_DYN_DATA"), T("HKDD") }, // short name?
+ { HKEY_DYN_DATA, wxT("HKEY_DYN_DATA"), wxT("HKDD") }, // short name?
#endif //GNUWIN32
#endif //WINVER >= 4.0
#endif //WIN32
};
// the registry name separator (perhaps one day MS will change it to '/' ;-)
-#define REG_SEPARATOR T('\\')
+#define REG_SEPARATOR wxT('\\')
// useful for Windows programmers: makes somewhat more clear all these zeroes
// being passed to Windows APIs
const wxChar *wxRegKey::GetStdKeyName(size_t key)
{
// return empty string if key is invalid
- wxCHECK_MSG( key < nStdKeys, T(""), T("invalid key in wxRegKey::GetStdKeyName") );
+ wxCHECK_MSG( key < nStdKeys, wxT(""), wxT("invalid key in wxRegKey::GetStdKeyName") );
return aStdKeys[key].szName;
}
const wxChar *wxRegKey::GetStdKeyShortName(size_t key)
{
// return empty string if key is invalid
- wxCHECK( key < nStdKeys, T("") );
+ wxCHECK( key < nStdKeys, wxT("") );
return aStdKeys[key].szShortName;
}
}
if ( ui == nStdKeys ) {
- wxFAIL_MSG(T("invalid key prefix in wxRegKey::ExtractKeyName."));
+ wxFAIL_MSG(wxT("invalid key prefix in wxRegKey::ExtractKeyName."));
hRootKey = HKEY_CLASSES_ROOT;
}
return (StdKey)ui;
}
- wxFAIL_MSG(T("non root hkey passed to wxRegKey::GetStdKeyFromHkey."));
+ wxFAIL_MSG(wxT("non root hkey passed to wxRegKey::GetStdKeyFromHkey."));
return HKCR;
}
else {
// check that we read the value of right type
wxASSERT_MSG( dwType == REG_DWORD,
- T("Type mismatch in wxRegKey::QueryValue().") );
+ wxT("Type mismatch in wxRegKey::QueryValue().") );
return TRUE;
}
if ( m_dwLastError == ERROR_SUCCESS ) {
// check that it was the right type
wxASSERT_MSG( dwType == REG_SZ,
- T("Type mismatch in wxRegKey::QueryValue().") );
+ wxT("Type mismatch in wxRegKey::QueryValue().") );
return TRUE;
}
static wxString s_str;
s_str = pKey->GetName();
if ( !wxIsEmpty(szValue) )
- s_str << T("\\") << szValue;
+ s_str << wxT("\\") << szValue;
return s_str.c_str();
}
// Now create scrollbar
DWORD _direction = (style & wxHORIZONTAL) ?
SBS_HORZ: SBS_VERT;
- HWND scroll_bar = CreateWindowEx(MakeExtendedStyle(style), T("SCROLLBAR"), T("scrollbar"),
+ HWND scroll_bar = CreateWindowEx(MakeExtendedStyle(style), wxT("SCROLLBAR"), wxT("scrollbar"),
_direction | WS_CHILD | WS_VISIBLE,
0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId,
wxGetInstance(), NULL);
bool want3D;
WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D) ;
- m_staticValue = (WXHWND) CreateWindowEx(exStyle, T("STATIC"), NULL,
+ m_staticValue = (WXHWND) CreateWindowEx(exStyle, wxT("STATIC"), NULL,
msStyle,
0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(),
wxGetInstance(), NULL);
// Now create min static control
- wxSprintf(wxBuffer, T("%d"), minValue);
- m_staticMin = (WXHWND) CreateWindowEx(0, T("STATIC"), wxBuffer,
+ wxSprintf(wxBuffer, wxT("%d"), minValue);
+ m_staticMin = (WXHWND) CreateWindowEx(0, wxT("STATIC"), wxBuffer,
STATIC_FLAGS,
0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(),
wxGetInstance(), NULL);
SubclassWin(GetHWND());
- SetWindowText((HWND) m_hWnd, T(""));
+ SetWindowText((HWND) m_hWnd, wxT(""));
SetFont(parent->GetFont());
if ( m_windowStyle & wxSL_LABELS )
{
// Finally, create max value static item
- wxSprintf(wxBuffer, T("%d"), maxValue);
- m_staticMax = (WXHWND) CreateWindowEx(0, T("STATIC"), wxBuffer,
+ wxSprintf(wxBuffer, wxT("%d"), maxValue);
+ m_staticMax = (WXHWND) CreateWindowEx(0, wxT("STATIC"), wxBuffer,
STATIC_FLAGS,
0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(),
wxGetInstance(), NULL);
::SendMessage(GetHwnd(), TBM_SETPOS, (WPARAM)TRUE, (LPARAM)value);
if (m_staticValue)
{
- wxSprintf(wxBuffer, T("%d"), value);
+ wxSprintf(wxBuffer, wxT("%d"), value);
SetWindowText((HWND) m_staticValue, wxBuffer);
}
}
wxChar buf[40];
if ( m_staticMin )
{
- wxSprintf(buf, T("%d"), m_rangeMin);
+ wxSprintf(buf, wxT("%d"), m_rangeMin);
SetWindowText((HWND) m_staticMin, buf);
}
if ( m_staticMax )
{
- wxSprintf(buf, T("%d"), m_rangeMax);
+ wxSprintf(buf, wxT("%d"), m_rangeMax);
SetWindowText((HWND) m_staticMax, buf);
}
}
bool want3D;
WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D) ;
- m_staticValue = (WXHWND) CreateWindowEx(exStyle, T("STATIC"), NULL,
+ m_staticValue = (WXHWND) CreateWindowEx(exStyle, wxT("STATIC"), NULL,
msStyle,
0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(),
wxGetInstance(), NULL);
// Now create min static control
- wxSprintf(wxBuffer, T("%d"), minValue);
- m_staticMin = (WXHWND) CreateWindowEx(0, T("STATIC"), wxBuffer,
+ wxSprintf(wxBuffer, wxT("%d"), minValue);
+ m_staticMin = (WXHWND) CreateWindowEx(0, wxT("STATIC"), wxBuffer,
STATIC_FLAGS,
0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(),
wxGetInstance(), NULL);
else
msStyle = SBS_HORZ | WS_CHILD | WS_VISIBLE | WS_TABSTOP ;
- HWND scroll_bar = CreateWindowEx(MakeExtendedStyle(m_windowStyle), T("SCROLLBAR"), wxBuffer,
+ HWND scroll_bar = CreateWindowEx(MakeExtendedStyle(m_windowStyle), wxT("SCROLLBAR"), wxBuffer,
msStyle,
0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId,
wxGetInstance(), NULL);
SubclassWin(GetHWND());
// Finally, create max value static item
- wxSprintf(wxBuffer, T("%d"), maxValue);
- m_staticMax = (WXHWND) CreateWindowEx(0, T("STATIC"), wxBuffer,
+ wxSprintf(wxBuffer, wxT("%d"), maxValue);
+ m_staticMax = (WXHWND) CreateWindowEx(0, wxT("STATIC"), wxBuffer,
STATIC_FLAGS,
0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(),
wxGetInstance(), NULL);
::SetScrollPos(GetHwnd(), SB_CTL, value, TRUE);
if (m_staticValue)
{
- wxSprintf(wxBuffer, T("%d"), value);
+ wxSprintf(wxBuffer, wxT("%d"), value);
SetWindowText((HWND) m_staticValue, wxBuffer);
}
}
wxChar buf[40];
if ( m_staticMin )
{
- wxSprintf(buf, T("%d"), m_rangeMin);
+ wxSprintf(buf, wxT("%d"), m_rangeMin);
SetWindowText((HWND) m_staticMin, buf);
}
if ( m_staticMax )
{
- wxSprintf(buf, T("%d"), m_rangeMax);
+ wxSprintf(buf, wxT("%d"), m_rangeMax);
SetWindowText((HWND) m_staticMax, buf);
}
}
bool wxSpinButton::MSWOnScroll(int orientation, WXWORD wParam,
WXWORD pos, WXHWND control)
{
- wxCHECK_MSG( control, FALSE, T("scrolling what?") )
+ wxCHECK_MSG( control, FALSE, wxT("scrolling what?") )
if ( wParam != SB_THUMBPOSITION )
{
#ifdef __WIN32__
// create a static control with either SS_BITMAP or SS_ICON style depending
// on what we have here
- const wxChar *classname = T("STATIC");
+ const wxChar *classname = wxT("STATIC");
int winstyle = m_isIcon ? SS_ICON : SS_BITMAP;
#else // Win16
- const wxChar *classname = T("BUTTON");
+ const wxChar *classname = wxT("BUTTON");
int winstyle = BS_OWNERDRAW;
#endif // Win32
m_hWnd = (WXHWND)::CreateWindow
(
classname,
- T(""),
+ wxT(""),
winstyle | WS_CHILD | WS_VISIBLE,
0, 0, 0, 0,
(HWND)parent->GetHWND(),
NULL
);
- wxCHECK_MSG( m_hWnd, FALSE, T("Failed to create static bitmap") );
+ wxCHECK_MSG( m_hWnd, FALSE, wxT("Failed to create static bitmap") );
SetBitmap(bitmap);
WXDWORD exStyle = Determine3DEffects(0, &want3D) ;
HWND wx_button =
- CreateWindowEx(exStyle, T("BUTTON"), (const wxChar *)label, msStyle,
+ CreateWindowEx(exStyle, wxT("BUTTON"), (const wxChar *)label, msStyle,
0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId,
wxGetInstance(), NULL);
#if wxUSE_CTL3D
wstyle |= SBARS_SIZEGRIP;
m_hWnd = (WXHWND)CreateStatusWindow(wstyle,
- T(""),
+ wxT(""),
(HWND)parent->GetHWND(),
m_windowId);
if ( m_hWnd == 0 ) {
- wxLogSysError(T("can't create status bar window"));
+ wxLogSysError(wxT("can't create status bar window"));
return FALSE;
}
}
if ( !StatusBar_SetParts(hwnd, m_nFields, pWidths) ) {
- wxLogLastError(T("StatusBar_SetParts"));
+ wxLogLastError(wxT("StatusBar_SetParts"));
}
delete [] pWidths;
void wxStatusBar95::SetStatusText(const wxString& strText, int nField)
{
if ( !StatusBar_SetText(hwnd, nField, strText) ) {
- wxLogLastError(T("StatusBar_SetText"));
+ wxLogLastError(wxT("StatusBar_SetText"));
}
}
{
wxASSERT( (nField > -1) && (nField < m_nFields) );
- wxString str(T(""));
+ wxString str(wxT(""));
int len = StatusBar_GetTextLen(hwnd, nField);
if (len > 0)
{
m_hWnd = (WXHWND)::CreateWindow
(
- T("STATIC"),
- T(""),
+ wxT("STATIC"),
+ wxT(""),
WS_VISIBLE | WS_CHILD |
SS_GRAYRECT | SS_SUNKEN, // | SS_ETCHEDFRAME,
pos.x, pos.y, sizeReal.x, sizeReal.y,
if ( !m_hWnd )
{
#ifdef __WXDEBUG__
- wxLogDebug(T("Failed to create static control"));
+ wxLogDebug(wxT("Failed to create static control"));
#endif
return FALSE;
}
if ( wxStyleHasBorder(m_windowStyle) )
msStyle |= WS_BORDER;
- m_hWnd = (WXHWND)::CreateWindowEx(MakeExtendedStyle(m_windowStyle), T("STATIC"), (const wxChar *)label,
+ m_hWnd = (WXHWND)::CreateWindowEx(MakeExtendedStyle(m_windowStyle), wxT("STATIC"), (const wxChar *)label,
msStyle,
0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId,
wxGetInstance(), NULL);
- wxCHECK_MSG( m_hWnd, FALSE, T("Failed to create static ctrl") );
+ wxCHECK_MSG( m_hWnd, FALSE, wxT("Failed to create static ctrl") );
#if wxUSE_CTL3D
/*
wxString curLine;
for ( const wxChar *pc = text; ; pc++ ) {
- if ( *pc == T('\n') || *pc == T('\0') ) {
+ if ( *pc == wxT('\n') || *pc == wxT('\0') ) {
GetTextExtent(curLine, &widthLine, &heightLine);
if ( widthLine > widthTextMax )
widthTextMax = widthLine;
heightTextTotal += heightLine;
- if ( *pc == T('\n') ) {
+ if ( *pc == wxT('\n') ) {
curLine.Empty();
}
else {
// Create the toolbar control.
HWND hWndTabCtrl = CreateWindowEx(0L, // No extended styles.
WC_TABCONTROL, // Class name for the tab control
- T(""), // No default text.
+ wxT(""), // No default text.
WS_CHILD | WS_BORDER | WS_VISIBLE | tabStyle, // Styles and defaults.
x, y, width, height, // Standard size and position.
(HWND) parent->GetHWND(), // Parent window
wxString wxTabCtrl::GetItemText(int item) const
{
wxChar buf[256];
- wxString str(T(""));
+ wxString str(wxT(""));
TC_ITEM tcItem;
tcItem.mask = TCIF_TEXT;
tcItem.pszText = buf;
TC_ITEM tcItem;
tcItem.mask = TCIF_PARAM;
tcItem.lParam = (long) data;
- if (text != T(""))
+ if (text != wxT(""))
{
tcItem.mask |= TCIF_TEXT;
wxStrcpy(buf, (const wxChar*) text);
LRESULT APIENTRY _EXPORT wxTaskBarIconWindowProc( HWND hWnd, unsigned msg,
UINT wParam, LONG lParam );
-wxChar *wxTaskBarWindowClass = T("wxTaskBarWindowClass");
+wxChar *wxTaskBarWindowClass = wxT("wxTaskBarWindowClass");
wxList wxTaskBarIcon::sm_taskBarIcons;
bool wxTaskBarIcon::sm_registeredClass = FALSE;
notifyData.hIcon = (HICON) icon.GetHICON();
}
- if (((const wxChar*) tooltip != NULL) && (tooltip != T("")))
+ if (((const wxChar*) tooltip != NULL) && (tooltip != wxT("")))
{
notifyData.uFlags |= NIF_TIP ;
lstrcpyn(notifyData.szTip, WXSTRINGCAST tooltip, sizeof(notifyData.szTip));
return TRUE;
// Also register the taskbar message here
- sm_taskbarMsg = ::RegisterWindowMessage(T("wxTaskBarIconMessage"));
+ sm_taskbarMsg = ::RegisterWindowMessage(wxT("wxTaskBarIconMessage"));
WNDCLASS wc;
bool rc;
HINSTANCE hInstance = GetModuleHandle(NULL);
HWND hWnd = CreateWindowEx (0, wxTaskBarWindowClass,
- T("wxTaskBarWindow"),
+ wxT("wxTaskBarWindow"),
WS_OVERLAPPED,
0,
0,
m_foregroundColour = *wxBLACK ;
wxASSERT_MSG( (style & wxTB_VERTICAL) == 0,
- T("Sorry, wxToolBar95 under Windows 95 only "
+ wxT("Sorry, wxToolBar95 under Windows 95 only "
"supports horizontal orientation.") );
m_maxWidth = -1;
(
exStyle, // Extended styles.
TOOLBARCLASSNAME, // Class name for the toolbar.
- T(""), // No default text.
+ wxT(""), // No default text.
msflags, // Styles
x, y, width, height, // Standard toolbar size and position.
(HWND) parent->GetHWND(), // Parent window of the toolbar.
NULL // No class data.
);
- wxCHECK_MSG( hWndToolbar, FALSE, T("Toolbar creation failed") );
+ wxCHECK_MSG( hWndToolbar, FALSE, wxT("Toolbar creation failed") );
// Toolbar-specific initialisation
::SendMessage(hWndToolbar, TB_BUTTONSTRUCTSIZE,
replaceBitmap.nButtons = noButtons;
if (::SendMessage((HWND) GetHWND(), TB_REPLACEBITMAP, (WPARAM) 0, (LPARAM) &replaceBitmap) == -1)
{
- wxFAIL_MSG(T("Could not add bitmap to toolbar"));
+ wxFAIL_MSG(wxT("Could not add bitmap to toolbar"));
}
::DeleteObject((HBITMAP) oldToolBarBitmap);
addBitmap.nID = (UINT)m_hBitmap;
if (::SendMessage((HWND) GetHWND(), TB_ADDBITMAP, (WPARAM) noButtons, (LPARAM) &addBitmap) == -1)
{
- wxFAIL_MSG(T("Could not add bitmap to toolbar"));
+ wxFAIL_MSG(wxT("Could not add bitmap to toolbar"));
}
}
long rc = ::SendMessage((HWND) GetHWND(), TB_ADDBUTTONS, (WPARAM)i, (LPARAM)& buttons);
- wxCHECK_MSG( rc, FALSE, T("failed to add buttons to the toolbar") );
+ wxCHECK_MSG( rc, FALSE, wxT("failed to add buttons to the toolbar") );
(void)::SendMessage((HWND) GetHWND(), TB_AUTOSIZE, (WPARAM)0, (LPARAM) 0);
if ( m_windowStyle & wxTE_MULTILINE )
{
wxASSERT_MSG( !(m_windowStyle & wxTE_PROCESS_ENTER),
- T("wxTE_PROCESS_ENTER style is ignored for multiline "
+ wxT("wxTE_PROCESS_ENTER style is ignored for multiline "
"text controls (they always process it)") );
msStyle |= ES_MULTILINE | ES_WANTRETURN;
m_lDlgCode |= DLGC_WANTTAB;
// do create the control - either an EDIT or RICHEDIT
- const wxChar *windowClass = T("EDIT");
+ const wxChar *windowClass = wxT("EDIT");
#if wxUSE_RICHEDIT
if ( m_windowStyle & wxTE_RICH )
{
msStyle |= ES_AUTOVSCROLL;
m_isRich = TRUE;
- windowClass = T("RICHEDIT");
+ windowClass = wxT("RICHEDIT");
}
else
m_isRich = FALSE;
wxGetInstance(),
NULL);
- wxCHECK_MSG( m_hWnd, FALSE, T("Failed to create text ctrl") );
+ wxCHECK_MSG( m_hWnd, FALSE, wxT("Failed to create text ctrl") );
#if wxUSE_CTL3D
if ( want3D )
GetClassName(hWnd, buf, WXSIZEOF(buf));
- if ( wxStricmp(buf, T("EDIT")) == 0 )
+ if ( wxStricmp(buf, wxT("EDIT")) == 0 )
m_isRich = FALSE;
else
m_isRich = TRUE;
void wxTextCtrl::Clear()
{
- SetWindowText(GetHwnd(), T(""));
+ SetWindowText(GetHwnd(), wxT(""));
}
// ----------------------------------------------------------------------------
wxMutex::~wxMutex()
{
if (m_locked > 0)
- wxLogDebug(T("Warning: freeing a locked mutex (%d locks)."), m_locked);
+ wxLogDebug(wxT("Warning: freeing a locked mutex (%d locks)."), m_locked);
CloseHandle(p_internal->p_mutex);
}
case WAIT_TIMEOUT:
default:
- wxFAIL_MSG(T("impossible return value in wxMutex::Lock"));
+ wxFAIL_MSG(wxT("impossible return value in wxMutex::Lock"));
}
m_locked++;
win_priority = THREAD_PRIORITY_HIGHEST;
else
{
- wxFAIL_MSG(T("invalid value of thread priority parameter"));
+ wxFAIL_MSG(wxT("invalid value of thread priority parameter"));
win_priority = THREAD_PRIORITY_NORMAL;
}
break;
default:
- wxFAIL_MSG(T("unexpected result of MsgWaitForMultipleObject"));
+ wxFAIL_MSG(wxT("unexpected result of MsgWaitForMultipleObject"));
}
} while ( result != WAIT_OBJECT_0 );
}
wxASSERT_MSG( (LPVOID)rc != (LPVOID)STILL_ACTIVE,
- T("thread must be already terminated.") );
+ wxT("thread must be already terminated.") );
::CloseHandle(hThread);
}
::ExitThread((DWORD)status);
- wxFAIL_MSG(T("Couldn't return from ExitThread()!"));
+ wxFAIL_MSG(wxT("Couldn't return from ExitThread()!"));
}
void wxThread::SetPriority(unsigned int prio)
{
// this would dead lock everything...
wxASSERT_MSG( !wxThread::IsMain(),
- T("main thread doesn't want to block in wxMutexGuiEnter()!") );
+ wxT("main thread doesn't want to block in wxMutexGuiEnter()!") );
// the order in which we enter the critical sections here is crucial!!
{
// decrement the number of waiters now
wxASSERT_MSG( s_nWaitingForGui > 0,
- T("calling wxMutexGuiLeave() without entering it first?") );
+ wxT("calling wxMutexGuiLeave() without entering it first?") );
s_nWaitingForGui--;
void WXDLLEXPORT wxMutexGuiLeaveOrEnter()
{
wxASSERT_MSG( wxThread::IsMain(),
- T("only main thread may call wxMutexGuiLeaveOrEnter()!") );
+ wxT("only main thread may call wxMutexGuiLeaveOrEnter()!") );
wxCriticalSectionLocker enter(*s_critsectWaitingForGui);
if (milliseconds < 0)
milliseconds = lastMilli;
- wxCHECK_MSG( milliseconds > 0, FALSE, T("invalid value for timer timeour") );
+ wxCHECK_MSG( milliseconds > 0, FALSE, wxT("invalid value for timer timeour") );
lastMilli = milli = milliseconds;
{
wxNode *node = wxTimerList.Find((long)idTimer);
- wxCHECK_MSG( node, 0, T("bogus timer id in wxTimerProc") );
+ wxCHECK_MSG( node, 0, wxT("bogus timer id in wxTimerProc") );
wxProcessTimer(*(wxTimer *)node->Data());
DFC_BUTTON,
DFCS_BUTTONCHECK | DFCS_CHECKED) )
{
- wxLogLastError(T("DrawFrameControl(check)"));
+ wxLogLastError(wxT("DrawFrameControl(check)"));
}
bmp.SetHBITMAP((WXHBITMAP)hbmpCheck);
DFC_BUTTON,
DFCS_BUTTONCHECK) )
{
- wxLogLastError(T("DrawFrameControl(uncheck)"));
+ wxLogLastError(wxT("DrawFrameControl(uncheck)"));
}
bmp.SetHBITMAP((WXHBITMAP)hbmpCheck);
if ( !DoGetItem(&tvItem) )
{
// don't return some garbage which was on stack, but an empty string
- buf[0] = T('\0');
+ buf[0] = wxT('\0');
}
return wxString(buf);
switch ( which )
{
default:
- wxFAIL_MSG( T("unknown tree item image type") );
+ wxFAIL_MSG( wxT("unknown tree item image type") );
case wxTreeItemIcon_Normal:
mask = TVIF_IMAGE;
switch ( which )
{
default:
- wxFAIL_MSG( T("unknown tree item image type") );
+ wxFAIL_MSG( wxT("unknown tree item image type") );
case wxTreeItemIcon_Normal:
imageNormal = image;
}
else
{
- wxFAIL_MSG( T("failed to change tree items data") );
+ wxFAIL_MSG( wxT("failed to change tree items data") );
}
}
else
// to crash too because the code elsewhere supposes that the pointer the
// wxTreeItemIndirectData has is a real wxItemData and not
// wxTreeItemIndirectData as well
- wxASSERT_MSG( !HasIndirectData(item), T("setting indirect data twice?") );
+ wxASSERT_MSG( !HasIndirectData(item), wxT("setting indirect data twice?") );
SetItemData(item, (wxTreeItemData *)data);
wxTreeItemId wxTreeCtrl::GetSelection() const
{
wxCHECK_MSG( !(m_windowStyle & wxTR_MULTIPLE), (WXHTREEITEM)0,
- T("this only works with single selection controls") );
+ wxT("this only works with single selection controls") );
return wxTreeItemId((WXHTREEITEM) TreeView_GetSelection(GetHwnd()));
}
wxTreeItemId wxTreeCtrl::GetNextVisible(const wxTreeItemId& item) const
{
- wxASSERT_MSG( IsVisible(item), T("The item you call GetNextVisible() "
+ wxASSERT_MSG( IsVisible(item), wxT("The item you call GetNextVisible() "
"for must be visible itself!"));
return wxTreeItemId((WXHTREEITEM) TreeView_GetNextVisible(GetHwnd(), (HTREEITEM) (WXHTREEITEM) item));
wxTreeItemId wxTreeCtrl::GetPrevVisible(const wxTreeItemId& item) const
{
- wxASSERT_MSG( IsVisible(item), T("The item you call GetPrevVisible() "
+ wxASSERT_MSG( IsVisible(item), wxT("The item you call GetPrevVisible() "
"for must be visible itself!"));
return wxTreeItemId((WXHTREEITEM) TreeView_GetPrevVisible(GetHwnd(), (HTREEITEM) (WXHTREEITEM) item));
flag == (TVE_COLLAPSE | TVE_COLLAPSERESET) ||
flag == TVE_EXPAND ||
flag == TVE_TOGGLE,
- T("Unknown flag in wxTreeCtrl::DoExpand") );
+ wxT("Unknown flag in wxTreeCtrl::DoExpand") );
// TreeView_Expand doesn't send TVN_ITEMEXPAND(ING) messages, so we must
// emulate them. This behaviour has changed slightly with comctl32.dll
void wxTreeCtrl::Unselect()
{
- wxASSERT_MSG( !(m_windowStyle & wxTR_MULTIPLE), T("doesn't make sense") );
+ wxASSERT_MSG( !(m_windowStyle & wxTR_MULTIPLE), wxT("doesn't make sense") );
// just remove the selection
SelectItem(wxTreeItemId((WXHTREEITEM) 0));
wxTreeCtrl *tree)
{
wxCHECK_MSG( pItem1 && pItem2, 0,
- T("sorting tree without data doesn't make sense") );
+ wxT("sorting tree without data doesn't make sense") );
return tree->OnCompareItems(pItem1->GetId(), pItem2->GetId());
}
break;
default:
- wxLogDebug(T("unexpected code %d in TVN_ITEMEXPAND "
+ wxLogDebug(wxT("unexpected code %d in TVN_ITEMEXPAND "
"message"), tv->action);
}
/// END for console support
// In the WIN.INI file
-static const wxChar WX_SECTION[] = T("wxWindows");
-static const wxChar eHOSTNAME[] = T("HostName");
-static const wxChar eUSERID[] = T("UserId");
-static const wxChar eUSERNAME[] = T("UserName");
+static const wxChar WX_SECTION[] = wxT("wxWindows");
+static const wxChar eHOSTNAME[] = wxT("HostName");
+static const wxChar eUSERID[] = wxT("UserId");
+static const wxChar eUSERNAME[] = wxT("UserName");
// For the following functions we SHOULD fill in support
// for Windows-NT (which I don't know) as I assume it begin
return (::GetComputerName(buf, &nSize) != 0);
#else
wxChar *sysname;
- const wxChar *default_host = T("noname");
+ const wxChar *default_host = wxT("noname");
- if ((sysname = wxGetenv(T("SYSTEM_NAME"))) == NULL) {
+ if ((sysname = wxGetenv(wxT("SYSTEM_NAME"))) == NULL) {
GetProfileString(WX_SECTION, eHOSTNAME, default_host, buf, maxSize - 1);
} else
wxStrncpy(buf, sysname, maxSize - 1);
- buf[maxSize] = T('\0');
+ buf[maxSize] = wxT('\0');
return *buf ? TRUE : FALSE;
#endif
}
if ( ::GetUserName(buf, &nSize) == 0 )
{
// actually, it does happen on Win9x if the user didn't log on
- DWORD res = ::GetEnvironmentVariable(T("username"), buf, maxSize);
+ DWORD res = ::GetEnvironmentVariable(wxT("username"), buf, maxSize);
if ( res == 0 )
{
// not found
return TRUE;
#else // Win16 or Win32s
wxChar *user;
- const wxChar *default_id = T("anonymous");
+ const wxChar *default_id = wxT("anonymous");
// Can't assume we have NIS (PC-NFS) or some other ID daemon
// So we ...
- if ( (user = wxGetenv(T("USER"))) == NULL &&
- (user = wxGetenv(T("LOGNAME"))) == NULL )
+ if ( (user = wxGetenv(wxT("USER"))) == NULL &&
+ (user = wxGetenv(wxT("LOGNAME"))) == NULL )
{
// Use wxWindows configuration data (comming soon)
GetProfileString(WX_SECTION, eUSERID, default_id, buf, maxSize - 1);
// Get the computer name of a DC for the domain.
if ( NetGetDCName( NULL, wszDomain, &ComputerName ) != NERR_Success )
{
- wxLogError(T("Can not find domain controller"));
+ wxLogError(wxT("Can not find domain controller"));
goto error;
}
break;
case NERR_InvalidComputer:
- wxLogError(T("Invalid domain controller name."));
+ wxLogError(wxT("Invalid domain controller name."));
goto error;
case NERR_UserNotFound:
- wxLogError(T("Invalid user name '%s'."), szUserName);
+ wxLogError(wxT("Invalid user name '%s'."), szUserName);
goto error;
default:
- wxLogSysError(T("Can't get information about user"));
+ wxLogSysError(wxT("Can't get information about user"));
goto error;
}
return TRUE;
error:
- wxLogError(T("Couldn't look up full user name."));
+ wxLogError(wxT("Couldn't look up full user name."));
return FALSE;
#else // !USE_NET_API
// Could use NIS, MS-Mail or other site specific programs
// Use wxWindows configuration data
- bool ok = GetProfileString(WX_SECTION, eUSERNAME, T(""), buf, maxSize - 1) != 0;
+ bool ok = GetProfileString(WX_SECTION, eUSERNAME, wxT(""), buf, maxSize - 1) != 0;
if ( !ok )
{
ok = wxGetUserId(buf, maxSize);
if ( !ok )
{
- wxStrncpy(buf, T("Unknown User"), maxSize);
+ wxStrncpy(buf, wxT("Unknown User"), maxSize);
}
#endif // Win32/16
}
wxShell(const wxString& command)
{
wxChar *shell;
- if ((shell = wxGetenv(T("COMSPEC"))) == NULL)
- shell = T("\\COMMAND.COM");
+ if ((shell = wxGetenv(wxT("COMSPEC"))) == NULL)
+ shell = wxT("\\COMMAND.COM");
wxChar tmp[255];
- if (command != T(""))
- wxSprintf(tmp, T("%s /c %s"), shell, WXSTRINGCAST command);
+ if (command != wxT(""))
+ wxSprintf(tmp, wxT("%s /c %s"), shell, WXSTRINGCAST command);
else
wxStrcpy(tmp, shell);
// Non-fatal error: pop up message box and (possibly) continue
void wxError(const wxString& msg, const wxString& title)
{
- wxSprintf(wxBuffer, T("%s\nContinue?"), WXSTRINGCAST msg);
+ wxSprintf(wxBuffer, wxT("%s\nContinue?"), WXSTRINGCAST msg);
if (MessageBox(NULL, (LPCTSTR)wxBuffer, (LPCTSTR)WXSTRINGCAST title,
MB_ICONSTOP | MB_YESNO) == IDNO)
wxExit();
// Fatal error: pop up message box and abort
void wxFatalError(const wxString& msg, const wxString& title)
{
- wxSprintf(wxBuffer, T("%s: %s"), WXSTRINGCAST title, WXSTRINGCAST msg);
+ wxSprintf(wxBuffer, wxT("%s: %s"), WXSTRINGCAST title, WXSTRINGCAST msg);
FatalAppExit(0, (LPCTSTR)wxBuffer);
}
#if wxUSE_RESOURCES
bool wxWriteResource(const wxString& section, const wxString& entry, const wxString& value, const wxString& file)
{
- if (file != T(""))
+ if (file != wxT(""))
return (WritePrivateProfileString((LPCTSTR)WXSTRINGCAST section, (LPCTSTR)WXSTRINGCAST entry, (LPCTSTR)value, (LPCTSTR)WXSTRINGCAST file) != 0);
else
return (WriteProfileString((LPCTSTR)WXSTRINGCAST section, (LPCTSTR)WXSTRINGCAST entry, (LPCTSTR)WXSTRINGCAST value) != 0);
bool wxWriteResource(const wxString& section, const wxString& entry, float value, const wxString& file)
{
wxChar buf[50];
- wxSprintf(buf, T("%.4f"), value);
+ wxSprintf(buf, wxT("%.4f"), value);
return wxWriteResource(section, entry, buf, file);
}
bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file)
{
wxChar buf[50];
- wxSprintf(buf, T("%ld"), value);
+ wxSprintf(buf, wxT("%ld"), value);
return wxWriteResource(section, entry, buf, file);
}
bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file)
{
wxChar buf[50];
- wxSprintf(buf, T("%d"), value);
+ wxSprintf(buf, wxT("%d"), value);
return wxWriteResource(section, entry, buf, file);
}
bool wxGetResource(const wxString& section, const wxString& entry, wxChar **value, const wxString& file)
{
- static const wxChar defunkt[] = T("$$default");
- if (file != T(""))
+ static const wxChar defunkt[] = wxT("$$default");
+ if (file != wxT(""))
{
int n = GetPrivateProfileString((LPCTSTR)WXSTRINGCAST section, (LPCTSTR)WXSTRINGCAST entry, (LPCTSTR)defunkt,
(LPTSTR)wxBuffer, 1000, (LPCTSTR)WXSTRINGCAST file);
void wxEndBusyCursor()
{
wxCHECK_RET( gs_wxBusyCursorCount > 0,
- T("no matching wxBeginBusyCursor() for wxEndBusyCursor()") );
+ wxT("no matching wxBeginBusyCursor() for wxEndBusyCursor()") );
if ( --gs_wxBusyCursorCount == 0 )
{
if ( szHome == NULL ) {
// we're homeless...
wxLogWarning(_("can't find user's HOME, using current directory."));
- strDir = T(".");
+ strDir = wxT(".");
}
else
strDir = szHome;
// add a trailing slash if needed
- if ( strDir.Last() != T('/') )
- strDir << T('/');
+ if ( strDir.Last() != wxT('/') )
+ strDir << wxT('/');
#else // Windows
#ifdef __WIN32__
- const wxChar *szHome = wxGetenv(T("HOMEDRIVE"));
+ const wxChar *szHome = wxGetenv(wxT("HOMEDRIVE"));
if ( szHome != NULL )
strDir << szHome;
- szHome = wxGetenv(T("HOMEPATH"));
+ szHome = wxGetenv(wxT("HOMEPATH"));
if ( szHome != NULL ) {
strDir << szHome;
// create it in our program's dir. However, if the user took care
// to set HOMEPATH to something other than "\\", we suppose that he
// knows what he is doing and use the supplied value.
- if ( wxStrcmp(szHome, T("\\")) != 0 )
+ if ( wxStrcmp(szHome, wxT("\\")) != 0 )
return strDir.c_str();
}
wxChar *home;
wxString user1(user);
- if (user1 != T("")) {
+ if (user1 != wxT("")) {
wxChar tmp[64];
if (wxGetUserId(tmp, sizeof(tmp)/sizeof(char))) {
// Guests belong in the temp dir
- if (wxStricmp(tmp, T("annonymous")) == 0) {
- if ((home = wxGetenv(T("TMP"))) != NULL ||
- (home = wxGetenv(T("TMPDIR"))) != NULL ||
- (home = wxGetenv(T("TEMP"))) != NULL)
- return *home ? home : (wxChar*)T("\\");
+ if (wxStricmp(tmp, wxT("annonymous")) == 0) {
+ if ((home = wxGetenv(wxT("TMP"))) != NULL ||
+ (home = wxGetenv(wxT("TMPDIR"))) != NULL ||
+ (home = wxGetenv(wxT("TEMP"))) != NULL)
+ return *home ? home : (wxChar*)wxT("\\");
}
if (wxStricmp(tmp, WXSTRINGCAST user1) == 0)
- user1 = T("");
+ user1 = wxT("");
}
}
- if (user1 == T(""))
- if ((home = wxGetenv(T("HOME"))) != NULL)
+ if (user1 == wxT(""))
+ if ((home = wxGetenv(wxT("HOME"))) != NULL)
{
wxStrcpy(wxBuffer, home);
Unix2DosFilename(wxBuffer);
return TRUE;//*** temporary?
}
else{
- wxFAIL_MSG(T("wnd==NULL !!!"));
+ wxFAIL_MSG(wxT("wnd==NULL !!!"));
return FALSE;//*** temporary?
}
}
/* make sure DBWIN is open and waiting */
- heventDBWIN = OpenEvent(EVENT_MODIFY_STATE, FALSE, T("DBWIN_BUFFER_READY"));
+ heventDBWIN = OpenEvent(EVENT_MODIFY_STATE, FALSE, wxT("DBWIN_BUFFER_READY"));
if ( !heventDBWIN )
{
- //MessageBox(NULL, T("DBWIN_BUFFER_READY nonexistent"), NULL, MB_OK);
+ //MessageBox(NULL, wxT("DBWIN_BUFFER_READY nonexistent"), NULL, MB_OK);
return;
}
/* get a handle to the data synch object */
- heventData = OpenEvent(EVENT_MODIFY_STATE, FALSE, T("DBWIN_DATA_READY"));
+ heventData = OpenEvent(EVENT_MODIFY_STATE, FALSE, wxT("DBWIN_DATA_READY"));
if ( !heventData )
{
- // MessageBox(NULL, T("DBWIN_DATA_READY nonexistent"), NULL, MB_OK);
+ // MessageBox(NULL, wxT("DBWIN_DATA_READY nonexistent"), NULL, MB_OK);
CloseHandle(heventDBWIN);
return;
}
- hSharedFile = CreateFileMapping((HANDLE)-1, NULL, PAGE_READWRITE, 0, 4096, T("DBWIN_BUFFER"));
+ hSharedFile = CreateFileMapping((HANDLE)-1, NULL, PAGE_READWRITE, 0, 4096, wxT("DBWIN_BUFFER"));
if (!hSharedFile)
{
- //MessageBox(NULL, T("DebugTrace: Unable to create file mapping object DBWIN_BUFFER"), T("Error"), MB_OK);
+ //MessageBox(NULL, wxT("DebugTrace: Unable to create file mapping object DBWIN_BUFFER"), wxT("Error"), MB_OK);
CloseHandle(heventDBWIN);
CloseHandle(heventData);
return;
lpszSharedMem = (LPSTR)MapViewOfFile(hSharedFile, FILE_MAP_WRITE, 0, 0, 512);
if (!lpszSharedMem)
{
- //MessageBox(NULL, T("DebugTrace: Unable to map shared memory"), T("Error"), MB_OK);
+ //MessageBox(NULL, wxT("DebugTrace: Unable to map shared memory"), wxT("Error"), MB_OK);
CloseHandle(heventDBWIN);
CloseHandle(heventData);
return;
*((LPDWORD)lpszSharedMem) = _getpid();
#endif
- wsprintf((LPTSTR)(lpszSharedMem + sizeof(DWORD)), T("%s"), achBuffer);
+ wsprintf((LPTSTR)(lpszSharedMem + sizeof(DWORD)), wxT("%s"), achBuffer);
/* signal data ready event */
SetEvent(heventData);
}
wxASSERT_MSG( data->dwExitCode != STILL_ACTIVE,
- T("process should have terminated") );
+ wxT("process should have terminated") );
// send a message indicating process termination to the window
SendMessage(data->hWnd, wxWM_PROC_TERMINATED, 0, (LPARAM)data);
long wxExecute(const wxString& command, bool sync, wxProcess *handler)
{
- wxCHECK_MSG( !!command, 0, T("empty command in wxExecute") );
+ wxCHECK_MSG( !!command, 0, wxT("empty command in wxExecute") );
#if defined(__WIN32__) && !defined(__TWIN32__)
// the old code is disabled because we really need a process handle
// termination
HWND hwnd = ::CreateWindow(wxPanelClassName, NULL, 0, 0, 0, 0, 0, NULL,
(HMENU)NULL, wxGetInstance(), 0);
- wxASSERT_MSG( hwnd, T("can't create a hidden window for wxExecute") );
+ wxASSERT_MSG( hwnd, wxT("can't create a hidden window for wxExecute") );
FARPROC ExecuteWindowInstance = MakeProcInstance((FARPROC)wxExecuteWindowCbk,
wxGetInstance());
data->state = sync;
if ( sync )
{
- wxASSERT_MSG( !handler, T("wxProcess param ignored for sync execution") );
+ wxASSERT_MSG( !handler, wxT("wxProcess param ignored for sync execution") );
data->handler = NULL;
}
HRSRC hresInfo;
#if defined(__WIN32__) && !defined(__TWIN32__)
#ifdef _UNICODE
- hresInfo = ::FindResourceW((HMODULE) wxhInstance, fileName, T("WAVE"));
+ hresInfo = ::FindResourceW((HMODULE) wxhInstance, fileName, wxT("WAVE"));
#else
- hresInfo = ::FindResourceA((HMODULE) wxhInstance, fileName, T("WAVE"));
+ hresInfo = ::FindResourceA((HMODULE) wxhInstance, fileName, wxT("WAVE"));
#endif
#else
- hresInfo = ::FindResource((HMODULE) wxhInstance, fileName, T("WAVE"));
+ hresInfo = ::FindResource((HMODULE) wxhInstance, fileName, wxT("WAVE"));
#endif
if (!hresInfo)
return FALSE;
long style,
const wxString& name)
{
- wxCHECK_MSG( parent, FALSE, T("can't create wxWindow without parent") );
+ wxCHECK_MSG( parent, FALSE, wxT("can't create wxWindow without parent") );
if ( !CreateBase(parent, id, pos, size, style, wxDefaultValidator, name) )
return FALSE;
{
WXHANDLE hFont = m_font.GetResourceHandle();
- wxASSERT_MSG( hFont, T("should have valid font") );
+ wxASSERT_MSG( hFont, wxT("should have valid font") );
::SendMessage(hWnd, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE, 0));
}
}
wxASSERT_MSG( m_cursor.Ok(),
- T("cursor must be valid after call to the base version"));
+ wxT("cursor must be valid after call to the base version"));
HWND hWnd = GetHwnd();
void wxWindow::SubclassWin(WXHWND hWnd)
{
- wxASSERT_MSG( !m_oldWndProc, T("subclassing window twice?") );
+ wxASSERT_MSG( !m_oldWndProc, wxT("subclassing window twice?") );
HWND hwnd = (HWND)hWnd;
- wxCHECK_RET( ::IsWindow(hwnd), T("invalid HWND in SubclassWin") );
+ wxCHECK_RET( ::IsWindow(hwnd), wxT("invalid HWND in SubclassWin") );
wxAssociateWinWithHandle(hwnd, this);
{
m_hWnd = 0;
- wxCHECK_RET( ::IsWindow(hwnd), T("invalid HWND in UnsubclassWin") );
+ wxCHECK_RET( ::IsWindow(hwnd), wxT("invalid HWND in UnsubclassWin") );
FARPROC farProc = (FARPROC) GetWindowLong(hwnd, GWL_WNDPROC);
if ( (m_oldWndProc != 0) && (farProc != (FARPROC) m_oldWndProc) )
{
// trace all messages - useful for the debugging
#ifdef __WXDEBUG__
- wxLogTrace(wxTraceMessages, T("Processing %s(wParam=%8lx, lParam=%8lx)"),
+ wxLogTrace(wxTraceMessages, wxT("Processing %s(wParam=%8lx, lParam=%8lx)"),
wxGetMessageName(message), wParam, lParam);
#endif // __WXDEBUG__
if ( !processed )
{
#ifdef __WXDEBUG__
- wxLogTrace(wxTraceMessages, T("Forwarding %s to DefWindowProc."),
+ wxLogTrace(wxTraceMessages, wxT("Forwarding %s to DefWindowProc."),
wxGetMessageName(message));
#endif // __WXDEBUG__
rc.result = MSWDefWindowProc(message, wParam, lParam);
// adding NULL hWnd is (first) surely a result of an error and
// (secondly) breaks menu command processing
wxCHECK_RET( hWnd != (HWND)NULL,
- T("attempt to add a NULL hWnd to window list ignored") );
+ wxT("attempt to add a NULL hWnd to window list ignored") );
wxWindow *oldWin = wxFindWinFromHandle((WXHWND) hWnd);
int chars = GetMenuString(hMenu, i, buf, 100, MF_BYPOSITION);
if ( !chars )
{
- wxLogLastError(T("GetMenuString"));
+ wxLogLastError(wxT("GetMenuString"));
continue;
}
- if ( wxStrcmp(buf, T("&Window")) == 0 )
+ if ( wxStrcmp(buf, wxT("&Window")) == 0 )
{
RemoveMenu(hMenu, i, MF_BYPOSITION);
if ( !::SetWindowPos(GetHwnd(), HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOSIZE | SWP_NOMOVE) )
{
- wxLogLastError(T("SetWindowPos"));
+ wxLogLastError(wxT("SetWindowPos"));
}
}
// move the dialog to its initial position without forcing repainting
if ( !::MoveWindow(GetHwnd(), x1, y1, width1, height1, FALSE) )
{
- wxLogLastError(T("MoveWindow"));
+ wxLogLastError(wxT("MoveWindow"));
}
}
else
wxString className(wclass);
if ( GetWindowStyleFlag() & wxNO_FULL_REPAINT_ON_RESIZE )
{
- className += T("NR");
+ className += wxT("NR");
}
m_hWnd = (WXHWND)CreateWindowEx(extendedStyle,
wclass,
- title ? title : T(""),
+ title ? title : wxT(""),
style,
x1, y1,
width1, height1,
break;
default:
- wxFAIL_MSG(T("no such joystick event"));
+ wxFAIL_MSG(wxT("no such joystick event"));
return FALSE;
}
if ( !m_hWnd )
{
#ifdef __WXDEBUG__
- wxLogError(T("Failed to create a control of class '%s'"), classname);
+ wxLogError(wxT("Failed to create a control of class '%s'"), classname);
#endif // DEBUG
return FALSE;
wxColour wxNullColour;
// Default window names
-const wxChar *wxButtonNameStr = T("button");
-const wxChar *wxCanvasNameStr = T("canvas");
-const wxChar *wxCheckBoxNameStr = T("check");
-const wxChar *wxChoiceNameStr = T("choice");
-const wxChar *wxComboBoxNameStr = T("comboBox");
-const wxChar *wxDialogNameStr = T("dialog");
-const wxChar *wxFrameNameStr = T("frame");
-const wxChar *wxGaugeNameStr = T("gauge");
-const wxChar *wxStaticBoxNameStr = T("groupBox");
-const wxChar *wxListBoxNameStr = T("listBox");
-const wxChar *wxStaticTextNameStr = T("message");
-const wxChar *wxStaticBitmapNameStr = T("message");
-const wxChar *wxMultiTextNameStr = T("multitext");
-const wxChar *wxPanelNameStr = T("panel");
-const wxChar *wxRadioBoxNameStr = T("radioBox");
-const wxChar *wxRadioButtonNameStr = T("radioButton");
-const wxChar *wxBitmapRadioButtonNameStr = T("radioButton");
-const wxChar *wxScrollBarNameStr = T("scrollBar");
-const wxChar *wxSliderNameStr = T("slider");
-const wxChar *wxStaticNameStr = T("static");
-const wxChar *wxTextCtrlWindowNameStr = T("textWindow");
-const wxChar *wxTextCtrlNameStr = T("text");
-const wxChar *wxVirtListBoxNameStr = T("virtListBox");
-const wxChar *wxButtonBarNameStr = T("buttonbar");
-const wxChar *wxEnhDialogNameStr = T("Shell");
-const wxChar *wxToolBarNameStr = T("toolbar");
-const wxChar *wxStatusLineNameStr = T("status_line");
-const wxChar *wxEmptyString = T("");
-const wxChar *wxGetTextFromUserPromptStr = T("Input Text");
-const wxChar *wxMessageBoxCaptionStr = T("Message");
-const wxChar *wxFileSelectorPromptStr = T("Select a file");
-const wxChar *wxFileSelectorDefaultWildcardStr = T("*.*");
-const wxChar *wxInternalErrorStr = T("wxWindows Internal Error");
-const wxChar *wxFatalErrorStr = T("wxWindows Fatal Error");
-const wxChar *wxTreeCtrlNameStr = T("treeCtrl");
-const wxChar *wxDirDialogNameStr = T("wxDirCtrl");
-const wxChar *wxDirDialogDefaultFolderStr = T("/");
+const wxChar *wxButtonNameStr = wxT("button");
+const wxChar *wxCanvasNameStr = wxT("canvas");
+const wxChar *wxCheckBoxNameStr = wxT("check");
+const wxChar *wxChoiceNameStr = wxT("choice");
+const wxChar *wxComboBoxNameStr = wxT("comboBox");
+const wxChar *wxDialogNameStr = wxT("dialog");
+const wxChar *wxFrameNameStr = wxT("frame");
+const wxChar *wxGaugeNameStr = wxT("gauge");
+const wxChar *wxStaticBoxNameStr = wxT("groupBox");
+const wxChar *wxListBoxNameStr = wxT("listBox");
+const wxChar *wxStaticTextNameStr = wxT("message");
+const wxChar *wxStaticBitmapNameStr = wxT("message");
+const wxChar *wxMultiTextNameStr = wxT("multitext");
+const wxChar *wxPanelNameStr = wxT("panel");
+const wxChar *wxRadioBoxNameStr = wxT("radioBox");
+const wxChar *wxRadioButtonNameStr = wxT("radioButton");
+const wxChar *wxBitmapRadioButtonNameStr = wxT("radioButton");
+const wxChar *wxScrollBarNameStr = wxT("scrollBar");
+const wxChar *wxSliderNameStr = wxT("slider");
+const wxChar *wxStaticNameStr = wxT("static");
+const wxChar *wxTextCtrlWindowNameStr = wxT("textWindow");
+const wxChar *wxTextCtrlNameStr = wxT("text");
+const wxChar *wxVirtListBoxNameStr = wxT("virtListBox");
+const wxChar *wxButtonBarNameStr = wxT("buttonbar");
+const wxChar *wxEnhDialogNameStr = wxT("Shell");
+const wxChar *wxToolBarNameStr = wxT("toolbar");
+const wxChar *wxStatusLineNameStr = wxT("status_line");
+const wxChar *wxEmptyString = wxT("");
+const wxChar *wxGetTextFromUserPromptStr = wxT("Input Text");
+const wxChar *wxMessageBoxCaptionStr = wxT("Message");
+const wxChar *wxFileSelectorPromptStr = wxT("Select a file");
+const wxChar *wxFileSelectorDefaultWildcardStr = wxT("*.*");
+const wxChar *wxInternalErrorStr = wxT("wxWindows Internal Error");
+const wxChar *wxFatalErrorStr = wxT("wxWindows Fatal Error");
+const wxChar *wxTreeCtrlNameStr = wxT("treeCtrl");
+const wxChar *wxDirDialogNameStr = wxT("wxDirCtrl");
+const wxChar *wxDirDialogDefaultFolderStr = wxT("/");
// See wx/utils.h
-const wxChar *wxFloatToStringStr = T("%.2f");
-const wxChar *wxDoubleToStringStr = T("%.2f");
+const wxChar *wxFloatToStringStr = wxT("%.2f");
+const wxChar *wxDoubleToStringStr = wxT("%.2f");
#ifdef __WXMSW__
-const wxChar *wxUserResourceStr = T("TEXT");
+const wxChar *wxUserResourceStr = wxT("TEXT");
#endif
#if wxUSE_SHARED_LIBRARY
wxPaintDC::wxPaintDC(wxWindow *canvas)
{
- wxCHECK_RET( canvas, T("NULL canvas in wxPaintDC ctor") );
+ wxCHECK_RET( canvas, wxT("NULL canvas in wxPaintDC ctor") );
#ifdef __WXDEBUG__
if ( g_isPainting <= 0 )
{
- wxFAIL_MSG( T("wxPaintDC may be created only in EVT_PAINT handler!") );
+ wxFAIL_MSG( wxT("wxPaintDC may be created only in EVT_PAINT handler!") );
return;
}
size_t index;
wxPaintDCInfo *info = FindInCache(&index);
- wxCHECK_RET( info, T("existing DC should have a cache entry") );
+ wxCHECK_RET( info, wxT("existing DC should have a cache entry") );
if ( !--info->count )
{
m_isInteractive = interactive;
- if (!file.IsNull() && file != T(""))
+ if (!file.IsNull() && file != wxT(""))
m_printData.SetFilename(file);
/*
else
#endif
*/
- if ((!driver_name.IsNull() && driver_name != T("")) &&
- (!device_name.IsNull() && device_name != T("")) &&
- (!file.IsNull() && file != T("")))
+ if ((!driver_name.IsNull() && driver_name != wxT("")) &&
+ (!device_name.IsNull() && device_name != wxT("")) &&
+ (!file.IsNull() && file != wxT("")))
{
m_hDC = (WXHDC) ::DevOpenDC( hab
,OD_QUEUED
if (ret <= 0)
{
DWORD lastError = GetLastError();
- wxLogDebug(T("wxDC::StartDoc failed with error: %d\n"), lastError);
+ wxLogDebug(wxT("wxDC::StartDoc failed with error: %d\n"), lastError);
}
#endif
return (ret > 0);
GlobalFree(pd.hDevMode);
pd.hDevMode=NULL;
}
- return ( deviceName != T("") );
+ return ( deviceName != wxT("") );
*/
return(TRUE);
}
wxChar* deviceName;
wxChar* portName = (wxChar*) NULL; // Obsolete in WIN32
- if (devNameStr == T(""))
+ if (devNameStr == wxT(""))
deviceName = (wxChar*) NULL;
else
deviceName = WXSTRINGCAST devNameStr;
if ( hDevMode )
lpDevMode = (DEVMODE*) GlobalLock(hDevMode);
- if (devNameStr == T(""))
+ if (devNameStr == wxT(""))
{
// Retrieve the default device name
wxString portName;
bool ret = wxGetDefaultDeviceName(devNameStr, portName);
- wxASSERT_MSG( ret, T("Could not get default device name.") );
+ wxASSERT_MSG( ret, wxT("Could not get default device name.") );
deviceName = WXSTRINGCAST devNameStr;
}
// otherwise it would look too strange)
// const wxChar *dlg;
// if ( style & wxRESIZE_BORDER )
-// dlg = T("wxResizeableDialog");
+// dlg = wxT("wxResizeableDialog");
// else if ( style & wxCAPTION )
-// dlg = T("wxCaptionDialog");
+// dlg = wxT("wxCaptionDialog");
// else
-// dlg = T("wxNoCaptionDialog");
+// dlg = wxT("wxNoCaptionDialog");
// MSWCreate(m_windowId, parent, NULL, this, NULL,
// x, y, width, height,
// 0, // style is not used if we have dlg template
//
// if ( !hwnd )
// {
-// wxLogError(T("Failed to create dialog."));
+// wxLogError(wxT("Failed to create dialog."));
//
// return FALSE;
// }
{
// VZ: the old code returned FALSE in this case, but it doesn't seem
// to make sense because the font _was_ created
- wxLogDebug(T("Calling wxFont::RealizeResource() twice"));
+ wxLogDebug(wxT("Calling wxFont::RealizeResource() twice"));
return TRUE;
}
{
case wxSCRIPT:
// ff_family = FF_SCRIPT ;
- ff_face = T("Script") ;
+ ff_face = wxT("Script") ;
break ;
case wxDECORATIVE:
case wxROMAN:
// ff_family = FF_ROMAN;
- ff_face = T("Times New Roman") ;
+ ff_face = wxT("Times New Roman") ;
break;
case wxTELETYPE:
case wxMODERN:
// ff_family = FF_MODERN;
- ff_face = T("Courier New") ;
+ ff_face = wxT("Courier New") ;
break;
case wxSWISS:
// ff_family = FF_SWISS;
- ff_face = T("Arial") ;
+ ff_face = wxT("Arial") ;
break;
case wxDEFAULT:
default:
// ff_family = FF_SWISS;
- ff_face = T("Arial") ;
+ ff_face = wxT("Arial") ;
}
BYTE ff_italic;
break;
default:
- wxFAIL_MSG(T("unknown font slant"));
+ wxFAIL_MSG(wxT("unknown font slant"));
// fall through
case wxNORMAL:
switch ( M_FONTDATA->m_weight )
{
default:
- wxFAIL_MSG(T("unknown font weight"));
+ wxFAIL_MSG(wxT("unknown font weight"));
// fall through
case wxNORMAL:
break;
default:
- wxFAIL_MSG(T("unsupported encoding"));
+ wxFAIL_MSG(wxT("unsupported encoding"));
// fall through
case wxFONTENCODING_SYSTEM:
{
// VZ: calling CreateStatusBar twice is an error - why anyone would do it?
wxCHECK_MSG( m_frameStatusBar == NULL, FALSE,
- T("recreating status bar in wxFrame") );
+ wxT("recreating status bar in wxFrame") );
m_frameStatusBar = OnCreateStatusBar(number, style, id,
name);
void wxFrame::SetStatusText(const wxString& text, int number)
{
- wxCHECK_RET( m_frameStatusBar != NULL, T("no statusbar to set text for") );
+ wxCHECK_RET( m_frameStatusBar != NULL, wxT("no statusbar to set text for") );
m_frameStatusBar->SetStatusText(text, number);
}
void wxFrame::SetStatusWidths(int n, const int widths_field[])
{
- wxCHECK_RET( m_frameStatusBar != NULL, T("no statusbar to set widths for") );
+ wxCHECK_RET( m_frameStatusBar != NULL, wxT("no statusbar to set widths for") );
m_frameStatusBar->SetStatusWidths(n, widths_field);
PositionStatusBar();
return;
}
-// Fix this in wxMenuBar wxCHECK_RET( !menu_bar->GetFrame(), T("this menubar is already attached") );
+// Fix this in wxMenuBar wxCHECK_RET( !menu_bar->GetFrame(), wxT("this menubar is already attached") );
if (m_frameMenuBar)
delete m_frameMenuBar;
wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name)
{
wxCHECK_MSG( m_frameToolBar == NULL, FALSE,
- T("recreating toolbar in wxFrame") );
+ wxT("recreating toolbar in wxFrame") );
wxToolBar* toolBar = OnCreateToolBar(style, id, name);
if (toolBar)
msFlags |= ZYZGS_3D;
HWND wx_button =
- CreateWindowEx(MakeExtendedStyle(m_windowStyle), T("zYzGauge"), NULL, msFlags,
+ CreateWindowEx(MakeExtendedStyle(m_windowStyle), wxT("zYzGauge"), NULL, msFlags,
0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId,
wxGetInstance(), NULL);
/* static global variables */
-//static wxChar gszzYzGaugeClass[] = T("zYzGauge");
+//static wxChar gszzYzGaugeClass[] = wxT("zYzGauge");
/* window word position definitions */
/* Get a DC to determine whether device is mono or not, and set
* default foreground/background colors as appropriate.
*/
-// hdc = CreateIC(T("DISPLAY"), NULL, NULL, 0L) ;
+// hdc = CreateIC(wxT("DISPLAY"), NULL, NULL, 0L) ;
// if (hdc)
// {
/* check for mono-display */
// hFont = (HFONT) SelectObject(hdc, pgauge->hFont);
/* build up a string to blit out--ie the meaning of life: "42%" */
-// wsprintf(ach, T("%3d%%"), (WORD)((DWORD)iPos * 100 / iRange));
+// wsprintf(ach, wxT("%3d%%"), (WORD)((DWORD)iPos * 100 / iRange));
/* Win32s has no GetTextExtent(); let's try GetTextExtentPoint() instead */
//#if defined(__WIN32__)
// GetTextExtentPoint(hdc, ach, wGomerX = lstrlen(ach), &size);
// TODO
m_bChecked = bDoCheck;
}
-}
\ No newline at end of file
long style,
const wxString& name)
{
- wxCHECK_MSG( parent, FALSE, T("can't create wxWindow without parent") );
+ wxCHECK_MSG( parent, FALSE, wxT("can't create wxWindow without parent") );
if ( !CreateBase(parent, id, pos, size, style, wxDefaultValidator, name) )
return FALSE;
if (m_hWnd)
{
if(!WinDestroyWindow(GetHWND()))
- wxLogLastError(T("DestroyWindow"));
+ wxLogLastError(wxT("DestroyWindow"));
// remove hWnd <-> wxWindow association
wxRemoveHandleAssociation(this);
}
int chars = (int)WinSendMsg(hMenu, MM_QUERYITEMTEXT, MPFROM2SHORT(i, N), buf);
if ( !chars )
{
- wxLogLastError(T("GetMenuString"));
+ wxLogLastError(wxT("GetMenuString"));
continue;
}
- if ( wxStrcmp(buf, T("&Window")) == 0 )
+ if ( wxStrcmp(buf, wxT("&Window")) == 0 )
{
WinSendMsg(hMenu, MM_DELETEITEM, MPFROM2SHORT(i, TRUE), 0);
break;
// adding NULL hWnd is (first) surely a result of an error and
// (secondly) breaks menu command processing
wxCHECK_RET( hWnd != (HWND)NULL,
- T("attempt to add a NULL hWnd to window list ignored") );
+ wxT("attempt to add a NULL hWnd to window list ignored") );
if ( !wxWinHandleList->Find((long)hWnd) )
wxWinHandleList->Append((long)hWnd, win);
void wxWindow::SubclassWin(WXHWND hWnd)
{
- wxASSERT_MSG( !m_oldWndProc, T("subclassing window twice?") );
+ wxASSERT_MSG( !m_oldWndProc, wxT("subclassing window twice?") );
HWND hwnd = (HWND)hWnd;
/*
* TODO: implement something like this:
-* wxCHECK_RET( ::IsWindow(hwnd), T("invalid HWND in SubclassWin") );
+* wxCHECK_RET( ::IsWindow(hwnd), wxT("invalid HWND in SubclassWin") );
*
* wxAssociateWinWithHandle(hwnd, this);
*
{
m_hWnd = 0;
- wxCHECK_RET( ::IsWindow(hwnd), T("invalid HWND in UnsubclassWin") );
+ wxCHECK_RET( ::IsWindow(hwnd), wxT("invalid HWND in UnsubclassWin") );
FARPROC farProc = (FARPROC) GetWindowLong(hwnd, GWL_WNDPROC);
if ( (m_oldWndProc != 0) && (farProc != (FARPROC) m_oldWndProc) )
pngpread.obj pngtrans.obj pngwrite.obj pngwtran.obj pngwutil.obj \
pngerror.obj pngmem.obj pngwio.obj pngrio.obj pngget.obj pngset.obj
-!include $(WXWIN)\src\makelib.b32
\ No newline at end of file
// TODO
m_bChecked = bDoCheck;
}
-}
\ No newline at end of file
wxMutex::~wxMutex()
{
if (m_locked > 0)
- wxLogDebug(T("Freeing a locked mutex (%d locks)"), m_locked);
+ wxLogDebug(wxT("Freeing a locked mutex (%d locks)"), m_locked);
pthread_mutex_destroy( &(p_internal->p_mutex) );
delete p_internal;
int err = pthread_mutex_lock( &(p_internal->p_mutex) );
if (err == EDEADLK)
{
- wxLogDebug(T("Locking this mutex would lead to deadlock!"));
+ wxLogDebug(wxT("Locking this mutex would lead to deadlock!"));
return wxMUTEX_DEAD_LOCK;
}
}
else
{
- wxLogDebug(T("Unlocking not locked mutex."));
+ wxLogDebug(wxT("Unlocking not locked mutex."));
return wxMUTEX_UNLOCKED;
}
// terminate the thread
thread->Exit(status);
- wxFAIL_MSG(T("wxThread::Exit() can't return."));
+ wxFAIL_MSG(wxT("wxThread::Exit() can't return."));
return NULL;
}
wxThreadError wxThreadInternal::Run()
{
wxCHECK_MSG( GetState() == STATE_NEW, wxTHREAD_RUNNING,
- T("thread may only be started once after successful Create()") );
+ wxT("thread may only be started once after successful Create()") );
// the mutex was locked on Create(), so we will be able to lock it again
// only when the thread really starts executing and enters the wait -
void wxThreadInternal::Wait()
{
- wxCHECK_RET( WasCancelled(), T("thread should have been cancelled first") );
+ wxCHECK_RET( WasCancelled(), wxT("thread should have been cancelled first") );
// if the thread we're waiting for is waiting for the GUI mutex, we will
// deadlock so make sure we release it temporarily
// the state is set from the thread which pauses us first, this function
// is called later so the state should have been already set
wxCHECK_RET( m_state == STATE_PAUSED,
- T("thread must first be paused with wxThread::Pause().") );
+ wxT("thread must first be paused with wxThread::Pause().") );
// don't pause the thread which is being terminated - this would lead to
// deadlock if the thread is paused after Delete() had called Resume() but
void wxThreadInternal::Resume()
{
wxCHECK_RET( m_state == STATE_PAUSED,
- T("can't resume thread which is not suspended.") );
+ wxT("can't resume thread which is not suspended.") );
// we will be able to lock this mutex only when Pause() starts waiting
wxMutexLocker lock(m_mutexSuspend);
wxThreadError wxThread::Run()
{
wxCHECK_MSG( p_internal->GetId(), wxTHREAD_MISC_ERROR,
- T("must call wxThread::Create() first") );
+ wxT("must call wxThread::Create() first") );
return p_internal->Run();
}
{
wxCHECK_RET( ((int)WXTHREAD_MIN_PRIORITY <= (int)prio) &&
((int)prio <= (int)WXTHREAD_MAX_PRIORITY),
- T("invalid thread priority") );
+ wxT("invalid thread priority") );
wxCriticalSectionLocker lock(m_critsect);
case STATE_EXITED:
default:
- wxFAIL_MSG(T("impossible to set thread priority in this state"));
+ wxFAIL_MSG(wxT("impossible to set thread priority in this state"));
}
}
if ( p_internal->GetState() != STATE_RUNNING )
{
- wxLogDebug(T("Can't pause thread which is not running."));
+ wxLogDebug(wxT("Can't pause thread which is not running."));
return wxTHREAD_NOT_RUNNING;
}
}
else
{
- wxLogDebug(T("Attempt to resume a thread which is not paused."));
+ wxLogDebug(wxT("Attempt to resume a thread which is not paused."));
return wxTHREAD_MISC_ERROR;
}
if ( p_internal->GetState() != STATE_EXITED &&
p_internal->GetState() != STATE_NEW )
{
- wxLogDebug(T("The thread is being destroyed although it is still "
+ wxLogDebug(wxT("The thread is being destroyed although it is still "
"running! The application may crash."));
}
void wxThreadModule::OnExit()
{
- wxASSERT_MSG( wxThread::IsMain(), T("only main thread can be here") );
+ wxASSERT_MSG( wxThread::IsMain(), wxT("only main thread can be here") );
// terminate any threads left
size_t count = gs_allThreads.GetCount();
if ( count != 0u )
- wxLogDebug(T("Some threads were not terminated by the application."));
+ wxLogDebug(wxT("Some threads were not terminated by the application."));
for ( size_t n = 0u; n < count; n++ )
{
long wxExecute( const wxString& command, bool sync, wxProcess *process )
{
- wxCHECK_MSG( !command.IsEmpty(), 0, T("can't exec empty command") );
+ wxCHECK_MSG( !command.IsEmpty(), 0, wxT("can't exec empty command") );
int argc = 0;
wxChar *argv[WXEXECUTE_NARGS];
wxString argument;
const wxChar *cptr = command.c_str();
- wxChar quotechar = T('\0'); // is arg quoted?
+ wxChar quotechar = wxT('\0'); // is arg quoted?
bool escaped = FALSE;
// split the command line in arguments
do
{
- argument=T("");
- quotechar = T('\0');
+ argument=wxT("");
+ quotechar = wxT('\0');
// eat leading whitespace:
while ( wxIsspace(*cptr) )
cptr++;
- if ( *cptr == T('\'') || *cptr == T('"') )
+ if ( *cptr == wxT('\'') || *cptr == wxT('"') )
quotechar = *cptr++;
do
{
- if ( *cptr == T('\\') && ! escaped )
+ if ( *cptr == wxT('\\') && ! escaped )
{
escaped = TRUE;
cptr++;
// have we reached the end of the argument?
if ( (*cptr == quotechar && ! escaped)
- || (quotechar == T('\0') && wxIsspace(*cptr))
- || *cptr == T('\0') )
+ || (quotechar == wxT('\0') && wxIsspace(*cptr))
+ || *cptr == wxT('\0') )
{
wxASSERT_MSG( argc < WXEXECUTE_NARGS,
- T("too many arguments in wxExecute") );
+ wxT("too many arguments in wxExecute") );
argv[argc] = new wxChar[argument.length() + 1];
wxStrcpy(argv[argc], argument.c_str());
{
wxString cmd;
if ( !!command )
- cmd.Printf(T("xterm -e %s"), command.c_str());
+ cmd.Printf(wxT("xterm -e %s"), command.c_str());
else
cmd = command;
long wxExecute( wxChar **argv, bool sync, wxProcess *process )
{
- wxCHECK_MSG( *argv, 0, T("can't exec empty command") );
+ wxCHECK_MSG( *argv, 0, wxT("can't exec empty command") );
#if wxUSE_UNICODE
int mb_argc = 0;
if ( sync )
{
- wxASSERT_MSG( !process, T("wxProcess param ignored for sync exec") );
+ wxASSERT_MSG( !process, wxT("wxProcess param ignored for sync exec") );
data->process = NULL;
// sync execution: indicate it by negating the pid
return pid;
}
#else // !wxUSE_GUI
- wxASSERT_MSG( sync, T("async execution not supported yet") );
+ wxASSERT_MSG( sync, wxT("async execution not supported yet") );
int exitcode = 0;
if ( waitpid(pid, &exitcode, 0) == -1 || !WIFEXITED(exitcode) )
{
*home = wxGetUserHome( wxString() );
if ( home->IsEmpty() )
- *home = T("/");
+ *home = wxT("/");
return home->c_str();
}
{
wxChar *ptr;
- if ((ptr = wxGetenv(T("HOME"))) != NULL)
+ if ((ptr = wxGetenv(wxT("HOME"))) != NULL)
{
return ptr;
}
- if ((ptr = wxGetenv(T("USER"))) != NULL || (ptr = wxGetenv(T("LOGNAME"))) != NULL)
+ if ((ptr = wxGetenv(wxT("USER"))) != NULL || (ptr = wxGetenv(wxT("LOGNAME"))) != NULL)
{
who = getpwnam(wxConvertWX2MB(ptr));
}
// private use only)
static bool wxGetHostNameInternal(wxChar *buf, int sz)
{
- wxCHECK_MSG( buf, FALSE, T("NULL pointer in wxGetHostNameInternal") );
+ wxCHECK_MSG( buf, FALSE, wxT("NULL pointer in wxGetHostNameInternal") );
- *buf = T('\0');
+ *buf = wxT('\0');
// we're using uname() which is POSIX instead of less standard sysinfo()
#if defined(HAVE_UNAME)
if ( ok )
{
wxStrncpy(buf, wxConvertMB2WX(uts.nodename), sz - 1);
- buf[sz] = T('\0');
+ buf[sz] = wxT('\0');
}
#elif defined(HAVE_GETHOSTNAME)
bool ok = gethostname(buf, sz) != -1;
#else // no uname, no gethostname
- wxFAIL_MSG(T("don't know host name for this machine"));
+ wxFAIL_MSG(wxT("don't know host name for this machine"));
bool ok = FALSE;
#endif // uname/gethostname
{
// BSD systems return the FQDN, we only want the hostname, so extract
// it (we consider that dots are domain separators)
- wxChar *dot = wxStrchr(buf, T('.'));
+ wxChar *dot = wxStrchr(buf, wxT('.'));
if ( dot )
{
// nuke it
- *dot = T('\0');
+ *dot = wxT('\0');
}
}
if ( ok )
{
- if ( !wxStrchr(buf, T('.')) )
+ if ( !wxStrchr(buf, wxT('.')) )
{
struct hostent *host = gethostbyname(wxConvertWX2MB(buf));
if ( !host )
{
struct passwd *who;
- *buf = T('\0');
+ *buf = wxT('\0');
if ((who = getpwuid(getuid ())) != NULL)
{
wxStrncpy (buf, wxConvertMB2WX(who->pw_name), sz - 1);
struct passwd *who;
char *comma;
- *buf = T('\0');
+ *buf = wxT('\0');
if ((who = getpwuid (getuid ())) != NULL) {
comma = strchr(who->pw_gecos, ',');
if (comma)
void wxError( const wxString &msg, const wxString &title )
{
wxFprintf( stderr, _("Error ") );
- if (!title.IsNull()) wxFprintf( stderr, T("%s "), WXSTRINGCAST(title) );
- if (!msg.IsNull()) wxFprintf( stderr, T(": %s"), WXSTRINGCAST(msg) );
- wxFprintf( stderr, T(".\n") );
+ if (!title.IsNull()) wxFprintf( stderr, wxT("%s "), WXSTRINGCAST(title) );
+ if (!msg.IsNull()) wxFprintf( stderr, wxT(": %s"), WXSTRINGCAST(msg) );
+ wxFprintf( stderr, wxT(".\n") );
}
void wxFatalError( const wxString &msg, const wxString &title )
{
wxFprintf( stderr, _("Error ") );
- if (!title.IsNull()) wxFprintf( stderr, T("%s "), WXSTRINGCAST(title) );
- if (!msg.IsNull()) wxFprintf( stderr, T(": %s"), WXSTRINGCAST(msg) );
- wxFprintf( stderr, T(".\n") );
+ if (!title.IsNull()) wxFprintf( stderr, wxT("%s "), WXSTRINGCAST(title) );
+ if (!msg.IsNull()) wxFprintf( stderr, wxT(": %s"), WXSTRINGCAST(msg) );
+ wxFprintf( stderr, wxT(".\n") );
exit(3); // the same exit code as for abort()
}
wxString xfamily;
switch (family)
{
- case wxDECORATIVE: xfamily = T("lucida"); break;
- case wxROMAN: xfamily = T("times"); break;
- case wxMODERN: xfamily = T("courier"); break;
- case wxSWISS: xfamily = T("helvetica"); break;
- case wxTELETYPE: xfamily = T("lucidatypewriter"); break;
- case wxSCRIPT: xfamily = T("utopia"); break;
- default: xfamily = T("*");
+ case wxDECORATIVE: xfamily = wxT("lucida"); break;
+ case wxROMAN: xfamily = wxT("times"); break;
+ case wxMODERN: xfamily = wxT("courier"); break;
+ case wxSWISS: xfamily = wxT("helvetica"); break;
+ case wxTELETYPE: xfamily = wxT("lucidatypewriter"); break;
+ case wxSCRIPT: xfamily = wxT("utopia"); break;
+ default: xfamily = wxT("*");
}
wxString fontSpec;
if (!facename.IsEmpty())
{
- fontSpec.Printf(T("-*-%s-*-*-normal-*-*-*-*-*-*-*-*-*"),
+ fontSpec.Printf(wxT("-*-%s-*-*-normal-*-*-*-*-*-*-*-*-*"),
facename.c_str());
if ( wxTestFontSpec(fontSpec) )
wxString xstyle;
switch (style)
{
- case wxITALIC: xstyle = T("i"); break;
- case wxSLANT: xstyle = T("o"); break;
- case wxNORMAL: xstyle = T("r"); break;
- default: xstyle = T("*"); break;
+ case wxITALIC: xstyle = wxT("i"); break;
+ case wxSLANT: xstyle = wxT("o"); break;
+ case wxNORMAL: xstyle = wxT("r"); break;
+ default: xstyle = wxT("*"); break;
}
wxString xweight;
switch (weight)
{
- case wxBOLD: xweight = T("bold"); break;
+ case wxBOLD: xweight = wxT("bold"); break;
case wxLIGHT:
- case wxNORMAL: xweight = T("medium"); break;
- default: xweight = T("*"); break;
+ case wxNORMAL: xweight = wxT("medium"); break;
+ default: xweight = wxT("*"); break;
}
wxString xregistry, xencoding;
case wxFONTENCODING_ISO8859_15:
{
int cp = encoding - wxFONTENCODING_ISO8859_1 + 1;
- xregistry = T("iso8859");
- xencoding.Printf(T("%d"), cp);
+ xregistry = wxT("iso8859");
+ xencoding.Printf(wxT("%d"), cp);
}
break;
case wxFONTENCODING_KOI8:
- xregistry = T("koi8");
- if ( wxTestFontSpec(T("-*-*-*-*-*-*-*-*-*-*-*-*-koi8-1")) )
+ xregistry = wxT("koi8");
+ if ( wxTestFontSpec(wxT("-*-*-*-*-*-*-*-*-*-*-*-*-koi8-1")) )
{
- xencoding = T("1");
+ xencoding = wxT("1");
// test passed, no need to do it once more
test = FALSE;
}
else
{
- xencoding = T("*");
+ xencoding = wxT("*");
}
break;
case wxFONTENCODING_CP1252:
{
int cp = encoding - wxFONTENCODING_CP1250 + 1250;
- fontSpec.Printf(T("-*-*-*-*-*-*-*-*-*-*-*-*-microsoft-cp%d"),
+ fontSpec.Printf(wxT("-*-*-*-*-*-*-*-*-*-*-*-*-microsoft-cp%d"),
cp);
if ( wxTestFontSpec(fontSpec) )
{
- xregistry = T("microsoft");
- xencoding.Printf(T("cp%d"), cp);
+ xregistry = wxT("microsoft");
+ xencoding.Printf(wxT("cp%d"), cp);
// test passed, no need to do it once more
test = FALSE;
else
{
// fall back to LatinX
- xregistry = T("iso8859");
- xencoding.Printf(T("%d"), cp - 1249);
+ xregistry = wxT("iso8859");
+ xencoding.Printf(wxT("%d"), cp - 1249);
}
}
break;
default:
test = FALSE;
xregistry =
- xencoding = T("*");
+ xencoding = wxT("*");
}
if ( test )
{
- fontSpec.Printf(T("-*-*-*-*-*-*-*-*-*-*-*-*-%s-%s"),
+ fontSpec.Printf(wxT("-*-*-*-*-*-*-*-*-*-*-*-*-%s-%s"),
xregistry.c_str(), xencoding.c_str());
if ( !wxTestFontSpec(fontSpec) )
{
// this encoding isn't available - what to do?
xregistry =
- xencoding = T("*");
+ xencoding = wxT("*");
}
}
// construct the X font spec from our data
- fontSpec.Printf(T("-*-%s-%s-%s-normal-*-*-%d-*-*-*-*-%s-%s"),
+ fontSpec.Printf(wxT("-*-%s-%s-%s-normal-*-*-%d-*-*-*-*-%s-%s"),
xfamily.c_str(), xweight.c_str(), xstyle.c_str(),
pointSize, xregistry.c_str(), xencoding.c_str());