may be required for normal operation, but they can usually be set
after construction.
+Removed the deprecated ErrorDialogs and PythonBitmaps modules. If you
+were using these in your apps then please join wxPython-dev and assist
+with a more modern reimplementation.
+
+++ /dev/null
-#----------------------------------------------------------------------------
-# Name: ErrorDialogs.py
-# Version: 1.0
-# Created: September--October 2001
-# Author: Chris Fama of Wholly Snakes Software,
-# Chris.Fama@whollysnakes.com
-#----------------------------------------------------------------------------
-"""
-ErrorDialogs.py: by Christopher J. Fama (trading under the name
-Wholly Snakes Software {Australian Business Number: 28379514278}).
-
-This code is released under the auspices of the modified version of
-the GNU Library Public License (LGPL) that constitutes the license
-under which the GUI package wxPython is released [see the file
-LICENSE.TXT accompanying that distribution). I must also thank Graham
-Boyd, of Boyd Mining, and CEO of the Minserve group of companies
-(www.minserve.com.au), for kindly allowing the release of this
-module under a "free" license, despite a certain part of it's
-development having taken place while working for him...
-
-Please note that this code, written for Python 2.1, is derives from
-code written when Python 1.5.2 was current. Although since Python 2.0
-the sys.excepthook variable has been available, for ease and potential
-backwards compatibility (or to be more realistic
-backwards-PARTIAL-compatibility!), the code catches errors by
-assigning a custom object to sys.stderr and monitoring calls to it's
-writ) method. Such calls which take place with a new value of
-sys.last_traceback stand as evidence that at interpreter error has
-just occurred; please note that this means that NO OTHER OUTPUT TO
-sys.stderr WILL BE DISPLAYED. THIS INCLUDES "warnings" generated by
-the interpreter. As far as I am aware, unless your code itself writes
-to sys.stderr itself, these will be the only things you miss out
-on--and many, if not most or all, of these will occur before your code
-even gets the opportunity to set one of these file-like objects in
-place. If this is a problem for you and you can't work around it,
-please contact means or the wxPython-users mailing list.
-
-
-DOCUMENTATION:
-
-This is a module to display errors--either explicitly requested by a
-script or arbitrary interpreter errors--these needs arose in the
-course of a commercial (contract) project, but were not developed in
-the course of work on such [well, very little, albeit concurrently]...
-[NBNB.Does not currently support display of other than interpreter errors.]
-
-Usage, after 'from wxPython.lib.ErrorDialogs import *' (all
-identifiers defined in this module begin with "wxPy", and many of them
-with "wxPyError_", so there should be no namespace conflicts...):
-
- wxPyNewErrorDialog (<win> (['frame='] <frame (can be None)>,
- <OPTIONS>))
- ...
- wxPyDestroyErrorDialogIfPresent () # e.g. when top frame destroyed)
-
-for unhandled errors, or
-
- returnval = wxpyNonFatalError (<frame (can be None)>,
- <HTML message>
- [,<OPTIONS>])
-or
- returnval = wxPyFatalError (<HTML message>,
- [,<OPTIONS, an extra one of which may be
- 'frame=' <frame (defaults to None)>>])
-or
-
- wxPybNonWindowingError (message)
-
-for explicit errors.
-
-<win> is one of
- wxPyNonFatalErrorDialog
- wxPyFatalErrorDialog
- wxPyFatalErrorDialogWithTraceback
- wxPyNonFatalErrorDialogWithTraceback
- wxPyNonWindowingErrorHandler
-
-and the OPTIONS (with defaults) are: (please note that the options for
-wxPyNonWindowingErrorHandler / wxPyNonWindowingError are 'almost' a (small))
-subset of these):
-
- 'modal' [default 1]: block until dismissed.
-
- 'programname' [default "Python program"]: appears inThe
- caption of the dialog, amidst it's text and (by default) in mailings.
-
- 'whendismissed' option, if given, this should be a string, to be
- executed in a restricted environment (see rexec module) after
- dialog dismissal. Typically, this should be Python code to "clean
- up" after what was presumably the partial execution of some
- operation started by the user, after the unexpected interruption
- by some error [which--at least the way I work, means an unexpected
- error in the code, since exceptions that may be raised by some
- foreseen (in a programmatic sense) should normally be handled by
- try...except clauses].
- NOTE THAT CURRENTLY THE rexec CODE IS NOT WORKING, SO THIS IS JUST DONE
- BY exec...
-
- 'mailto': if None, give no "e-mail support" option, otherwise this
- is meant to be an address for 'bug reports'; a command button will
- be created for this, which pops up another dialog [Linux], or a window of
- another program [Windows].
-
- On Windows, this will launch your mailer (assuming your mailer
- would start when a file with the '.eml'extension is double-clicked
- in Windows Explorer--this will be the case for Microsoft Outlook
- Express [tm and all those legal necessities] if installed, and the
- association has not been taken over by some other program. On
- Linux, it will open a file dialog to save the message, by default
- as a '.html' file...{Please note that, on Windows and with current
- (when I got the machine I'm writing this on--early 2000) versions
- of Outlook Express, you may need to enter your e-mail address in
- the box beside the "mail support" button.)
-
- The template for the mail message is in the 'MessageTemplate'
- attribute of the dialog-derived class in question (e.g.,
- wxPyNonFatalErrorDialog). Search for this in the code below to
- see the default (note that this template is in HTML format). This
- attributes uses the '%{name}s' string conversion feature of Python
- [see sec.2 of the Python Library Reference]; allowed Lance are:
- programname version exceptionname exceptionvalue
- extraexceptioninformation traceback
-
- 'version': str(this) will appear after 'Version' below "Error in
- <programname>" at the top of the dialog.
-
-EXAMPLES:
-
- sys.stderr = wxPyNonFatalErrorWindowWithTraceback (
- parentframe,
- programname='sumthing',
- mailto='me@sumwear',
- whendismissed="from wxPython.wx import * ; wxBell()")
-
-FOR INTERNATIONAL [NON-ENGLISH-SPEAKING] USE:
- wxPyNonFatalErrorDialog and relatives have the method
- SetText(Number NUMBER, STRING)
-
- where STRING is to displayed in the wxStaticText control with ID
- wxPyError_ID_TEXT<NUMBER>--see the automatically-generated code
- for information about the meaning of these...
-
-"""
-
-
-#----------------------------------------------------------------------
-import warnings
-
-warningmsg = r"""\
-
-##############################################################\
-# THIS MODULE IS DEPRECATED and NOT MAINTAINED |
-##############################################################/
-
-"""
-
-warnings.warn(warningmsg, DeprecationWarning, stacklevel=2)
-
-#----------------------------------------------------------------------
-
-
-_debug = 0
-#_debug = 1 # uncomment to display some information (to stdout)
-Version = 1.3
-
-from wxPython.wx import *
-import string, sys, traceback, time, rexec, operator, types, cStringIO, os
-#from wxPython.lib.createandsendHTMLmail import *# now inline
-#import MimeWriter, mimetools, tempfile, smtplib
-import urllib, webbrowser
-
-from ErrorDialogs_wdr import *
-
-# You may see from the above line that I used the excellent RAD tool
-# wxDesigner, by Robert Roebling, to accelerate development of this
-# module... The above is left for the convenience of making future
-# changes with wxDesigner; also so the wxDesigner-generated codedoes
-# not need to precede the "hand-generated" code in this file; finally,
-# as a personal endorsement: it is truly a brilliant time-saver!
-# Please note that, at the time of writing, the wxDesigner-generated
-# output requires manual removal of the PythonBitmaps function--an
-# appropriate version of this function will be imported from a
-# similarly- named module. Another manual change will have to be made
-# to the automatically-generated source: "parent.sizerAroundText = "
-# should be added [immediately] before the text similar to "item13 =
-# wxStaticBoxSizer( item14, wxVERTICAL )", this sizer being the one
-# containing the wxTextCtrl... [IMPORTANT NOTE: THIS LINE SHOULD BE
-# THE ONE INSTANTIATING A wxStat2icBoxSizer, *NOT* THE wxStaticBox
-# ITSELF...] As of version 1.2 [November 2001], this also needs to be
-# done for the {sizers around the} wxPyClickableHtmlWindow's generated in
-# populate_wxPyNonFatalError and populate_wxPyFatalError--note that
-# for ease this sizer is still called "sizerAroundText"...
-
-def wxPyDestroyErrorDialogIfPresent():
- if isinstance(sys.stderr,wxPyNonFatalErrorDialog):
- sys.stderr.Destroy()
- sys.stderr = None
-
-def wxPyNewErrorDialog(dlg):
- wxPyDestroyErrorDialogIfPresent()
- sys.stderr = dlg
-
-class wxPyNonWindowingErrorHandler:
- this_exception = 0
- softspace = 0
- def __init__(self,fatal=0,file=sys.__stderr__):
- self.fatal = fatal
- self.file = file
- def write(self,s):
- import sys
- if s.find("Warning") <> 0\
- and self.this_exception is not sys.last_traceback:
- wxPyNonWindowingError("The Python interpreter encountered an error "
- "not handled by any\nexception handler--this "
- "may represent some programming error.",
- fatal=self.fatal,
- stderr=self.file,
- last=1)
- self.this_exception = sys.last_traceback
-
-def wxPyNonWindowingError(msg,#output=None,errors=None,
- stderr=sys.__stderr__,
- fatal=1,
- last=None):
- if os.path.exists("wxPyNonWindowingErrors.txt"):
- mode = 'a+'
- else:
- mode = 'w'
- fl = open("wxPyNonWindowingErrors.txt",mode)
- if stderr is not None:
- l = [fl,stderr] # so that the error will be written to the file
- # before any potential error in stderr.write()... (this is largely
- # for my own sake in developing...)
- else:
- l = [fl]
- for f in l:
- f.write(time.ctime (time.time ()) + ": ")
- f.write(msg)
- #f.flush()
- if sys.exc_info () [0] is not None:
- if last:
- f.write('Currently handled exception:\n')
- f.flush()
- traceback.print_exc(file=f)
- if last:
- f.write('\nPrevious (?) error:\n')
- elif last or sys.last_traceback:
- f.write("\n\n(For wizards only) ")
- if last:
- if type(last) <> types.ListType or len(last) < 3:
- if (hasattr(sys,"last_traceback") and sys.last_traceback):
- last = [sys.last_type ,sys.last_value,sys.last_traceback]
- if type(last) == types.ListType:
- traceback.print_exception(last[0],last[1],last[2],
- None,f)
- #f.flush()
- if f is sys.__stderr__:
- s = ' (see the file "wxPyNonWindowingErrors.txt")'
- else:
- s = ""
- f.write("Please contact the author with a copy of this\n"
- "message%s.\n" % s)
- #f.flush()
- fl.close()
- if fatal and stderr is sys.__stderr__:
- if sys.__stderr__ and sys.platform in ["windows",'nt',"win32"]:
- sys.__stderr__.write(
- "\nYou may have to manually close this window to exit.")
- sys.exit()
-
-class wxPythonRExec (rexec.RExec):
- def __init__(self,securityhole=0,*args,**kwargs):
- apply(rexec.RExec.__init__, (self,) + args, kwargs)
- if securityhole:
- self.ok_builtin_modules = self.ok_builtin_modules + \
- ('wxPython', 'wxPython.wxc','wxPython.wx','wxPython.misc',
- 'wxPython.misc2', 'wxPython.windows', 'wxPython.gdi',
- 'wxPython.clip_dnd', 'wxPython.events', 'wxPython.mdi',
- 'wxPython.frames', 'wxPython.stattool', 'wxPython.controls',
- 'wxPython.controls2', 'wxPython.windows2', 'wxPython.cmndlgs',
- 'wxPython.windows3', 'wxPython.image', 'wxPython.printfw',
- 'wxc','misc', 'misc2', 'windows', 'gdi', 'clip_dnd', 'events',
- 'mdi', 'frames', 'stattool', 'controls', 'controls2', 'windows2',
- 'cmndlgs', 'windows3', 'image', 'printfw', 'wx')
- # possible security hole!
-
-##def wxPyFatalError(msg,frame=None,**kwargs):
-## kwargs.update({'fatal' : 1})
-## apply(wxPyNonFatalError,
-## (frame,msg),
-## kwargs)
-
-class wxPyNonFatalErrorDialogWithTraceback(wxDialog):
- this_exception = 0
- populate_function = populate_wxPyNonFatalErrorDialogWithTraceback
- no_continue_button = False
- fatal = False
- modal = True
- exitjustreturns = False # really only for testing!
-
- def __init__(self, parent, id,
- pos=wxDefaultPosition,
- size=wxDefaultSize,
- style=wxDEFAULT_DIALOG_STYLE,
- programname="Python program",
- version="?",
- mailto=None,
- whendismissed="",
- extraversioninformation="",
- caption="Python error!",
- versionname=None,
- errorname=None,
- disable_exit_button=False):
-
- if self.fatal:
- whetherNF = ""
- else:
- whetherNF = "non-"
- title = "A (%sfatal) error has occurred in %s!"\
- % (whetherNF,programname)
- self.programname = programname # save for later use
- self.mailto = mailto # save for later use
- self.parent = parent # save for later use
- self.whendismissed = whendismissed # save for later use
- self.dialogtitle = title # save for later use
-
- wxDialog.__init__(self, parent, id, title, pos, size, style)
-
- self.topsizer = self.populate_function( False,True )
-
- self.SetProgramName(programname)
- self.SetVersion(version)
- if errorname:
- self.FindWindowById(wxPyError_ID_TEXT1).SetLabel(str(errorname))
- if versionname:
- self.FindWindowById(wxPyError_ID_TEXT2).SetLabel(str(versionname))
- self.FindWindowById(wxPyError_ID_VERSIONNUMBER).SetLabel(str(version))
- self.FindWindowById(wxPyError_ID_EXTRA_VERSION_INFORMATION).SetLabel(str(
- extraversioninformation))
- if caption:
- self.SetTitle(caption)
-
- if not self.no_continue_button:
- EVT_BUTTON(self, wxPyError_ID_CONTINUE, self.OnContinue)
- if mailto:
- disable_mail_button = 0
- else:
- disable_mail_button = 1
- if not disable_mail_button:
- EVT_BUTTON(self, wxPyError_ID_MAIL, self.OnMail)
- else:
- self.GetMailButton().Enable(False)
- # disable the entry box for an e-mail address by default (NOT PROPERLY DOCUMENTED)
- if not hasattr(self,"enable_mail_address_box"):
- self.FindWindowById(wxPyError_ID_ADDRESS).Enable(False)
- if not disable_exit_button:
- EVT_BUTTON(self, wxPyError_ID_EXIT, self.OnExit)
-
- def GetExtraInformation(self):
- return self.extraexceptioninformation
-
- def SetExtraInformation(self,value):
- self.extraexceptioninformation = value
- c = self.GetExtraInformationCtrl()
- if c is not None:
- c.SetLabel(str(value))
- self.topsizer.Layout()
-
- def GetExtraInformationCtrl(self):
- return self.FindWindowById(wxPyError_ID_EXTRAINFORMATION)
-
- def GetExceptionName(self):
- return str(self.exceptiontype)
-
- def SetExceptionName(self,value):
- self.exceptiontype = str(value)
- c = self.GetExceptionNameCtrl()
- if c is not None:
- c.SetLabel(str(value))
- self.topsizer.Layout()
-
- def GetExceptionNameCtrl(self):
- return self.FindWindowById(wxPyError_ID_EXCEPTIONNAME)
-
- def GetTraceback(self):
- try:
- return self.traceback
- except AttributeError:
- return None
-
- def SetTraceback(self,value):
- self.traceback = value
- c = self.GetTracebackCtrl()
- if c is not None:
- s,cs = c.GetSize(), c.GetClientSize()
- if value[-1] == '\n':
- value = value[:-1]
- if _debug:
- print "%s.SetTraceback(): ...SetValue('%s' (^M=\\r; ^J=\\n))"\
- % (self,value.replace('\n',"^J"))
- c.SetValue(value)
-
- # Despite using the wxADJUST_MINSIZE flag in the
- # appropriate AddWindow method of the sizer, this doesn't
- # size the control appropriately... evidently the control's
- # GetBestSize method is not returning the "correct"
- # value... So we perform a rather ugly "fix"... note that
- # this also requires that we remove the wxADJUST_MINSIZE
- # flag from the AddWindow method of the sizer containing
- # the wxTextCtrl, which adds the wxTextCtrl... (this
- # amounts, as of wxDesigner 2.6, to only a few mouse
- # clicks...)
-
- if _debug:
- size = c.GetBestSize()
- print "%s.SetTraceback(): %s.GetBestSize() = (%s,%s)"\
- % (self,c,size.width,size.height)
- w,h = 0,0
- for v in value.split("\n"):
- pw,ph,d,e = t = c.GetFullTextExtent(v)
- if _debug:
- print v, t
- h = h + ph + e# + d
- pw = pw + wxSystemSettings_GetSystemMetric(wxSYS_VSCROLL_X)
- if pw > w:
- w = pw
- w = w + s.width - cs.width
- h = h + s.height - cs.height
- if _debug:
- print "%s.SetTraceback(): calculated w,h =" % c,\
- w,h,"and sys.platform = '%s'" % sys.platform
- self.sizerAroundText.SetItemMinSize (c,w,h)
- c.SetSize ((w,h))
- c.SetSizeHints (w,h,w,h)
- c.Refresh()#.SetAutoLayout(False)
-
- #^ the reason we need the above seems to be to replace the
- #faulty GetBestSize of wxTextCtrl...
- #self.sizerAroundText.Layout()
- self.topsizer.Layout()
-
- def GetTracebackCtrl(self):
- return self.FindWindowById(wxPyError_ID_TEXTCTRL)
-
- def GetVersion(self):
- return self.version
-
- def SetVersion(self,value):
- self.version = value
- c = self.GetVersionNumberCtrl()
- if c is not None:
- c.SetLabel(value)
- self.topsizer.Layout()
-
- def GetVersionNumberCtrl(self):
- return self.FindWindowById(wxPyError_ID_VERSIONNUMBER)
-
- def GetProgramName(self):
- return self.programname
-
- def SetProgramName(self,value):
- self.programname = value
- c = self.GetProgramNameCtrl()
- if c is not None:
- c.SetLabel(value)
- self.topsizer.Layout()
-
- def GetProgramNameCtrl(self):
- return self.FindWindowById(wxPyError_ID_PROGRAMNAME)
-
- def GetContinueButton(self):
- return self.FindWindowById(wxPyError_ID_CONTINUE)
-
- def GetMailButton(self):
- return self.FindWindowById(wxPyError_ID_MAIL)
-
- def GetExitButton(self):
- return self.FindWindowById(wxPyError_ID_EXIT)
-
- # write handler (which is really the guts of the thing...
- # [Note that this doesn't use sys.excepthook because I already had a
- # working body of code...
-
- def write(self,s):
- if self.this_exception is not sys.last_traceback:
- if not wxThread_IsMain():
- # Aquire the GUI mutex before making GUI calls. Mutex is released
- # when locker is deleted at the end of this function.
- locker = wxMutexGuiLocker()
-
- self.this_exception = sys.last_traceback
- # this is meant to be done once per traceback's sys.stderr.write's
- # - on the first in fact.....
- try:
- #from wxPython.wx import wxBell
- wxBell()
-
- if _debug:
- if sys.stdout: sys.stdout.write(
- 'in %s.write(): ' % self)
-
- self.exceptiontype = sys.last_type
- self.extraexceptioninformation = sys.last_value
- c = cStringIO.StringIO()
- traceback.print_last(None,c)
- self.traceback = c.getvalue()
-
- if _debug:
- #import traceback
- traceback.print_last(None,sys.stdout)
-
- self.SetExceptionName(str(self.exceptiontype))
- self.SetExtraInformation(str(self.extraexceptioninformation))
- self.SetTraceback(str(self.traceback))
-
- self.topsizer.Fit(self)
- self.topsizer.SetSizeHints(self)
- self.CentreOnScreen()
-
- if self.modal:
- self.ShowModal()
- else:
- self.Show(True)
-
- except:
- if not locals().has_key("c"):
- c = cStringIO.StringIO()
- c.write("[Exception occurred before data from "
- "sys.last_traceback available]")
- wxPyNonWindowingError("Warning: "
- "a %s error was encountered trying to "
- "handle the exception\n%s\nThis was:"#%s\n"
- % (sys.exc_type, c.getvalue()),#, c2.getvalue()),
- stderr=sys.stdout,
- last=0)
-
-
- # button handlers:
-
- def OnContinue(self, event):
- try:
- if self.whendismissed:
- parent = self.parent # so whendismissed can refer to "parent"
- if 1:
- if _debug:
- if sys.stdout: sys.stdout.write("exec '''%s''': "
- % (self.whendismissed))
- exec self.whendismissed
- if _debug: print "\n",
- else:
- if _debug:
- if sys.stdout: sys.stdout.write("wxPythonRExec(%s).r_exec('''%s'''): "
- % (self.securityhole,
- self.whendismissed))
- wxPythonRExec(self.securityhole).r_exec(self.whendismissed)
- if _debug: print "\n",
- if self.modal:
- self.EndModal(wxID_OK)
- else:
- self.Close ()
- if _debug: print "reimporting ",
- for m in sys.modules.values():
- if m and m.__dict__["__name__"][0] in string.uppercase:#hack!
- if _debug:
- print m.__dict__["__name__"],
- reload (m)
- if _debug:
- print ' ',
- if _debug:
- print '\nENDING %s.OnContinue()..\n\n' % (self,),
- except:
- wxPyNonWindowingError("Warning: the following exception information"
- " may not be the full story.. (because "
- "a %s(%s) error was encountered trying to "
- "handle the exception)\n\n"
- % tuple(sys.exc_info()[:2]),
- stderr=sys.stdout,
- last=0)
-
- PlainMessageTemplate = \
- "Hello,\n\n"\
- '%(programname)s'\
- " error.\n\n"\
- "I encountered the following error when running your "\
- 'program %(programname)s,'\
- "at %(date)s.\n\n"\
- "(The following has been automatically generated...)\n"\
- '%(traceback)s\n\n'\
- "More information follows:\n\n"\
- '[Insert more '\
- "information about the error here, such as what you were "\
- "trying to do at the time of the error. Please "\
- "understand that failure to fill in this field will be "\
- "interpreted as an invitation to consign this e-mail "\
- "straight to the trash can!]\n\n"\
- 'Yours sincerely,\n'\
- "[insert your name here]\n"
-
- HTMLMessageTemplate = \
- '<html>\n'\
- '<body>'\
- "<p>\n"\
- "<i><b>Hello,</b></i>\n<p>\n"\
- '<p><h2><font color="#CC6C00">%(programname)s</font>'\
- " error.</h2>\n"\
- "I encountered the following error when running your "\
- 'program <font color="#CC6C00">%(programname)s</font>,'\
- "at %(date)s.\n<p>\n"\
- "<p>"\
- "<h2>Traceback (automatically generated):</h2>\n"\
- '<p><font size="-1">\n<pre>%(traceback)s</pre>\n<p></font><p>'\
- "\n<p>\n<h2>More information follows:</h2>\n<p>\n"\
- '<font color="#CC6C00">'\
- '<i>[Insert more '\
- "information about the error here, such as what you were "\
- "trying to do at the time of the error. Please "\
- "understand that failure to fill in this field will be "\
- "interpreted as an invitation to consign this e-mail "\
- "straight to the trash can!]\n</i><p>\n"\
- "</font><p>\n"\
- '<i><b>Yours sincerely,</b></i>\n<p>'\
- '<font color="#CC6C00">'\
- "[insert your name here]\n"\
- "</font>\n"\
- "</body>\n"\
- "</html>\n"
- # text="#000000" bgcolor="#FFFFFF">\n'\
-
- def OnMail(self,event):
- try:
- if _debug:
- print 'Attempting to write mail message.\n',
- gmtdate = time.asctime(time.gmtime(time.time())) + ' GMT'
- tm = time.localtime(time.time())
- date = time.asctime(tm) + ' ' +\
- time.strftime("%Z",tm)
- programname = self.programname
- traceback = self.traceback
- mailto = self.mailto
-
- subject = "Un-caught exception when running %s." % programname
- mailfrom = None#self.FindWindowById (wxPyError_ID_ADDRESS)
- if mailfrom:
- mailfrom = mailfrom.GetValue()
- if _startmailerwithhtml(mailto,subject,
- self.HTMLMessageTemplate % vars(),
- text=self.PlainMessageTemplate % vars(),
- mailfrom=mailfrom):
- if not (hasattr(self,"fatal") and self.fatal):
- self.OnContinue(event) # if ok, then act as if "Continue" selected
- except:
- wxPyNonWindowingError("Warning: the following exception information"
- " may not be the full story... (because "
- "a %s error was encountered trying to "
- "handle the original exception)\n\n"#%s"
- % (sys.exc_type,),#self.msg),
- stderr=sys.stdout,
- last=0)
-
- def OnExit(self, event):
- if self.IsModal():
- self.EndModal(wxID_CANCEL)
- if self.exitjustreturns:
- return
- wxGetApp().ExitMainLoop()
-
- def SetText(self,number,string):
- self.FindWindowById(eval("wxPyError_ID_TEXT%d"
- % number)).SetLabel(string)
- self.topsizer.Layout()
-
-class wxPyFatalErrorDialogWithTraceback(wxPyNonFatalErrorDialogWithTraceback):
- populate_function = populate_wxPyFatalErrorDialogWithTraceback
- no_continue_button = True
- fatal = True
-
-class wxPyNonFatalErrorDialog(wxPyNonFatalErrorDialogWithTraceback):
- populate_function = populate_wxPyNonFatalErrorDialog
-
-class wxPyFatalErrorDialog(wxPyFatalErrorDialogWithTraceback):
- populate_function = populate_wxPyFatalErrorDialog
-
-def _startmailerwithhtml(mailto,subject,html,text=None,mailfrom=None):
- if sys.hexversion >= 0x02000000:#\
- # and sys.platform in ["windows",'nt',"w is in32"]:
- s = 'mailto:%s?subject=%s&body=%s' % (mailto,
- urllib.quote(subject),
- urllib.quote(
- text.replace('\n','\r\n'),
- ""))
-
- # Note that RFC 2368 requires that line breaks in the body of
- # a message contained in a mailto URL MUST be encoded with
- # "%0D%0A"--even on Unix/Linux. Also note that there appears
- # to be no way to specify that the body of a mailto tag be
- # interpreted as HTML (mailto tags shouldn't stuff around with
- # the MIME-Version/Content-Type headers, the RFC says, so I
- # can't even be bothered trying, as the Python
- # webbrowser/urllib modules quite likely won't allow
- # this... anyway, a plain text message is [at least!] fine...).
-
- if _debug:
- t = urllib.quote(text)
- if len(t) > 20 * 80:
- t = t[0:20 * 80] + "..."
- print "\nSummarizing (only shortened version of argument "\
- "printed here), ",
- print 'webbrowser.open("' \
- 'mailto:%s?subject=%s&body=%s"' % (mailto,
- urllib.quote(subject),
- t)
- webbrowser.open(s)
- return 1
- else:
- return _writehtmlmessage(mailto,subject,html,text,mailfrom=mailfrom)
-
-def _writehtmlmessage(mailto,subject,html,text=None,parent=None,mailfrom=None):
- dlg = wxFileDialog (parent,
- "Please choose a a file to save the message to...",
- ".",
- "bug-report",
- "HTML files (*.htm,*.html)|*.htm,*.html|"
- "All files (*)|*",
- wxSAVE | wxHIDE_READONLY)
- if dlg.ShowModal() <> wxID_CANCEL:
- f = open(dlg.GetPath(),"w")
- dlg.Destroy()
- f.write(_createhtmlmail(html,text,subject,to=mailto,mailfrom=mailfrom))
- f.close()
- return 1
- else:
- return 0
-
-# PLEASE NOTE THAT THE CODE BELOW FOR WRITING A GIVEN
-#(HTML) MESSAGE IS BY ART GILLESPIE [with slight modifications by yours truly].
-
-def _createhtmlmail (html, text, subject, to=None, mailfrom=None):
- """Create a mime-message that will render HTML in popular
- MUAs, text in better ones (if indeed text is not unTrue (e.g. None)
- """
- import MimeWriter, mimetools, cStringIO
-
- out = cStringIO.StringIO() # output buffer for our message
- htmlin = cStringIO.StringIO(html)
- if text:
- txtin = cStringIO.StringIO(text)
-
- writer = MimeWriter.MimeWriter(out)
- #
- # set up some basic headers... we put subject here
- # because smtplib.sendmail expects it to be in the
- # message body
- #
- if mailfrom:
- writer.addheader("From", mailfrom)
- #writer.addheader("Reply-to", mailfrom)
- writer.addheader("Subject", subject)
- if to:
- writer.addheader("To", to)
- writer.addheader("MIME-Version", "1.0")
- #
- # start the multipart section of the message
- # multipart/alternative seems to work better
- # on some MUAs than multipart/mixed
- #
- writer.startmultipartbody("alternative")
- writer.flushheaders()
- #
- # the plain text section
- #
- if text:
- subpart = writer.nextpart()
- subpart.addheader("Content-Transfer-Encoding", "quoted-printable")
- pout = subpart.startbody("text/plain", [("charset", 'us-ascii')])
- mimetools.encode(txtin, pout, 'quoted-printable')
- txtin.close()
- #
- # start the html subpart of the message
- #
- subpart = writer.nextpart()
- subpart.addheader("Content-Transfer-Encoding", "quoted-printable")
- pout = subpart.startbody("text/html", [("charset", 'us-ascii')])
- mimetools.encode(htmlin, pout, 'quoted-printable')
- htmlin.close()
- #
- # Now that we're done, close our writer and
- # return the message body
- #
- writer.lastpart()
- msg = out.getvalue()
- out.close()
- return msg
-
-def _sendmail(mailto,subject,html,text):# currently unused
- """For illustration only--this function is not actually used."""
- import smtplib
- message = _createhtmlmail(html, text, subject)
- server = smtplib.SMTP("localhost")
- server.sendmail(mailto, subject, message)
- server.quit()
-
-def wxPyFatalError(parent,msg,**kw):
- return wxPyFatalOrNonFatalError(parent,msg,fatal=1,**kw)
-
-def wxPyNonFatalError(parent,msg,**kw):
- return wxPyFatalOrNonFatalError(parent,msg,fatal=0,**kw)
-
-def wxPyResizeHTMLWindowToDispelScrollbar(window,
- fraction,
- sizer=None,
- defaultfraction=0.7):
- # Try to `grow' parent window (typically a dialog), only so far as
- # no scrollbar is necessary, mantaining aspect ratio of display.
- # Will go no further than specified fraction of display size.
- w = 200
- if type(fraction) == type(''):
- fraction = int(fraction[:-1]) / 100.
- ds = wxDisplaySize ()
- c = window.GetInternalRepresentation ()
- while w < ds[0] * fraction:
- c.Layout(w)
- if _debug:
- print '(c.GetHeight() + 20, w * ds[1]/ds[0]):',\
- (c.GetHeight() + 20, w * ds[1]/ds[0])
- if c.GetHeight() + 20 < w * ds[1]/ds[0]:
- size = (w,min(int ((w) * ds[1]/ds[0]),
- c.GetHeight()))
- break
- w = w + 20
- else:
- if type(defaultfraction) == type(''):
- defaultfraction = int(defaultfraction[:-1]) / 100.
- defaultsize = (defaultfraction * ds[0], defaultfraction * ds[1])
- if _debug:
- print 'defaultsize =',defaultsize
- size = defaultsize
- window.SetSize(size)
- if sizer is not None:
- sizer.SetMinSize(size)
- sizer.Fit(window)
- #sizer.SetSizeHints(window)
-
-def wxPyFatalOrNonFatalError(parent,
- msg,
- fatal=0,
- extraversioninformation="",
- caption=None,
- versionname=None,
- errorname=None,
- version="?",
- programname="Python program",
- tback=None,# backwards compatibility, and for
- #possible future inclusion of ability to display
- #a traceback along with the given message
- #"msg"... currently ignored though...
- modal=0):
- if not wxThread_IsMain():
- # Aquire the GUI mutex before making GUI calls. Mutex is released
- # when locker is deleted at the end of this function.
- locker = wxMutexGuiLocker()
-
- dlg = wxDialog(parent,-1,"Error!")
-
- if fatal:
- populate_function = populate_wxPyFatalError
- else:
- populate_function = populate_wxPyNonFatalError
-
- sizer = populate_function(dlg,False,True)
-
- window = dlg.FindWindowById(wxPyError_ID_HTML)
- window.SetPage(msg)
- wxPyResizeHTMLWindowToDispelScrollbar(window,
- "85%",
- sizer=dlg.sizerAroundText)
- dlg.FindWindowById(wxPyError_ID_PROGRAMNAME).SetLabel(str(programname))
- if errorname:
- dlg.FindWindowById(wxPyError_ID_TEXT1).SetLabel(str(errorname))
- if versionname:
- dlg.FindWindowById(wxPyError_ID_TEXT2).SetLabel(str(versionname))
- dlg.FindWindowById(wxPyError_ID_VERSIONNUMBER).SetLabel(str(version))
- dlg.FindWindowById(wxPyError_ID_EXTRA_VERSION_INFORMATION).SetLabel(str(
- extraversioninformation))
- if caption:
- dlg.SetTitle(caption)
- sizer.Fit(dlg)
- sizer.SetSizeHints(dlg)
- dlg.CentreOnScreen()
-
- if modal:
- v = dlg.ShowModal()
- dlg.Destroy()
- return v
- else:
- dlg.Show(True)
-
+++ /dev/null
-#-----------------------------------------------------------------------------
-# Python source generated by wxDesigner from file: ErrorDialogs.wdr
-# Do not modify this file, all changes will be lost!
-#-----------------------------------------------------------------------------
-
-# Include wxWindows' modules
-from wxPython.wx import *
-
-# Custom source
-from wxPython.lib.PythonBitmaps import *
-from wxPython.html import *
-from wxPython.lib.ClickableHtmlWindow import *
-
-# Window functions
-
-wxPyError_ID_TEXT1 = 10000
-wxPyError_ID_PROGRAMNAME = 10001
-wxPyError_ID_TEXT2 = 10002
-wxPyError_ID_VERSIONNUMBER = 10003
-wxPyError_ID_EXTRA_VERSION_INFORMATION = 10004
-wxPyError_ID_STATICBITMAP1 = 10005
-wxPyError_ID_STATICBITMAP2 = 10006
-wxPyError_ID_TEXT3 = 10007
-wxPyError_ID_TEXT4 = 10008
-wxPyError_ID_TEXTCTRL = 10009
-wxPyError_ID_TEXT5 = 10010
-wxPyError_ID_CONTINUE = 10011
-wxPyError_ID_MAIL = 10012
-wxPyError_ID_TEXT6 = 10013
-wxPyError_ID_ADDRESS = 10014
-wxPyError_ID_EXIT = 10015
-wxPyError_ID_TEXT7 = 10016
-wxPyError_ID_TEXT8 = 10017
-wxPyError_ID_TEXT9 = 10018
-wxPyError_ID_TEXT10 = 10019
-wxPyError_ID_TEXT11 = 10020
-wxPyError_ID_TEXT12 = 10021
-
-def populate_wxPyNonFatalErrorDialogWithTraceback( parent, call_fit = True, set_sizer = True ):
- item0 = wxBoxSizer( wxVERTICAL )
-
- item1 = wxBoxSizer( wxHORIZONTAL )
-
- item3 = wxStaticBox( parent, -1, "Non-fatal" )
- item3.SetFont( wxFont( 9, wxSWISS, wxNORMAL, wxBOLD ) )
- item2 = wxStaticBoxSizer( item3, wxVERTICAL )
-
- item4 = wxBoxSizer( wxHORIZONTAL )
-
- item5 = wxStaticText( parent, wxPyError_ID_TEXT1, "Error in ", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item5.SetForegroundColour( wxWHITE )
- item5.SetBackgroundColour( wxRED )
- item5.SetFont( wxFont( 21, wxSCRIPT, wxNORMAL, wxBOLD ) )
- item4.AddWindow( item5, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item6 = wxStaticText( parent, wxPyError_ID_PROGRAMNAME, "wxPyError_ID_PROGRAMNAME", wxDefaultPosition, wxDefaultSize, 0 )
- item6.SetFont( wxFont( 21, wxROMAN, wxITALIC, wxNORMAL ) )
- item4.AddWindow( item6, 1, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item2.AddSizer( item4, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item7 = wxBoxSizer( wxHORIZONTAL )
-
- item8 = wxStaticText( parent, wxPyError_ID_TEXT2, "Version ", wxDefaultPosition, wxDefaultSize, 0 )
- item8.SetFont( wxFont( 9, wxROMAN, wxNORMAL, wxNORMAL ) )
- item7.AddWindow( item8, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item9 = wxStaticText( parent, wxPyError_ID_VERSIONNUMBER, "wxPyError_ID_VERSIONNUMBER", wxDefaultPosition, wxDefaultSize, 0 )
- item9.SetFont( wxFont( 12, wxROMAN, wxNORMAL, wxBOLD ) )
- item7.AddWindow( item9, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item2.AddSizer( item7, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item10 = wxStaticText( parent, wxPyError_ID_EXTRA_VERSION_INFORMATION, "wxPyError_ID_EXTRA_VERSION_INFORMATION", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item10.SetFont( wxFont( 7, wxROMAN, wxITALIC, wxNORMAL ) )
- item2.AddWindow( item10, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item1.AddSizer( item2, 1, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item11 = wxStaticBitmap( parent, wxPyError_ID_STATICBITMAP1, PythonBitmaps( 0 ), wxDefaultPosition, wxDefaultSize )
- item1.AddWindow( item11, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item12 = wxStaticBitmap( parent, wxPyError_ID_STATICBITMAP2, PythonBitmaps( 1 ), wxDefaultPosition, wxDefaultSize )
- item1.AddWindow( item12, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item0.AddSizer( item1, 0, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
-
- item13 = wxStaticText( parent, wxPyError_ID_TEXT3, "The Python interpreter has encountered a so-called \"un-caught exception\".", wxDefaultPosition, wxDefaultSize, 0 )
- item0.AddWindow( item13, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item15 = wxStaticBox( parent, -1, "Traceback" )
- item15.SetFont( wxFont( 6, wxSWISS, wxITALIC, wxNORMAL ) )
- parent.sizerAroundText = item14 = wxStaticBoxSizer( item15, wxVERTICAL )
-
- item16 = wxStaticText( parent, wxPyError_ID_TEXT4,
- "Please don't worry if this doesn't mean anything to you.\n"
- "It will be included in the \"bug report\" mentioned below.",
- wxDefaultPosition, wxDefaultSize, 0 )
- item16.SetFont( wxFont( 8, wxROMAN, wxNORMAL, wxNORMAL ) )
- item14.AddWindow( item16, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item17 = wxTextCtrl( parent, wxPyError_ID_TEXTCTRL, "wxPyError_ID_TEXTCTRL", wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY )
- item17.SetFont( wxFont( 9, wxSWISS, wxNORMAL, wxNORMAL ) )
- item17.SetToolTip( wxToolTip("A \"traceback\" reports the nature and location of a Python error.") )
- item14.AddWindow( item17, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
-
- item0.AddSizer( item14, 1, wxALIGN_CENTRE|wxALL, 5 )
-
- item18 = wxStaticText( parent, wxPyError_ID_TEXT5, "Please select one of the options below.", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item18.SetFont( wxFont( 8, wxROMAN, wxITALIC, wxNORMAL ) )
- item0.AddWindow( item18, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item19 = wxFlexGridSizer( 3, 0, 0, 6 )
- item19.AddGrowableCol( 0 )
- item19.AddGrowableCol( 1 )
- item19.AddGrowableCol( 2 )
-
- item20 = wxButton( parent, wxPyError_ID_CONTINUE, "Continue", wxDefaultPosition, wxDefaultSize, 0 )
- item20.SetDefault()
- item19.AddWindow( item20, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item21 = wxBoxSizer( wxHORIZONTAL )
-
- item22 = wxButton( parent, wxPyError_ID_MAIL, "E-mail support", wxDefaultPosition, wxDefaultSize, 0 )
- item21.AddWindow( item22, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item23 = wxBoxSizer( wxVERTICAL )
-
- item24 = wxStaticText( parent, wxPyError_ID_TEXT6, "Your e-mail address:", wxDefaultPosition, wxDefaultSize, 0 )
- item24.SetFont( wxFont( 8, wxROMAN, wxITALIC, wxNORMAL ) )
- item23.AddWindow( item24, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item25 = wxTextCtrl( parent, wxPyError_ID_ADDRESS, "", wxDefaultPosition, wxSize(80,-1), 0 )
- item23.AddWindow( item25, 2, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
-
- item21.AddSizer( item23, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item19.AddSizer( item21, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item26 = wxButton( parent, wxPyError_ID_EXIT, "Exit immediately", wxDefaultPosition, wxDefaultSize, 0 )
- item19.AddWindow( item26, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item27 = wxStaticText( parent, wxPyError_ID_TEXT7, "Attempt to continue.", wxDefaultPosition, wxDefaultSize, 0 )
- item19.AddWindow( item27, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item28 = wxStaticText( parent, wxPyError_ID_TEXT8, "E-mail a \"bug report\" (if this is indeed a bug!).", wxDefaultPosition, wxDefaultSize, 0 )
- item19.AddWindow( item28, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item29 = wxStaticText( parent, wxPyError_ID_TEXT9, "Attempt to exit immediately.", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT )
- item19.AddWindow( item29, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE, 5 )
-
- item30 = wxStaticText( parent, wxPyError_ID_TEXT10, "", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT )
- item30.SetFont( wxFont( 7, wxROMAN, wxNORMAL, wxBOLD ) )
- item19.AddWindow( item30, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item31 = wxStaticText( parent, wxPyError_ID_TEXT11, "(Please read any accompanying documentation first!)", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item31.SetFont( wxFont( 7, wxROMAN, wxNORMAL, wxBOLD ) )
- item19.AddWindow( item31, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item32 = wxStaticText( parent, wxPyError_ID_TEXT12, "(Please note that no attempt to save unsaved data will be made.)", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT )
- item32.SetFont( wxFont( 7, wxROMAN, wxNORMAL, wxBOLD ) )
- item19.AddWindow( item32, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item0.AddSizer( item19, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- if set_sizer == True:
- parent.SetAutoLayout( True )
- parent.SetSizer( item0 )
- if call_fit == True:
- item0.Fit( parent )
- item0.SetSizeHints( parent )
-
- return item0
-
-wxPyError_wxPyError_ID_TEXT3 = 10022
-wxPyError_ID_EXCEPTIONNAME = 10023
-wxPyError_ID_EXTRAINFORMATION = 10024
-wxPyError_ID_TEXT13 = 10025
-wxPyError_ID_TEXT14 = 10026
-
-def populate_wxPyNonFatalErrorDialog( parent, call_fit = True, set_sizer = True ):
- item0 = wxBoxSizer( wxVERTICAL )
-
- item1 = wxBoxSizer( wxHORIZONTAL )
-
- item2 = wxBoxSizer( wxHORIZONTAL )
-
- item4 = wxStaticBox( parent, -1, "Non-fatal" )
- item4.SetFont( wxFont( 9, wxSWISS, wxNORMAL, wxBOLD ) )
- item3 = wxStaticBoxSizer( item4, wxVERTICAL )
-
- item5 = wxBoxSizer( wxHORIZONTAL )
-
- item6 = wxStaticText( parent, wxPyError_ID_TEXT1, "Error in ", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item6.SetForegroundColour( wxWHITE )
- item6.SetBackgroundColour( wxRED )
- item6.SetFont( wxFont( 21, wxSCRIPT, wxNORMAL, wxBOLD ) )
- item5.AddWindow( item6, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item7 = wxStaticText( parent, wxPyError_ID_PROGRAMNAME, "wxPyError_ID_PROGRAMNAME", wxDefaultPosition, wxDefaultSize, 0 )
- item7.SetFont( wxFont( 21, wxROMAN, wxITALIC, wxNORMAL ) )
- item5.AddWindow( item7, 1, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item3.AddSizer( item5, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item8 = wxBoxSizer( wxHORIZONTAL )
-
- item9 = wxStaticText( parent, wxPyError_ID_TEXT2, "Version ", wxDefaultPosition, wxDefaultSize, 0 )
- item9.SetFont( wxFont( 9, wxROMAN, wxNORMAL, wxNORMAL ) )
- item8.AddWindow( item9, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item10 = wxStaticText( parent, wxPyError_ID_VERSIONNUMBER, "wxPyError_ID_VERSIONNUMBER", wxDefaultPosition, wxDefaultSize, 0 )
- item10.SetFont( wxFont( 12, wxROMAN, wxNORMAL, wxBOLD ) )
- item8.AddWindow( item10, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item3.AddSizer( item8, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item11 = wxStaticText( parent, wxPyError_ID_EXTRA_VERSION_INFORMATION, "wxPyError_ID_EXTRA_VERSION_INFORMATION", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item11.SetFont( wxFont( 7, wxROMAN, wxITALIC, wxNORMAL ) )
- item3.AddWindow( item11, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item2.AddSizer( item3, 1, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item12 = wxStaticBitmap( parent, wxPyError_ID_STATICBITMAP1, PythonBitmaps( 0 ), wxDefaultPosition, wxDefaultSize )
- item2.AddWindow( item12, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item13 = wxStaticBitmap( parent, wxPyError_ID_STATICBITMAP2, PythonBitmaps( 1 ), wxDefaultPosition, wxDefaultSize )
- item2.AddWindow( item13, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item1.AddSizer( item2, 1, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item0.AddSizer( item1, 1, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
-
- item14 = wxStaticText( parent, wxPyError_wxPyError_ID_TEXT3, "The Python interpreter has encountered a so-called \"un-caught exception\".", wxDefaultPosition, wxDefaultSize, 0 )
- item0.AddWindow( item14, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item16 = wxStaticBox( parent, -1, "Exception information" )
- item16.SetFont( wxFont( 6, wxSWISS, wxITALIC, wxNORMAL ) )
- item15 = wxStaticBoxSizer( item16, wxVERTICAL )
-
- item17 = wxStaticText( parent, wxPyError_ID_TEXT4,
- "Please don't worry if this doesn't mean anything to you.\n"
- "It will be included in the \"bug report\" mentioned below, along with a \"stack traceback\".",
- wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item17.SetFont( wxFont( 8, wxROMAN, wxNORMAL, wxNORMAL ) )
- item15.AddWindow( item17, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item18 = wxFlexGridSizer( 2, 0, 1, 1 )
- item18.AddGrowableCol( 1 )
-
- item19 = wxStaticText( parent, wxPyError_ID_TEXT5, "Name:", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT )
- item19.SetFont( wxFont( 10, wxROMAN, wxITALIC, wxNORMAL ) )
- item19.SetToolTip( wxToolTip("This gives the type of the error.") )
- item18.AddWindow( item19, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item20 = wxStaticText( parent, wxPyError_ID_EXCEPTIONNAME, "wxPyError_ID_EXCEPTIONNAME", wxDefaultPosition, wxDefaultSize, 0 )
- item18.AddWindow( item20, 0, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
-
- item21 = wxStaticText( parent, wxPyError_ID_TEXT6,
- "Extra\n"
- "information:",
- wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item21.SetFont( wxFont( 10, wxROMAN, wxITALIC, wxNORMAL ) )
- item18.AddWindow( item21, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item22 = wxStaticText( parent, wxPyError_ID_EXTRAINFORMATION, "wxPyError_ID_EXTRAINFORMATION", wxDefaultPosition, wxDefaultSize, 0 )
- item18.AddWindow( item22, 0, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
-
- item15.AddSizer( item18, 1, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
-
- item0.AddSizer( item15, 0, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 10 )
-
- item23 = wxStaticText( parent, wxPyError_ID_TEXT7, "Please select one of the options below.", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item23.SetFont( wxFont( 8, wxROMAN, wxITALIC, wxNORMAL ) )
- item0.AddWindow( item23, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item24 = wxFlexGridSizer( 3, 0, 0, 6 )
- item24.AddGrowableCol( 0 )
- item24.AddGrowableCol( 1 )
- item24.AddGrowableCol( 2 )
-
- item25 = wxButton( parent, wxPyError_ID_CONTINUE, "Continue", wxDefaultPosition, wxDefaultSize, 0 )
- item25.SetDefault()
- item24.AddWindow( item25, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item26 = wxBoxSizer( wxHORIZONTAL )
-
- item27 = wxButton( parent, wxPyError_ID_MAIL, "E-mail support", wxDefaultPosition, wxDefaultSize, 0 )
- item26.AddWindow( item27, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item28 = wxBoxSizer( wxVERTICAL )
-
- item29 = wxStaticText( parent, wxPyError_ID_TEXT8, "Your e-mail address:", wxDefaultPosition, wxDefaultSize, 0 )
- item29.SetFont( wxFont( 8, wxROMAN, wxITALIC, wxNORMAL ) )
- item28.AddWindow( item29, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item30 = wxTextCtrl( parent, wxPyError_ID_ADDRESS, "", wxDefaultPosition, wxSize(80,-1), 0 )
- item28.AddWindow( item30, 2, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
-
- item26.AddSizer( item28, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item24.AddSizer( item26, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item31 = wxButton( parent, wxPyError_ID_EXIT, "Exit immediately", wxDefaultPosition, wxDefaultSize, 0 )
- item24.AddWindow( item31, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item32 = wxStaticText( parent, wxPyError_ID_TEXT9, "Attempt to continue.", wxDefaultPosition, wxDefaultSize, 0 )
- item24.AddWindow( item32, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item33 = wxStaticText( parent, wxPyError_ID_TEXT10, "E-mail a \"bug report\" (if this is indeed a bug!).", wxDefaultPosition, wxDefaultSize, 0 )
- item24.AddWindow( item33, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item34 = wxStaticText( parent, wxPyError_ID_TEXT11, "Attempt to exit immediately.", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT )
- item24.AddWindow( item34, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE, 5 )
-
- item35 = wxStaticText( parent, wxPyError_ID_TEXT12, "", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item35.SetFont( wxFont( 7, wxROMAN, wxNORMAL, wxBOLD ) )
- item24.AddWindow( item35, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item36 = wxStaticText( parent, wxPyError_ID_TEXT13, "(Please read any accompanying documentation first!)", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item36.SetFont( wxFont( 7, wxROMAN, wxNORMAL, wxBOLD ) )
- item24.AddWindow( item36, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item37 = wxStaticText( parent, wxPyError_ID_TEXT14, "(Please note that no attempt to save unsaved data will be made.)", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT )
- item37.SetFont( wxFont( 7, wxROMAN, wxNORMAL, wxBOLD ) )
- item24.AddWindow( item37, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item0.AddSizer( item24, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- if set_sizer == True:
- parent.SetAutoLayout( True )
- parent.SetSizer( item0 )
- if call_fit == True:
- item0.Fit( parent )
- item0.SetSizeHints( parent )
-
- return item0
-
-
-def populate_wxPyFatalErrorDialogWithTraceback( parent, call_fit = True, set_sizer = True ):
- item0 = wxBoxSizer( wxVERTICAL )
-
- item1 = wxBoxSizer( wxHORIZONTAL )
-
- item3 = wxStaticBox( parent, -1, "Fatal" )
- item3.SetFont( wxFont( 9, wxSWISS, wxNORMAL, wxBOLD ) )
- item2 = wxStaticBoxSizer( item3, wxVERTICAL )
-
- item4 = wxBoxSizer( wxHORIZONTAL )
-
- item5 = wxStaticText( parent, wxPyError_ID_TEXT1, "Error in ", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item5.SetForegroundColour( wxWHITE )
- item5.SetBackgroundColour( wxRED )
- item5.SetFont( wxFont( 21, wxSCRIPT, wxNORMAL, wxBOLD ) )
- item4.AddWindow( item5, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item6 = wxStaticText( parent, wxPyError_ID_PROGRAMNAME, "wxPyError_ID_PROGRAMNAME", wxDefaultPosition, wxDefaultSize, 0 )
- item6.SetFont( wxFont( 21, wxROMAN, wxITALIC, wxNORMAL ) )
- item4.AddWindow( item6, 1, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item2.AddSizer( item4, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item7 = wxBoxSizer( wxHORIZONTAL )
-
- item8 = wxStaticText( parent, wxPyError_ID_TEXT2, "Version ", wxDefaultPosition, wxDefaultSize, 0 )
- item8.SetFont( wxFont( 9, wxROMAN, wxNORMAL, wxNORMAL ) )
- item7.AddWindow( item8, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item9 = wxStaticText( parent, wxPyError_ID_VERSIONNUMBER, "wxPyError_ID_VERSIONNUMBER", wxDefaultPosition, wxDefaultSize, 0 )
- item9.SetFont( wxFont( 12, wxROMAN, wxNORMAL, wxBOLD ) )
- item7.AddWindow( item9, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item2.AddSizer( item7, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item10 = wxStaticText( parent, wxPyError_ID_EXTRA_VERSION_INFORMATION, "wxPyError_ID_EXTRA_VERSION_INFORMATION", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item10.SetFont( wxFont( 7, wxROMAN, wxITALIC, wxNORMAL ) )
- item2.AddWindow( item10, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item1.AddSizer( item2, 1, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item11 = wxStaticBitmap( parent, wxPyError_ID_STATICBITMAP1, PythonBitmaps( 0 ), wxDefaultPosition, wxDefaultSize )
- item1.AddWindow( item11, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item12 = wxStaticBitmap( parent, wxPyError_ID_STATICBITMAP2, PythonBitmaps( 1 ), wxDefaultPosition, wxDefaultSize )
- item1.AddWindow( item12, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item0.AddSizer( item1, 1, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
-
- item13 = wxStaticText( parent, wxPyError_ID_TEXT3, "The Python interpreter has encountered a so-called \"un-caught exception\".", wxDefaultPosition, wxDefaultSize, 0 )
- item0.AddWindow( item13, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item15 = wxStaticBox( parent, -1, "Traceback" )
- item15.SetFont( wxFont( 6, wxSWISS, wxITALIC, wxNORMAL ) )
- parent.sizerAroundText = item14 = wxStaticBoxSizer( item15, wxVERTICAL )
-
- item16 = wxStaticText( parent, wxPyError_ID_TEXT4,
- "Please don't worry if this doesn't mean anything to you.\n"
- "It will be included in the \"bug report\" mentioned below.",
- wxDefaultPosition, wxDefaultSize, 0 )
- item16.SetFont( wxFont( 8, wxROMAN, wxNORMAL, wxNORMAL ) )
- item14.AddWindow( item16, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item17 = wxTextCtrl( parent, wxPyError_ID_TEXTCTRL, "wxPyError_ID_TEXTCTRL", wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY )
- item17.SetFont( wxFont( 9, wxSWISS, wxNORMAL, wxNORMAL ) )
- item17.SetToolTip( wxToolTip("A \"traceback\" reports the nature and location of a Python error.") )
- item14.AddWindow( item17, 0, wxALIGN_CENTRE|wxALL, 5 )
-
- item0.AddSizer( item14, 0, wxALIGN_CENTRE|wxALL, 5 )
-
- item18 = wxStaticText( parent, wxPyError_ID_TEXT5, "Please select one of the options below.", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item18.SetFont( wxFont( 8, wxROMAN, wxITALIC, wxNORMAL ) )
- item0.AddWindow( item18, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item19 = wxFlexGridSizer( 3, 0, 0, 6 )
- item19.AddGrowableCol( 0 )
- item19.AddGrowableCol( 1 )
- item19.AddGrowableCol( 2 )
-
- item20 = wxBoxSizer( wxHORIZONTAL )
-
- item21 = wxButton( parent, wxPyError_ID_MAIL, "E-mail support", wxDefaultPosition, wxDefaultSize, 0 )
- item20.AddWindow( item21, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item22 = wxBoxSizer( wxVERTICAL )
-
- item23 = wxStaticText( parent, wxPyError_ID_TEXT6, "Your e-mail address:", wxDefaultPosition, wxDefaultSize, 0 )
- item23.SetFont( wxFont( 8, wxROMAN, wxITALIC, wxNORMAL ) )
- item22.AddWindow( item23, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item24 = wxTextCtrl( parent, wxPyError_ID_ADDRESS, "", wxDefaultPosition, wxSize(80,-1), 0 )
- item22.AddWindow( item24, 2, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
-
- item20.AddSizer( item22, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item19.AddSizer( item20, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item25 = wxButton( parent, wxPyError_ID_EXIT, "Exit immediately", wxDefaultPosition, wxDefaultSize, 0 )
- item25.SetDefault()
- item19.AddWindow( item25, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item26 = wxStaticText( parent, wxPyError_ID_TEXT7, "E-mail a \"bug report\" (if this is indeed a bug!).", wxDefaultPosition, wxDefaultSize, 0 )
- item19.AddWindow( item26, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item27 = wxStaticText( parent, wxPyError_ID_TEXT8, "Attempt to exit immediately.", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT )
- item19.AddWindow( item27, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE, 5 )
-
- item28 = wxStaticText( parent, wxPyError_ID_TEXT9, "(Please read any accompanying documentation first!)", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item28.SetFont( wxFont( 7, wxROMAN, wxNORMAL, wxBOLD ) )
- item19.AddWindow( item28, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item29 = wxStaticText( parent, wxPyError_ID_TEXT10, "(Please note that no attempt to save unsaved data will be made.)", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT )
- item29.SetFont( wxFont( 7, wxROMAN, wxNORMAL, wxBOLD ) )
- item19.AddWindow( item29, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item0.AddSizer( item19, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- if set_sizer == True:
- parent.SetAutoLayout( True )
- parent.SetSizer( item0 )
- if call_fit == True:
- item0.Fit( parent )
- item0.SetSizeHints( parent )
-
- return item0
-
-
-def populate_wxPyFatalErrorDialog( parent, call_fit = True, set_sizer = True ):
- item0 = wxBoxSizer( wxVERTICAL )
-
- item1 = wxBoxSizer( wxHORIZONTAL )
-
- item3 = wxStaticBox( parent, -1, "Fatal" )
- item3.SetFont( wxFont( 9, wxSWISS, wxNORMAL, wxBOLD ) )
- item2 = wxStaticBoxSizer( item3, wxVERTICAL )
-
- item4 = wxBoxSizer( wxHORIZONTAL )
-
- item5 = wxStaticText( parent, wxPyError_ID_TEXT1, "Error in ", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item5.SetForegroundColour( wxWHITE )
- item5.SetBackgroundColour( wxRED )
- item5.SetFont( wxFont( 21, wxSCRIPT, wxNORMAL, wxBOLD ) )
- item4.AddWindow( item5, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item6 = wxStaticText( parent, wxPyError_ID_PROGRAMNAME, "wxPyError_ID_PROGRAMNAME", wxDefaultPosition, wxDefaultSize, 0 )
- item6.SetFont( wxFont( 21, wxROMAN, wxITALIC, wxNORMAL ) )
- item4.AddWindow( item6, 1, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item2.AddSizer( item4, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item7 = wxBoxSizer( wxHORIZONTAL )
-
- item8 = wxStaticText( parent, wxPyError_ID_TEXT2, "Version ", wxDefaultPosition, wxDefaultSize, 0 )
- item8.SetFont( wxFont( 9, wxROMAN, wxNORMAL, wxNORMAL ) )
- item7.AddWindow( item8, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item9 = wxStaticText( parent, wxPyError_ID_VERSIONNUMBER, "wxPyError_ID_VERSIONNUMBER", wxDefaultPosition, wxDefaultSize, 0 )
- item9.SetFont( wxFont( 12, wxROMAN, wxNORMAL, wxBOLD ) )
- item7.AddWindow( item9, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item2.AddSizer( item7, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item10 = wxStaticText( parent, wxPyError_ID_EXTRA_VERSION_INFORMATION, "wxPyError_ID_EXTRA_VERSION_INFORMATION", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item10.SetFont( wxFont( 7, wxROMAN, wxITALIC, wxNORMAL ) )
- item2.AddWindow( item10, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item1.AddSizer( item2, 1, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item11 = wxStaticBitmap( parent, wxPyError_ID_STATICBITMAP1, PythonBitmaps( 0 ), wxDefaultPosition, wxDefaultSize )
- item1.AddWindow( item11, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item12 = wxStaticBitmap( parent, wxPyError_ID_STATICBITMAP2, PythonBitmaps( 1 ), wxDefaultPosition, wxDefaultSize )
- item1.AddWindow( item12, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item0.AddSizer( item1, 1, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
-
- item13 = wxStaticText( parent, wxPyError_ID_TEXT3, "The Python interpreter has encountered a so-called \"un-caught exception\".", wxDefaultPosition, wxDefaultSize, 0 )
- item0.AddWindow( item13, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item15 = wxStaticBox( parent, -1, "Exception information" )
- item15.SetFont( wxFont( 6, wxSWISS, wxITALIC, wxNORMAL ) )
- item14 = wxStaticBoxSizer( item15, wxVERTICAL )
-
- item16 = wxStaticText( parent, wxPyError_ID_TEXT4,
- "Please don't worry if this doesn't mean anything to you.\n"
- "It will be included in the \"bug report\" mentioned below, along with a \"stack traceback\".",
- wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item16.SetFont( wxFont( 8, wxROMAN, wxNORMAL, wxNORMAL ) )
- item14.AddWindow( item16, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item17 = wxFlexGridSizer( 2, 0, 1, 1 )
- item17.AddGrowableCol( 1 )
-
- item18 = wxStaticText( parent, wxPyError_ID_TEXT5, "Name:", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT )
- item18.SetFont( wxFont( 10, wxROMAN, wxITALIC, wxNORMAL ) )
- item18.SetToolTip( wxToolTip("This gives the type of the error.") )
- item17.AddWindow( item18, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item19 = wxStaticText( parent, wxPyError_ID_EXCEPTIONNAME, "wxPyError_ID_EXCEPTIONNAME", wxDefaultPosition, wxDefaultSize, 0 )
- item17.AddWindow( item19, 0, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
-
- item20 = wxStaticText( parent, wxPyError_ID_TEXT6,
- "Extra\n"
- "information:",
- wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item20.SetFont( wxFont( 10, wxROMAN, wxITALIC, wxNORMAL ) )
- item17.AddWindow( item20, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item21 = wxStaticText( parent, wxPyError_ID_EXTRAINFORMATION, "wxPyError_ID_EXTRAINFORMATION", wxDefaultPosition, wxDefaultSize, 0 )
- item17.AddWindow( item21, 0, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
-
- item14.AddSizer( item17, 0, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
-
- item0.AddSizer( item14, 1, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 10 )
-
- item22 = wxStaticText( parent, wxPyError_ID_TEXT7, "Please select one of the options below.", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item22.SetFont( wxFont( 8, wxROMAN, wxITALIC, wxNORMAL ) )
- item0.AddWindow( item22, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item23 = wxFlexGridSizer( 3, 0, 0, 6 )
- item23.AddGrowableCol( 0 )
- item23.AddGrowableCol( 1 )
- item23.AddGrowableCol( 2 )
-
- item24 = wxBoxSizer( wxHORIZONTAL )
-
- item25 = wxButton( parent, wxPyError_ID_MAIL, "E-mail support", wxDefaultPosition, wxDefaultSize, 0 )
- item24.AddWindow( item25, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item26 = wxBoxSizer( wxVERTICAL )
-
- item27 = wxStaticText( parent, wxPyError_ID_TEXT8, "Your e-mail address:", wxDefaultPosition, wxDefaultSize, 0 )
- item27.SetFont( wxFont( 8, wxROMAN, wxITALIC, wxNORMAL ) )
- item26.AddWindow( item27, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item28 = wxTextCtrl( parent, wxPyError_ID_ADDRESS, "", wxDefaultPosition, wxSize(80,-1), 0 )
- item26.AddWindow( item28, 2, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
-
- item24.AddSizer( item26, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item23.AddSizer( item24, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item29 = wxButton( parent, wxPyError_ID_EXIT, "Exit immediately", wxDefaultPosition, wxDefaultSize, 0 )
- item29.SetDefault()
- item23.AddWindow( item29, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item30 = wxStaticText( parent, wxPyError_ID_TEXT9, "E-mail a \"bug report\" (if this is indeed a bug!).", wxDefaultPosition, wxDefaultSize, 0 )
- item23.AddWindow( item30, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item31 = wxStaticText( parent, wxPyError_ID_TEXT10, "Attempt to exit immediately.", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT )
- item23.AddWindow( item31, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE, 5 )
-
- item32 = wxStaticText( parent, wxPyError_ID_TEXT11, "(Please read any accompanying documentation first!)", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item32.SetFont( wxFont( 7, wxROMAN, wxNORMAL, wxBOLD ) )
- item23.AddWindow( item32, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item33 = wxStaticText( parent, wxPyError_ID_TEXT12, "(Please note that no attempt to save unsaved data will be made.)", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT )
- item33.SetFont( wxFont( 7, wxROMAN, wxNORMAL, wxBOLD ) )
- item23.AddWindow( item33, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item0.AddSizer( item23, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- if set_sizer == True:
- parent.SetAutoLayout( True )
- parent.SetSizer( item0 )
- if call_fit == True:
- item0.Fit( parent )
- item0.SetSizeHints( parent )
-
- return item0
-
-wxPyError_ID_HTML = 10027
-
-def populate_wxPyNonFatalError( parent, call_fit = True, set_sizer = True ):
- item0 = wxBoxSizer( wxVERTICAL )
-
- item1 = wxBoxSizer( wxHORIZONTAL )
-
- item3 = wxStaticBox( parent, -1, "Non-fatal" )
- item3.SetFont( wxFont( 9, wxSWISS, wxNORMAL, wxBOLD ) )
- item2 = wxStaticBoxSizer( item3, wxVERTICAL )
-
- item4 = wxBoxSizer( wxHORIZONTAL )
-
- item5 = wxStaticText( parent, wxPyError_ID_TEXT1, "Error in ", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item5.SetForegroundColour( wxWHITE )
- item5.SetBackgroundColour( wxRED )
- item5.SetFont( wxFont( 21, wxSCRIPT, wxNORMAL, wxBOLD ) )
- item4.AddWindow( item5, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item6 = wxStaticText( parent, wxPyError_ID_PROGRAMNAME, "wxPyError_ID_PROGRAMNAME", wxDefaultPosition, wxDefaultSize, 0 )
- item6.SetFont( wxFont( 21, wxROMAN, wxITALIC, wxNORMAL ) )
- item4.AddWindow( item6, 1, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item2.AddSizer( item4, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item7 = wxBoxSizer( wxHORIZONTAL )
-
- item8 = wxStaticText( parent, wxPyError_ID_TEXT2, "Version ", wxDefaultPosition, wxDefaultSize, 0 )
- item8.SetFont( wxFont( 9, wxROMAN, wxNORMAL, wxNORMAL ) )
- item7.AddWindow( item8, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item9 = wxStaticText( parent, wxPyError_ID_VERSIONNUMBER, "wxPyError_ID_VERSIONNUMBER", wxDefaultPosition, wxDefaultSize, 0 )
- item9.SetFont( wxFont( 12, wxROMAN, wxNORMAL, wxBOLD ) )
- item7.AddWindow( item9, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item2.AddSizer( item7, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item10 = wxStaticText( parent, wxPyError_ID_EXTRA_VERSION_INFORMATION, "wxPyError_ID_EXTRA_VERSION_INFORMATION", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item10.SetFont( wxFont( 7, wxROMAN, wxITALIC, wxNORMAL ) )
- item2.AddWindow( item10, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item1.AddSizer( item2, 1, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item11 = wxStaticBitmap( parent, wxPyError_ID_STATICBITMAP1, PythonBitmaps( 0 ), wxDefaultPosition, wxDefaultSize )
- item1.AddWindow( item11, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item12 = wxStaticBitmap( parent, wxPyError_ID_STATICBITMAP2, PythonBitmaps( 1 ), wxDefaultPosition, wxDefaultSize )
- item1.AddWindow( item12, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item0.AddSizer( item1, 0, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
-
- parent.sizerAroundText = item13 = wxBoxSizer( wxVERTICAL )
-
- item14 = parent.HTMLWindow = wxPyClickableHtmlWindow( parent, wxPyError_ID_HTML )
- item13.AddWindow( item14, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item0.AddSizer( item13, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item15 = wxFlexGridSizer( 3, 0, 0, 6 )
- item15.AddGrowableCol( 0 )
- item15.AddGrowableCol( 1 )
- item15.AddGrowableCol( 2 )
-
- item16 = wxButton( parent, wxID_OK, "OK", wxDefaultPosition, wxDefaultSize, 0 )
- item16.SetDefault()
- item15.AddWindow( item16, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item17 = wxButton( parent, wxID_CANCEL, "Cancel", wxDefaultPosition, wxDefaultSize, 0 )
- item15.AddWindow( item17, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item18 = wxStaticText( parent, wxPyError_ID_TEXT1, "", wxDefaultPosition, wxDefaultSize, 0 )
- item15.AddWindow( item18, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item19 = wxStaticText( parent, wxPyError_ID_TEXT2, "", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT )
- item15.AddWindow( item19, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE, 5 )
-
- item0.AddSizer( item15, 1, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- if set_sizer == True:
- parent.SetAutoLayout( True )
- parent.SetSizer( item0 )
- if call_fit == True:
- item0.Fit( parent )
- item0.SetSizeHints( parent )
-
- return item0
-
-
-def populate_wxPyFatalError( parent, call_fit = True, set_sizer = True ):
- item0 = wxBoxSizer( wxVERTICAL )
-
- item1 = wxBoxSizer( wxHORIZONTAL )
-
- item3 = wxStaticBox( parent, -1, "Fatal" )
- item3.SetFont( wxFont( 9, wxSWISS, wxNORMAL, wxBOLD ) )
- item2 = wxStaticBoxSizer( item3, wxVERTICAL )
-
- item4 = wxBoxSizer( wxHORIZONTAL )
-
- item5 = wxStaticText( parent, wxPyError_ID_TEXT1, "Error in ", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item5.SetForegroundColour( wxWHITE )
- item5.SetBackgroundColour( wxRED )
- item5.SetFont( wxFont( 21, wxSCRIPT, wxNORMAL, wxBOLD ) )
- item4.AddWindow( item5, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item6 = wxStaticText( parent, wxPyError_ID_PROGRAMNAME, "wxPyError_ID_PROGRAMNAME", wxDefaultPosition, wxDefaultSize, 0 )
- item6.SetFont( wxFont( 21, wxROMAN, wxITALIC, wxNORMAL ) )
- item4.AddWindow( item6, 1, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item2.AddSizer( item4, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item7 = wxBoxSizer( wxHORIZONTAL )
-
- item8 = wxStaticText( parent, wxPyError_ID_TEXT2, "Version ", wxDefaultPosition, wxDefaultSize, 0 )
- item8.SetFont( wxFont( 9, wxROMAN, wxNORMAL, wxNORMAL ) )
- item7.AddWindow( item8, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item9 = wxStaticText( parent, wxPyError_ID_VERSIONNUMBER, "wxPyError_ID_VERSIONNUMBER", wxDefaultPosition, wxDefaultSize, 0 )
- item9.SetFont( wxFont( 12, wxROMAN, wxNORMAL, wxBOLD ) )
- item7.AddWindow( item9, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item2.AddSizer( item7, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item10 = wxStaticText( parent, wxPyError_ID_EXTRA_VERSION_INFORMATION, "wxPyError_ID_EXTRA_VERSION_INFORMATION", wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE )
- item10.SetFont( wxFont( 7, wxROMAN, wxITALIC, wxNORMAL ) )
- item2.AddWindow( item10, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item1.AddSizer( item2, 1, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item11 = wxStaticBitmap( parent, wxPyError_ID_STATICBITMAP1, PythonBitmaps( 0 ), wxDefaultPosition, wxDefaultSize )
- item1.AddWindow( item11, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item12 = wxStaticBitmap( parent, wxPyError_ID_STATICBITMAP2, PythonBitmaps( 1 ), wxDefaultPosition, wxDefaultSize )
- item1.AddWindow( item12, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item0.AddSizer( item1, 1, wxADJUST_MINSIZE|wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 )
-
- parent.sizerAroundText = item13 = wxBoxSizer( wxVERTICAL )
-
- item14 = parent.HTMLWindow = wxPyClickableHtmlWindow( parent, wxPyError_ID_HTML )
- item13.AddWindow( item14, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item0.AddSizer( item13, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item15 = wxFlexGridSizer( 2, 0, 0, 6 )
- item15.AddGrowableCol( 0 )
-
- item16 = wxButton( parent, wxID_OK, "OK", wxDefaultPosition, wxDefaultSize, 0 )
- item16.SetDefault()
- item15.AddWindow( item16, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item18 = wxStaticText( parent, wxPyError_ID_TEXT3, "", wxDefaultPosition, wxDefaultSize, 0 )
- item15.AddWindow( item18, 0, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- item0.AddSizer( item15, 1, wxADJUST_MINSIZE|wxALIGN_CENTRE|wxALL, 5 )
-
- if set_sizer == True:
- parent.SetAutoLayout( True )
- parent.SetSizer( item0 )
- if call_fit == True:
- item0.Fit( parent )
- item0.SetSizeHints( parent )
-
- return item0
-
-# End of generated file
+++ /dev/null
-#----------------------------------------------------------------------
-# This file was generated by C:\Python21\wxPython\tools\img2py.py
-# [NBNBNB with an addendum at the end, and...]
-
-#----------------------------------------------------------------------------
-# Name: PythonBitmaps.py
-# Version: 1.0
-# Created: October 2001
-# Author: Chris Fama of Wholly Snakes Software,
-# Chris.Fama@whollysnakes.com
-#----------------------------------------------------------------------------
-"""
-This file was [mainly] generated by img2py. The functions of interest are:
-
-getPythonPoweredBitmap
-getPythonPoweredImage
-getwxPythonBitmap
-getwxPythonImage
-
- --The meaning of these is obvious. They take no arguments.
-
-PythonBitmaps
-
- --This takes a single argument. If it tests True,
- getPythonPoweredBitmap() is returned, else getwxPythonBitmap() is
- returned.
-
-Sorry no demo; see the demo for ErrorDialogs.py.
-"""
-
-from wxPython.wx import wxBitmapFromXPMData, wxImageFromBitmap
-import cPickle, zlib
-
-
-def getwxPythonData():
- return cPickle.loads(zlib.decompress(
-'x\xdau}iw\xdb:\xb2\xed\xf7\xfb+\x94C\x8aN$\x92\x16\'Q\xa2H.N\x92\xe7\xc8Cl\
-\xd3\xc9Jb;\x1e\xe2x\xa0g;\xb1\xe3\xdf\xfe@\xd6.\xe8\xf4\xed\xfb\x1a+\x89\
-\x0e\x9a\x04P\x05\xa0P\xc3F\xf1\xfd\xc5\xb5\xf5?[sV\xaf\xd7r\x9d\x96m\xb9n\
-\xcb\x9e\xfb\x9f\x83\xad\xb9~\xd5\xfa\xd1Rz\xbdI\xda\xeb5\x15\xfb]Q\x91]\x1c\
-\xfc8o\xfe3\xee\xd4\xff\x7f:I\x079\xfd\xff\xddnS\xe1\x0c\xc7\xd9\xb0\xa9xS\
-\xeb\x8a\xbc\xc8\x9d\x9c*^[ME\x9e{c\xea\xe3\x83)_I\x9b\x8aVPW\x8c\xdd\xdc\
-\x1e\xd0\x13_gOdM\xc5\xc7Hv\xeb4\x15\xa3\xb8y\xc5r\\\x8f\x9exj\x06\xde\x9f\
-\xf43\xdfm*\xfe4\xaf\x8c\xed|<\xa0\x8a\xa8\xa9\xc8\xadl\x98{M\xc5\xb5\xde4\
-\xdaK\x07\xe3\xa2\xa90*\xd9\xed\xb8\xa9\x18\xdb\xcd+^\xee\x8e\xa9\xe2\xd6\
-\xa9+\xb2,\xb3\xf3\t\x91\x9f4\xdd\x0e\xfb\xee\x80\xf8Q\x8d\xea\x8aI6\xf1\'T\
-\xf1j\xc8\n\xab\xa9h\x8f\x98A\x05U$V]QL\xfa\xbeO\x15\xf9\xb4\xae\xb0\xf2I\
-\xdf"\x06}W\x88\xb8\xac\x00-\x0b\xedf\x9a\xdca\xafG\x15?\xa8\xc2\xeb\x15="n\
-\xbf!n\xe8\r\x07\x18\xfa\x16MC?\xb7\x0b\x1a\xfa7\xad\xe9\xa5\x98\xf4,\xaa\
-\xf8\xa2\xd2\xdc{}\xcc\xfd\xef\x868\xb7\xe7Z.M\xe5C\xc3\xa0\xc2\xc9\xd3\x82&\
-j\xbb\x19z\xe6\xa5\x93\x9c\xa6a\xa5a\x90?\xf0\xfd1Uh\xf4\x8a\x9d\xe7\xe3\xbc\
-\xa9(C\xf9\nU\x1c;</\x05\xd1\xf2\xa1l*\xfc\xbc\x97\xd3\xbc\xac5\xbd\x8c{i\
-\x965\xc4\xfd3\xd7\x0c\xcc\x9e\xd8c\xa7\xffO\xfdD\xd6L\xd4\xb0\x18f\x98\xb9\
-\t\xd6\xc7\xc0\x1e\x10qW\xb6|\xc5o*z]\xac\xf41\xa8\xfd\x10H\xe2\x06M\x85\xdf\
-\xf4"\xb83\xe8\xd1\xbc(\xcd\n\x1aX~> ~$\xcdn\x18{EV\xd0D}\nx\xe8`\xd0\x97f\
-\xe8\xc3\xc1\xd0\xce\xa8\xc2l\xb8\xee\xa5\x9e\xe5\xd0Jvt"n0\x18R\xc5RC\xbe]\
-\x8cm\x87\xf8\xa1x\rO3\xdf\x1b\xd2\xdc\xf6\x9b\n\xc7\xab\x0b\xf52\xeb\xb6\
-\xdfT\x9c\x86\xd4h\xdf\xeb\x13?\xde5+\xc8\x1a\xd4\x85\xb6\x07-\x98^\x9a\x83\
-\xfcu\x1a\x87\x95z\xd8\xd9{\x16\xd6z\xbf\xa0\n\xbd\x19\xd8p<\x1cf\xc4\x8f\
-\xc9\x88\xc9\x1fS\x85\xd1,\xdc\xdeD,\\\xa2\xb6l\xba\xf5\xdd|\xec\x13\x83\xde\
-\xd9\xb2Qzb\xa7Y\x1fC1M)-\x87\x9b\xe6\t\xd7r&.\x91\xff\xd2\x92\xc4\xd1r\xd87\
-\xe58\x88|\xb5\x19X\x9a\xa6NFO\xfcj*\xb2~Z`\xab\xef5\xe3\xf0\xc4\xae\xf5\xe8\
-\x89%\x8d\xa5CJO\x18\xcd*\x1c\xf4\xfd!\x0b\x03S6J,\xbc\x99\xcan\x89\xc9a\xb3\
-_\x9c\x9e\x9d\xdb\xb4\xc6\x86r\x1c`a\x8a5V\xf8`\xf2{\xdeb,^\xbf4\xe3\xc8\xf2\
-\xcc\xa5W\xfe\x99k\xc8/\x86\x855\xee5K{\x81\xf7m\x1f\xe2\xf3\xc9\x95\xbd\xd0\
-\x82i5,\xcczi\x9a\x11\x0b\'\x06\x11W\xa4}b\xe1\xa6\x85-V`\x8b\xbd\x98\xb2["\
-\xff\x9c\xf7m\x06\xf2\'\x91l\x94\xc8_\x8f\xe4+D\xfe\xbc-\x1b\xa5\x8am\xda\
-\xc8\xbdl\x02\x91\xf3R\xca6\x88Aw\x95l\x836a\x97$\xae\x9b\xf62Z\x96?\x9b\x1d\
-e\x8f\xc7=\x87\x18\xb4%\xc7\x01\x9e&\xb2\xd1\x9c\x16\xdd\xaf.\xb6i\x8em\xfaf\
-\xca\'\x88A?H\xc0\xdaEoB\x15\x9b\xf4J\xd1\x13"\x86dr3tw\xe8\x0e!\xa5Z4Q\xde\
-\xd8\x85<\xcd\x9b\xfd2\x9c\x0c\xb3!\r}\x1a\xca^\xa8b\xdf\x92\xc4\x11\xb5{\
-\xcdD\r\x9dA\x91\xd2\x13\x8bM\xb7vj\x0fA\xdchD\xeb4\xb3@\\X\xa2\x17\x1f\xe2\
-\xe2\xde\x95\xbd\xd0\x06j7B\xc9\x17L\x1e\x10-\x9f\x9b\x81M\xf2\xc9\x10\xc4M:\
-\xb2\x82&\xfbw,+ .\x9a\xa1\x17\xe2p\xc5\xec_\xd0\xe2\xb7\x87\x1ef\xff\xb1Y\
-\x96N\xdfq\x1c\x9a\xca\xfbY\x1b4\xd9_i\xe1\x16\x99\x8d\xb9\xfd\x93`i\xb3<]BE\
-\x91\xa1"$9\xd6\xf7{C\x9c\x95t\xaa{\xe2\xbc\x85\x80\r$?H\xc0\x0eC\x92\x0eC\
-\x07Ol\x90\x1cs\xeaB<%\x19$\x04_A\x07N\x12\xca6\x88\x96\x95J\xbeBC\xff\x94P\
-\xc5\xb0\x87\x8a\xd6\xec\x15\x9c\xfb\xcd\n\xea\xbb}\xc7\'\xe2,\x9a\x97\xe1\
-\xd0M\xa9\xe2\x99v\xe5X(58+#~\x05\x8a\xc0\xa3)\x89#Z"\x03ZN:\xa4\x8a\xebf\
-\x03\x89]\x9c\xbaD\\4{\x85hi\xcf*hY\xf6\x15\xf9\n\xcd\xadN<\xcd}\x7fH\x15[\
-\xa4K\x89c~@s{\xe8\xd2\x82\xe9\x17\x03"\xae\xd0H\xdd\xc8\x87\x1e\xd1\xf2@\
-\xa7\x98S\xf4\x86T1\xc6\xd9\xe0\xb0\xd8\xf2\xd1hQ\x80\xda\xab\x86\x85\xb9#t)\
-\xa2\xe5\x894\x94L\xe8A\xb4p\'6\xcd\xcb\xb07\xa4\x85;&\xe90\x10\xfa\x07U<\
-\x93\xb4\xccR\x0f\xc4]B\x0f\x12\x8d\x12-\xddf\x13\x8a3\xcc\xf2\x89\x96m\x12\
-\xc1\xce\xd0J\x89\x96\xf9\x86\xa7\x99/\x94\t\x9a\xca\xdbf\x9d\x16i\xe1\x14\
-\xf4\x84\xebB\xdb\xca \x94F\xa6\xec\x96\xa8]#\x9eZ\xf6\x18b\xfc\x1dt`\xa1\
-\x19\x11\xb5\x87\xe0G\xdfF\xc5\xb8\xc3\xe3\xc8\xa8\xe2W\xd3h>\x14\xf2dHb\x9c\
-\xe4\xc7p\x92\xf5\x86\x8d\x18?\xae\xe4\x13D\xfeS(\xdbp\xe8\x15K\xd2\x925\xaf\
-\x94\r\xb5\x99\x9d\xf6\xc1\xa0\xaa#\xdb\xa0\nc\x84M\xd8\x07\xc7\xceB\xe6zJ\
-\x15\x95#\x1b\xa5WN\x9b\n\xaf\xefy\x90t\'\xb3\n\xda/I\xcc\x92\x0e\x0c\xcae\
-\x05\xa4\xd4[\xb3\xd6\x85*\xc5\xe7\xfe&\x8d\xc3J\xf3\x9cf\xff\xb8Y\x1fb\x14~\
-J\xdb4iX(\x94 Qh\xb2y\x03\r\xc74\xd2\xef\xcd\xb2\xcc\xc5q\x03j;\x8dB2\x10\
-\xcb\x16\x9a\xc1\x8fY/\xb4\x1c\x1e\x02\xe6GA\x15\x13\x129\xe3\xba4\x15\x83)i\
-}B\x97\x82\xd6G+\xc8J-\xc8\xe4T\x97\x8dR\x85\xd2\xe2\x15\x04\x05\xde6\xe5\
-\x13tF\xfd5\xb1\xf8\x0bT\x8c\x1b\xb9\xee:Be\xa1W\xd6\xe8X\xebIM\xe9\x9a\x8c\
-\x11+\xf7\xa0I\x0fb\xd9(U\xa8!O%\xac\x82\x1ftF\xd9\xe2\xdc#\x16\xa6\xa4nd\
-\xbe\x03\x16\xf6H\x11\xf0R\x1b\xe7\\\xd8\xb0P\x9c\x14\x0eX\x18\x92\xc93\xc9}\
-\x9c\xfb\xbb\rq\xe3|\xec\xe2(\xd8\xd6XU\x80\x1ed\x91P\xf2\x85n\t\xb5G\x91\
-\xb4\x10\x83.H\x18XBg\xa3\x8a\xc7\x86\x85\x93\xa2\xb6q\xe8l\x08\xb1\x91\x0b\
-\xf0\xf4\x0b\xc9 \xdfgm<L\xb8\x17p\xec\x9a$\xbf\x9f9\xe0\xe9b(\x1b\xa5\x8a\
-\xbb\x16\x04}\n;j\xa3\x99\xca~\x9a\xbb>\xb1\xd0\x07\x93\x8bAA\x15\xfb\xb6l\
-\x83*\xe6\x9bq\x0c\x1c?\x87\x08~oI\x06\xd1\xae\xbc\x89\xe58\x88\xc9\xeb\xb3n\
-\x89\x85\xa6\xc1S\xe9Q\xc5*i(c\xa9K\xbd#-\xb8\xe8\xa7=\xa2\xf6,\x96\x03\xa3\
-\x8a\xf7\x0e\xaf\xa0\x82\x18\xd4!Y\xd8\x97z\xd0Q\x97\x18$\x146b\x90\x86\xd3t\
-hA\x06}o\xf1\xd0\xa1\x17\x9e\xd1\xcc\t\x03\xc6\xa5\x8a\x85f\xe62\'\x1d\xa4D\
-\x8bOr\xac/\x14zZ0\xddf\xe8\xb6\xd0\x9dl\xaa(g\xc4\xd1+w$O\xbd|\\@\\\xf0a\
-\xe1B\xf9\x1eir\xe8\xb4`\xbe\x91t\x18O\x86\x90\xb8\xeb8\xf8\n{H\x15!\x1d\x16\
-\xfd\xbe\xd3\'~l\x85\xd8\xc8.\xf8q\xe7r\xa3\x109\x7fh\xd1\xd9\xc3\xde\x80f\
-\xff\xa5aP6\x10g6|\x06\rq\xb9\x9d\xf50\xf4n)\x9f\xa0\x89\xdah6\xd0\xd0/2X\
-\xd1w\xcd+\x83\x9e0\xab\xb1_h\xb2\xfbckB\xb2p\x95x:q&\x10\x8e\x1fh*\xfdb2\
-\xa6\x03\xc7i\x0e`\xa1\x9d\xf7\x07T\xf1\xd8\x92\xb4\xc0\xac&c5-\n\x9c/w\x01\
-\xb6\xa9\x0f\x01\xbb#_\x81<\x9do1\xd7\xc7\xb4N{\n\x1d\'u!\xf9\x11r\x1b\xd0\
-\x82\x7f`W\xf6\'\xb0\xb4\xaaY\x1b\xc4\x8f#\x12[inci/\x94\xb2\r\x9a\xfdq#\xb6\
-\x1c\xdb\xe9\xc16=\xedb\xef\x17PHvM\xd9(ql\xd0\xbc\xe2\t\xe9\xe0Q\x85\xd6\
-\x96\xafP\xc5\xfbJvK,,\xb0\x1b\x86\xfd\x01Ux\xa1\x9c(<1%\xb7K6\xc4\x92\xbaWd\
-\xa3XA\xae|\x85*VigO\x06iJ\xd3\xa0\xd2q\xd2\xcf2\x88\x9c3R\x14m7u\xa0\x9eOy\
-\x15Bc+y\x8by\xd8b;\xcd\x82\xb1\x84\x94\xb6\xa8b\xa5i\xa3\xe8\xe79\\\x04\x1e\
-\x8cw\xdfC\x1b\xcf\xb6d!M\xd4\xef\x12\x87\xf8\x18\xeb\xd4\xf3d\xb7T\xe1\xc4\
-\xd0\xc7\x8a\x01&\x8a\x0f\x8b!\x8c\xd5\n\x8a\x91\x9fA\xa7k5\x8dN\x9cq\x81U\
-\xa86\x0c*r\xa1\xf6P\xc5VS1H\x07\x1e\x96e\x9b\xa4\xd40\x9d\x80\x85\xbf\x03\
-\x9e\x17\xbc\xb2\xda\x85\t\xe8\x0e\x88\xb8\xf7M/\xc2H\x1a\xe2H\xfaL\x1c\x9b\
-\x14\xc3>\x11\xf75\x91\xafP\x853\xe3\x18U(#90Z\x96o\x95|\x82\xa8\x8dH\x1d\
-\xed\x0b\x81B\x8bN%O^\xaf\xdf\xf3i\x05}\xc6\x82\x91zahA\x85ck\xed\xcd\x91\
-\xb4PE/\x90\xdd\x12\x0b7,\xc91\xaa\xf8\xe2@\xc2\xb0\xd4>\xa6\xbd/8\n\x0bg\
-\xa5$3ab\xc3LX#\x9d.\x13:\x1dU|\xee\xca\'Hl\xed\x8e \x93\xb31\xad\xb1>-\x07q\
-\xe2`\xd1\xddc\x8d\x8d\xd9(R\x9aF\x05\xbb2\x98\t\xbb\x01\xc4g\x81C\xab\x08\
-\xe54PE.\x97\xc3\x90\xe6\xe5\xa7\xc3\x92\x1f\xf3rI\x03\xebe6\xfc0\xab\xb36h\
-\x1a\x9c\xae\xa4\x85\xa6\xe1-\x91\xe3\xa0\x8aQ(\xc7A<\xfdn\xcb6\xa8\xe2\xc2\
-\x82\x8b\xd1\xc2Q\xf0\xc7\x85,L\xb1\xb3\x1f\x1a\x9eN&\x13\x7f\x02\xdb#\xc2\
-\x91\x94\xd3*\xfcg\x8e<\x02\x13\xa1\xc1\xfa\x8d\xd2\xbb\xd4\xc2Y\x99\xe3\xdc\
-_\x81\x0fe8\x04\xc7\n\xf2\xb0\n\xeb\x16\nZ*\x1b\x85,\xbciv\xa5\xeb\x8a\xcd\
-\x00\x16\x96\x90\x0e\xe3\x94\xc8\xdf\xd2\xb0\xc5\n\x8f*65\x1ck9\x0c\xefa\xd3\
-hQ\x14\x16\x1cU\xbf\xd8\xd9\xe5\x92A\xf3\xcf\x1cUX^\xcfK\x9b\xa1\xf7\xa8\xdb\
-\xdc\xcd\xc6\xd4\xe8\x19\xc9B?\xb5\xd9\x8dM\x82\xde\xcd&`\xe1\x87\x16\xf3\
-\x14Z\xf02\x1c\xbbu\xa1\xc3\x02\x1a\xbd?\xc4\xa1\xf5=\x91O\x10\xd7\x97U\xd9\
-\x0b\xbc_t\x12\n\x16\xa3"\xa3\xb3\xc1\xc9-\x08\x94#G\x8e\x94*\xe6M\xd9\x06M\
-\xd4Z\xd3Fa\xe5>\x04\xec\xf1\xec\tZ\xc9Q \xb9N\x8b\x7f\xde\xc2F\xee\xe1\xe0;\
-+!\xc6YO>\xef\xd0T\xbalWv<\x96R)Ul\x87\xbc\x1c r\xda1\xce\xfd\x01\xdc\x1d\
-\xd7\x95l\x14\xfeB\r^\'\x17\x07\xce\xc1\x88\xa9\x85\xf7\xabOm\xf4r?%j\xd7\
-\x1b\xf2\x87\xf9 \x05\xf9\xdb\x06\xcf-N\x8f.[\xd1cT\xfc\x9ab\xdf\xb2M\xf8\
-\x89\x8c\x91\xa1TX\xefJ\xc8\x8f1\x0e\xf1\x1e\xc9\xb1\\\xea\xa7\xa3)\xb9\xd3\
-\x8b\xd4\xa5\xf5\xf1uJ\xa6W>\xe9\xc3\xb5G\xf2T\xa8E\xa0v,\x97%\x8e\xe8\xbf\
-\x92ZTl\x07r\x1c\xb4\xc6\x86\r\xb5i\x91\x0e\xf1\xc4\x06\xd6\xe90\x85M\xf8n\
-\xf6\x04U\xac\x90\xadn\xfb\x16$\xee\xb4\xc5S\xc9\xce\xd0HvK\x8bN\x89e\xa3T\
-\xb1\x14\xf2\xbc\xc0\x16["\xefWo\x90\xe3\x89t\xf6\n\xf1t)\x86\xef\x82Ms\x8b\
-\xb4\x9c\x9e0\xb3\x89\xc9\xbb6\x13\x07\x17t\xe4\xc9F\x89\xeb\x0f\xac\xa0A\
-\xe9\xfdg\xce\x81\x1c\x9b\xe4v\xb3+\xdb\xbc=\xfa\xd8\x84\x8fm\xf2\x9e\xe7ch9\
-\xbdY\x1bTqA\x15\x8e8\xc6a\x04\x90\xfb8\xf7\x86XR\xc6\xec\t\xe2\xd8\x92.\x89\
-#\x8eufO@s$\x938\x1f\xf6\xe1>\xfe\xa3\xc9F\xb1\xc6H\x16\xa6\x99\x85-6\xc2a\
-\x91\x0f\xc0\x8fs\x12\xb0~\xdf\xc3\x11\xbd`\xf0Z\xc7\x1a\xb3h\x1a2\xa1}\xd2\
-\x1a\xb3iI\t\xc1\x87\xf0B\x9b\xb7\x98\xb0p)@Ej\xe0X\xa8\xa3D\x8bO>\xb6\xbc.4\
-\xf46\xa4T\x81\xf3\xf6O%_!\xe2\x96\x15\xd6a\xb0>\xb6\xc8\xde\x17\xda\xbaEO\
-\xdc*\xb2\r\x9a\xec%\x07fS\x8e\n\xcd\x95\x03\x03\x83f\x03#~\x9c$\x88$\xda\
-\x109\xf7\xcd\xd9 \xb4\x11\x07~\x98uRXm\xa1(\x12\x83\x9eu\x88q\xf6\xd3\rM\
-\xf9\x044\x148\xcbs\x1f\x96\xc5\xcd\xec\tb\xe1\xa9B\xbe\x0b\xb1^\xa0\xc2ud\
-\xb7T\xb1k\xf0H\xa1\xe4}R\xc9\x8b\x9f\xa7,\xf9m\xf9\n\xc2>\x1d,\xfe\x1c\x82\
-\xbe \rV(\x92Cbrd\x91}\xdb\x1fc\x13\xdad\xac\x8a\x9d\x8f\x8a\x82\xddr\xfd!q\
-\xec\x9e\xcf[\xf1?R\xf2pz\x08\x89C\x1c[\xa1x\xe5@*\xbd\x7f\x10\x91H\xd9\xae<\
-\xd3\x10\xb0\x1bB\xb0E\x1d\xec\xfd\x01*6\xdb\xb4>\xc4\x96#\x8e\xf5IeI\'}\x98\
-\xe6\xdfK\xf9\n\xb1\xf0\x98\xbc\xe7\xd6x\xd0\'~\xa404\x0b64?\xc2\xc0\xf3lT,6\
-mx\x96\x10\x1fP\xf2(^\x99\x8f\'\x16-\x98m\x12\xb0\xe3~\n/\xed\x84T\x85\xfe$\
-\xed\x11\xb5\x1b%\x8c\x80\t\xbc,\xdb4\x0e\x7fh\xa5T\xf1\x97\x0f\x0b\xcf\xa7n\
-\xaf`G\t\xbd\x99&\xaa\xa2\xfd\xe2\n\x05\x9e\x9e\xd8\xe10\xc7\x00\x1b(nX8\xc8\
-\x8b\x0c\xe2\xf3\x06\xc1\xd8t\x8c\xb9\xdd$\x7f\xb2-TZ\x9a\xb9\xcd\x88\x99\\ \
-\xa2\x19B:\xa4Y\xd1\x88-\xd5\x95\xdd\xd2+\xdf:\xe0\x98\xe5\x13\xf9\x06I\x87\
-\xa2\xe8\xc1\xcd\xb0\xa3\xc9^\xa8B\xe7\x10\xa7\x0c?\xc960\xfb\xfa\x88_A\xc5&\
-G#-\xf8\xe8\xbb\x0es\x0c\xae\xac\x81\'_\x81\x13a\x04\xf3>\x85R\xb3C\xde\x9e\
-\xd4w\xe1\x93\x0eCI-\xd1\x12\xd3\xc0\xfc\xbc\x80&\x1d\x90\r4\xc8X\x16\xc6R\
-\x8cC:,\x92\xd3\xde\xaf\x0b\x89\xbe\x08q\xe4\x1c\xd2\xa1oA|z\x88\xbf|4\x11\
-\x14\x1e@:\xa4!/\x07\x98o\x8b\nB\xbe>\xbb\xb1\xc9n\x18\x08\x1d\x86*6ln\x94\
-\x14\x92\x7f\xe6\xa6\xb2Q:_\x8eKYA\xfc\xc8(\xa2i\te\x93\x16\x8c\xab`%\x8f\
-\xb1\xb4\xe7g\xbdP\xc5\x9e#{\xa16\x9eI\x06\r\x85\xb6E<\xfd\xdd\xcc\x9c7\xf6\
-\x86.\\\xbf\xa1l\x03\xbe\x8bJ\x8e\x03QQU\xb6A\\\xbf\xb7\xe4+pC\x91\xc8\xe9\
-\xf9\x1c\xd3Zg\xcf7\x1f\xc0\xab\x1aw\xeb\x81\x85\xb3W\x88\x85\xbbT\x91\x0b\
-\x15\x8eD\xdf\x06\xcd\xad\xe3Zp2\x15\x88\x04\xa4\xcc\xa0+\x07b\x9cC6\x07&\
-\x82\xc2\x0e\x14\x92\xcf!\xb6X\x0eeb\r\xbb\xd2\xf1<(h\xbc\xa3\\\xacuG\x01vc\
-\x027\xe5\x14N{\xb1\xfc\xe9\x89\xf3\x11\xa4e\nY\xf8F6\xa1\'\xe4\t=\xb1\x80\
-\x91\n!<\xa1\xc9\x86B\xd2\x13\xc2\xb1\x99\xec_d%\xb9\xc2\x8c\xa2\xddp\xa0A\
-\xd0\x8f\xa1\xb0\xfel\x86\xee\x0e\xdc\x01\x8c\x80g\x0b\x9a\xf4dB\x0c\xd2M`YX\
-A{*\xe5\xd0!\x83\xe8\xd0\x1a\x17\xfe\x181>\x86\xd0\xf4a&\xfc6\xe5+4\xfbiC\
-\xed8\x15:,\xac\x02\x9aJ\xc1C\xb8\xc2\xb7I\xdb\x1aKmk@\xd6I_\x88 "\xff\x96\
-\xf4SO\xcc%t\xdc\x08\xb1\x13\x17\xeaW\xe2\xca\xa1\xd3\xec\xafq(\xbe\x0f\xe90\
--\x11\x14N\xb1\xa3"\x04Br\x0f\x9e\xab\x03\x97\'\x1b\x1c3K\x00d\x06`\xd0m\xc8\
-\xc4\x81A\xc70V\xb3!\xc2\xb5\x17\x06\xf6m\x06#\xe0\x17\x85\xaf\x85\x06\x0b\r\
-e\xb9\x8b\x80\x7f\x0e\x93g\xb9y\xc5\x9bx\xbeK\x15;\xa4\xd1\xfb\x93\x1c2\xe8>\
-\x90\xd4B\x06Qp\xc9\xcbzP7^H\xb0yB=\xc7\x81\xc3\xb1y\x07\xda\xc5\x84\xe3\xfb\
-,q\xbf\x91\\\xb7\x866d\xd0<I\xed\xc1\xa4\x0f~l\xcez\x01^*\x96\xe3\xa0\x8a.\
-\x9d\xb7\xb6\xc5\xd6\xfc\xdb\xacQ\xaaxf\xac\xd3\x04J\xde\xa9.\x1b\xa5%u\xd6B\
-\xfc\xd6\x865\x9f\x90cfRx\xec\xd8\x9d\xbd\x02{\x9f\xe2/\xb9\xcf.\x93\xd7\xd9\
-\x13T\xf1\xc4\xc8\x9d\x14\x8b\xae0\x81vq\x10\x9fk\xd3\x11\xed\xf4m\x1cZ\x7fY\
-!\xc9\xa1\x05\'\xcdD\xf5\xad\xdce_p\xc9m\x80c6C\xd2\xd8\xf4\xca4n\x14\x87\
-\x96\xc2\xd8\x9e\t\x9cn\x03R\xbe3g\x88\xc8\xea-\xb9\xd3\x85\xda\x0c\x8d\xfe\
-\xac#9F\x15\x1dX\'\xfd\x1e4\x94}\x17\xa8\x9b>x\xfa\xd4\xc297F$`\xaa\xc0\xe3<\
-\x80\xd8z\x8a\x81T\xb1\x10n\xb9\x0f\x81\xa9\xe1\x08\xde;\x92\x96\xbeP\xf2\
-\x88\x85\xd7\tp\x06\x16V\xe1\x8f\xd9T\x12\xc7\xbe\x06\xb2Qz\xa2\xb2%\x0b\xe9\
-\x89KR6\xfd\x9c\xa3\xd5m\xb6\n\nDh\x86]\xe0a\xc6p\xa7_\x98\xb2\x82\x18T6<\
-\x1d\xb8\xbe\x0f\xdb\xf4\xa4\x92O\x00q\xe7\xcaq\x10\x83\xfe(\x88x\xf7\x80\
-\xb8\x9b \xb0\x9c\x8d\xa1\x07\x1d\xb9\x10[lgO\xc9/%\x848PH\xf3S\xec\x86\x14\
-\xbba\x9b15\x85C\x03\xd3C\xe0al\x98\xd5\xef\x19\x12\xd0\x83\xc8\xf9\x12\xcb\
-\'h7\xfcv\xe4\xd0i\xa4E#\x82=\xcfs!\x1dF\x16\x0e-\x0b\x03\xdb\xb2(\x82\xe7\
-\xb2j\xfd\xbb+\x89\x83\xa3\x8a\xe1/^N\x90\xb3_\x01D\x1f\x03d6`\xad\xf5\xd8Qe\
-+\x98l\x17g\xe5G\x15H\x95\x02O\xb8dX\xa5B\xed\x81\x82\xd6\xe6n\xb1\xb4\x1f\
-\xe8\x04\xf2\x85*\x89\x88\x15q\xcc\x16:\x1d\xc2>\x89l\x94*,\x03\x90\x91\x0c\
-\xc6\xc8+#\x00\xd2\x01\xcd\xedE\x0b\x12f\x80\xf3eBaRo\xd2C\x1c\xe8m\xd6\x06l\
-d\x12\x17\x9e\xcfN\xea\x08\xd2aP@\xcb9i\xc9i &\x17\xd0O\xebB\xa7\xd8\x08\x91\
-U\x0e\xd7\xe6&\x02\xcb\x03\x88\x0b5B\xb4\x9a\x97\xf6+\\\xe1\xd9\xd8\x85\xb8\
-\x98\xf5\x02d\x86)GJk}\xc7\x90\xaf\x10\xd7_t\xf9\x04U\x98.@G\x16\x16\xbf\xc7\
-\xa1V\x0f,|\xa1\xa1\xd7\x81\x00\xe2\xd8\xaa\t(\x0f\xebt\xbb\x1d\xd9\x0bU|+\
-\xc9\x890\x19\xc0#\xf0c\nx\xe5\x10V\xf4\xd9\x8c\x16\x84\xe2m\x80l\\\xbc\xf2\
-\x13v\xb6t\xdc\xed3\xc8\x86\x81mG\x8c\xebK\x81\x88\xb8\xb2\x00\xe5\xe1\x98x\
-\x8746\xd7\x9d\x80c\xfa\xac\x17h\xd2\x90\xa7\x1e\xcb\xd3-\x151`\x07N\x95\x17\
-\xd9-\x18\xf4\x87qJ6\xce\xa8\x96d\xb2G\x1c\x0b\x03\xf9\x04q\xac\xd3\xc2\xf9\
-\xc2\xb0\xa4\x9e\x83\x80?k}\x1fuY\x81HQ\x17Q\xd1\x14\xd4\x8eT\x84}\xfap!\r$\
-\xd7=\xaa0u\x88`V\x14\x97"9t\x1c\xe2\xae|\x82*\xde\xd1Ih\x8dS\x8eV\xb7\xe48\
-\xe0\xd9,\x81\xbaaUr\xd3\x86\xdaS`\xd1\x998\xe6{\xbc\x91\xbf\xc86 \xa5\xbe\
-\xaa\xd8\xa6\x19\x96\xd4\x90\xc1>\x19\xa2\xb3\x1b3Z\x10\xaf\x8c\xa1\xd4L\xc0\
-\xb1\x96)\x1b%\x01;&\x1bh0\xe9aI\xdd\xc9%\x05\x1b9\x9b\xb5\x01\xf7\xb1\x0e\
-\xa9\xcdp\x8f}\x12(\xeex\x02\xf7q\xd8\x91\xd4\x12\xd7O`\xcf\xe5\x13D\x9b\x1e\
-I\xe2\xf6\x86\x8c\x93^ q\xd1\x1f\x8fm\xe2\xa9\xab\xb25\x0fo\xf1\xb0\x99\xec\
-\xc2\xcd\x0b\xc0p\xe2\xb6$\x9fx\xea\xb5\xe1\x98\xb1}\xec\xdb\x0e\xcf>6\xf23\
-\xc3=\x86\xa8\xd0\x1d\xe8\x1f.\xef}W\x0e\x1d _\x96tcF\xfd*\x08\xe7s\x1c\xf9\
-\x0b\xce\xfd\xc2\x87\xb9\xf2\x1e\xde\xd1\xfe\xc0\x87s\x87qJ\x1c\xb1z\x0c\xe4\
-\x134/:)\x02\xde\xb8\x07]\xea0\x82\x97\xd6\xc2:5m\x9c\x84)v\xa5\xe9\x01\x1e\
-\xe5\x81\xa7k-\xd9\x0b1\xa8\x8a\x11\xd3\xeaC\xf4\x1dN)f!\x0c:\xa2eU\x95OP\
-\xc5i\x8b\x99<\xa6}\x9b\xcaF\x19\xa6\xa5\xd1\xf1Z\x17\x12\xb0:\xb7\xc1\x08U\
-\x8dW\x10B%W#\xc91\xaa\xf8f\xcaW\x88A\x89.\x9f \x06\xad\xcc\xc6A+9\xa8\xe4+\
-\xc4\xb1s\x8a\xbc\x8fe \xe4\xd2\x00\xf8\xc9\x86M\xb8JaA\xcbv-Z\xb8_\x0c\xc4\
-\xc4-\xa8\xa3/6\xaf\x0f\x86\x89+8=r,\\C\x97\x8d\x02\x03\xef\xc8\x91\xc2\x08 \
-\xf5k<\x18b\xa2\xeeg\xbd\x10O\x17I\xd0\xa7R\xfb<T\x80\xd7\xee\xe3\x88\x9eo\
-\x03\x94\xc6\xda\xe79Y|\xb63\xee\x13\x93\x7f\xd8\x00\x94\xb1:\xfa\xce\xc0J.\
-\xc0\x8f\x12\x17\x1e\n\x07>\x94;Kv\x0b~\x18\xf2\t\xa2\xd6\n \xd8|\xf0\xe3K3\
-\x0e7s\xd8\x1d\xf6)f\xc5\x08\x06\xde\xd8b\xe2 \xfaZ\xe4\xfdrk\\\x16m\xb1\x0e\
-\x85\xd1\xd31\x96\xd4;\x08\xa5\xdc\x86M\xb8\x1e\xca6\x80\xfe!\xdfg6\xb4\x10\
-\xb2\xd9!oqj\r\x11\xf2\xfd\xc41\x0b\xf6\x08\x94\x8cSr\xb0\x82\x0cW6J\xcba\
-\xbb\xa4\xb8G\xd6\x07\xb5\xd7SH\xfe\x14fB\x9b4Gw\xec!\x18\xbbDX\xda\xc1\xb8o\
-\x83\xda\x11\xa4e\n\xf2\x1dF2\xf5q\xf0\xed\xb7\xb9\x8215\xba\xec\x05\xfe \
-\x87\xa5\x14\xa6\xf2\xa8#i\xc1U\x95\x08\x98\t\x17\xb4\xd8\xael\x83\x9eX\xeb\
-\xc0\xaf\xeda\xb2\x17\x08\x8f;\x988\xd8\x1ef\x05H@\x06\xab \x9b\xbdB\xe4_\
-\xb8\x10\x17C\x00S\xbe(\x08\xd7\xba\xd0\xa5\xaeh^\xec\x9c#4#\xc6)e\x08_\xef\
-\x93\xa2(6:\x9c\xa1\x03RG\x85,`\x14#\xf9\xb5{u\xa1^L\x1e\x18\x88\x8b\x19\xdb\
-c\x81\xb8\xdf.6\xe1\x18\xc2\xf1\x17\xa3\x90X\x95\\\x83\xfbg\xc2\x18\xa3K\x92\
-AN]\xc8\x01\xc0\xf0\x86>\x0e\xbe\x83@vKO<\x98\xb2[\xc0^g\x15 \x7f\x8ahB\x1f;\
-\xfbG\xc3\x0f\x7f2`\xf8\xfe\xfd\xec\x15\xc0\x92\xda\xd8b>\x96\xd4)[Z\xc2\xfa\
-\xa2\xdd` :\x9bCw\xe8\xcc\x06F\x15\xd7\x1ab\xe2)N\xa0\x1et~\x97yzb\xf0\x13\
-\x08NOu\x9e[\xf8P\x16I\x06\r\x07.6\xd0\xb8\xa4+D\xf9\x04\xd7\x7ft\xc4\x92\
-\xb2>\xd4\xafO\x14J\xf3\x84\xf6I[\xec\xb4\x94#\xa5i\xd0\x08\x99\xd1\xf3\n\
-\xa0\x7f.\x08`\'\xb4@\xc4,\xae"\x16(@d\xb6p\xa9f8\x84\x05\xfc\xb7\xcd\xf3\
-\x82 \xd7\x1eod\x96\x96{\xba|\xa5 \xa3\x88!V6\xa2\xf7\x17\x08\x92\xe7\x0cy\
-\x7f\xe3\xe0\xa3\x03l\xf1\x1f\x8bG\n\xf1\xb9\x90@\x180\x94\xf8\xa7\x9c\x17\
-\x1cI\xbd\x0e\xe2\xb7y\x9f\x88\xbb\x1c\xc9n\xa1\x9eSlm\x92r\x0c8\xed\x00\xa8\
-\xc3\x17\x1e\xaa\x00\x11^\x0b>\xe9mI\x0b\xa2\xa2\xeb\x8c \xcaPaN\x11\xe0\x1e\
-b\xd1E\t6\xe1\x00\x9b\xf0\xbd\x0e\x17\x01\xdb\xb7\x86E\x9e\xef\x01\xef\xca=\
-\x1b\x18V\x0e\xb4\xa7\x0cmb\xab\xf1x\xd6\x06\x0cM\x86\x04\x08u\xb4\xe1\xe9\
-\x90\xb0\xf8cq4\x10\x0b}\x169,\xb5\xa7\x11@G\x96\x03@j$\xc9\xa7\x8ae\xf8\x0c\
-\xfc>\xb8\xbedH~\x00+\x19r\xa3Xt\xaf\x1a\x8f\x14\xc2\xe0\xbe#{\xc1\xa2\xb3d\
-\x05\xad\xa0s\xf2\x08\xa4\xbe\x0f\x07\xc0eG\xb6\x81P<\xcd\xed\xa0`8\xe1;L\
-\x83\xe70~\xcc\x96\x8dR\xc5\x83\x83\x03\xc7\xe3\xcb_\x0c\\r\nZt]FT\xb9pw\xdc\
-\x10\x0b\xb3\xa2\x8fM\x98L\x11M\xc8\xe13xVp\xe0\x8c\x11\xf4\xfb\xd8A\xa4\xb9\
-\x07\xf2?\xd8\xb2\x17b\xd0\xde\xacQ\xe2GoVA;\xca(e/@2\xb5!\x1csH\xfe\xe7\n\
-\x91w\xf6\x07i\x1an?y}\xaa\x08\xa6X\xc9\xec\xc5\xffD\xd8\xe2q\x9a\xc2\xe4y\
-\xaf\xc8FiI}e\x9d\x8eW\xa1\xcd\x91U\x04\x97\xe6\x165\xde@\xf0\xc2}\x89\xe48\
-\xe0\x0b\x06\xb0m\xe0#\x92\xf8\x8d\x01T.\xf4\xd3{\xba\x96\xe5\xba6\xec\xcaO\
-\xe4\xda\x13f7\x14\xf8\x83\x19\x93\xa9\xe2/\x1f\x9e,\x0crF\x97\x8e]\xa8\x1b,\
-\x1d|H\x87\xebXvK\x15\x7f[<\rPi}S\xf6\x82\x1bC\x8c\xa8\xe2\x8bl\xcf\x0co`\
-\x1d\xb77{\x85\xa6\xd2\x94\xe4c\xb2S\x1b\x12\x97\xbd\xd6\x9d\x08\xb1h\x0e\
-\xe8^\xd3\xd0\xc7c\xbe\xc4\xfa2\x05"s\x0c\x00\x95J.\xa4\xbe\xeba\xb2\xcf\x19\
-\x1e\xc5:\xee\xc8\x83\x8f\x8d}\x8e\xa7&\x0e\x8b1\x0c\x89\x16\x8b\x9c\x02"\'\
-\x98\x8d\x03\xf0l\xc6\x19\xf8\x90\xc9\x1fX~p\x94\xb8\xe5\xc8\x95L\x15\xbb\
-\xa5l\x83fN\x0b\x11G\xe6\xdb\x82\xd3\x04\xb0\x02\x1b\x0e\xc4\x16C\xac<\x9cs!\
-\x00\xcb9\xbb]JDW\x86|\x91\xed\xcc\x95\x8d\x02kM\x9e\xbc|\xe2@\\<\x00\xcaSd`\
-aF~\xed~\x96B\xe7\xff\xce\x88*\x0b\xc2\xe0\x9b\x8a\xd8\xc9\x00\xb4h\x1d\xb6\
-\x1ayi\xb3`KaX\x9d\x03D\x91\xf2\x1d\xde[M\xb6\x01\x9fR\x87\x99\x0c~\xfcV\x11\
-\x9bg\xb5x\x01qS\x97q\x17\xb9J\x10^!\x84qW\x14\x17\x1d\xc5Pi\x05\rY\x8e\xf9}\
-\x04B\x1c\xd9\x0b\xf1\xe3\xdc\xe0q\x00P\xf61\x94O\x10\x83\xfe\xda<Qx\xa2\xa7\
-!\xc0\xed\xc3\'\xed\xcbm\x8a+\x11\x87\x16\x84\xe3\x90\xd1\xb6l\x8a\x0e1\xb7\
-\t\xc3\x1b\x06\x88\xac.\x13\xac\xd1\x9dX\x08\xa4\x1eUX0|)o\x19\xe2\xa2\xe08\
-\xf27R\x15\x06c{\x0cx6\t\xe9\xa1P\xad\xe9\x89\xed\x11\x04\xfd\x18Z\x8eI\xbbr\
-\x92\x15`\xd0g\xdebc\xf0\xe3\xa5B\x8c\xcf\xc3\x16[\xd5\xe5\x13\xc4\x8f\x8c\
-\xac\xf9\xa1\xef\xc0\x03\xaf(ptOp\xaa\x7fb\x9c\x12\xfbq\xcfX\xa3\xe7\xdd\xd0\
-\x9f=\x81\x00D\x85\xb8:\xdf\x14\xbe#\x89\x9b\xa6\x1c\xb38!\x0ck\xbf.\xd4\xa8\
-!yJO<\xccz\xc1\x1d\tG\x92\x8f%\xc5@\x8c\x1c\xc1\xc7\xccD|\xdf\xc7\x05\xb2\
-\x9e\x81\xc9f\xbf\xa5\x12\xcai\xa0\'R\x86#\xf3\x85\xbam\\\x9a\xe8\xf3\x9d\
-\x80\xaf\x11\xd3\x02IwH\'\xd0@(\xbd\xc4\xe4\x98\xe4\xa9\x9f\r\xa0K\xb9%\x00T\
-\x05\x0c\x1au\xca\x03C,\xe9\x91\xfc\x96\xe9d\x80\xcb\xe7\xf3\xb4\xa4\x86\xf5\
-\x1d\x08\xd2\xb5M\xd9\x0b-\xcb\xaf\xa5\x1c\x07\x02v\xb3F\x11;\xd1\xc8Xu}\xf8\
->\x17\r\xc0\xa3\x1c\x1c\xf3\x93P\xce-Ux\x04\\\x9a\xf8)n=\xefZ\xf2\t\xe8c\xb6\
-l\x03\x10\x89)\xa0^>\xe6\xf6\x83+\xdb\xa0y\xd9\x9d\x92.\xe5:pC\x15]\x80Jr`Y*\
-\x866\r`\xf2\x1c$\xc0\xe5XCb\x90F\xd2\xc1\xcd8\xc0\x9dw\x00+\xc8\x11o\xd8p\
-\x00\xc2\xf2`\xdf\xfe-e\xa3\x18\xa9\xc2;\x1bb++\x01:\x1a\xc3:\xa9p\x015e\xb0\
-\xf1\x18\x08Da\x02\x02\xae\x0e\x18\xf0\xc0\x05T\xe3\xd5\x82\xe68\x06\x0c\'6\
-\xb9[l1\xb3\x91\xb8\x9e\x9f\x8f\x018\xb4\xc98\xcbz)\x1c\xdd\x03Zt\xf6x\x00\
-\xe2^\xbb\xf2\thl\xb8[-t\x1a@\xbd\x88\x85\xc3\xc2\x07\xd4k\xd3\x05\x00"\xc3\
-\x19\xf5\x9b\xfc\x85\x03\xdb\x87\xad\x9e3\xdeA\xa6Qp\xe5H\xa1*0\xaa\xc2\x83\
-\x1f&\xc0\x81c38\xdfC\xc0.OaG-\xa8\xe0i\x06,\xdc-\xbd"\x94\x07\xc4N\x9e\x811\
-\x12Z01h?\x06p\xc9\x87\n\xb7\xac\xf34`%\x7f\xa2q\xd8\x19_\xa8\xebP\xa4\xd9\
-\xf2{p\xa8\xbe7\xb0\xf8\xf9\n\xa2EW2\xdd\xfe\x18\x17.7K\xa4s\xe0D\x0bk\x91|\
-\x85\xa8\x9d\xe8\xf0\xb0Z\x90\x0eq \x9f -G\x8f\x01\xc4\xe8#6\xdfn\xe1$d\xcc\
-\xd5o\xba\xbc\x91:\x03x\x9d\x8e\x02r\xa9\xd5\xff#[]\x87\xc4e<\xffn\x04\x9c\
-\x01\x83\x05\x8ft\xd9-\x90\x08tD\x17V\x06\x8f\xb3\xee\xca6\x10\xf43\x81\x0f\
-\xb2\x01|\xac\\H\x07\x8fU\x16\xda\xfb\x960\xc5pG\x93\x93yHW\'\xa3\x19XstJ\
-\xd9(\xa0\t\x01\x10D)_\x98\xb2\x80\xd9,\xfap\x0e\x93\xd8\xf2&\x0eB\x8b\x87\t\
-!\x00\xdc\x1c\x1c\xd3\x01\xe6\xf0\x19zo\x07\x88\xde\xf7ph\x1d\xc7\xb2\x17j\
-\xe3\xc0f\x9eB\xe2\x06\x14GN\xc7|\xbdc\xcc!=\x1b\x97\xcf\xdb\x1d\xd8\xd9\x19\
-\xf4 eF\x1cp\xe3\x0c\x8f\x12\x9aac\xbf\xfc@n\x86\xb1\x85+\x11\xdfb90b\xf2\
-\x11\xed\xfd\xf1\xa4\x8f\x8b(\xc7\n\xd2\x8e\xb0\x13\xb2\xe0t\x0e\x9c\xbbc\
-\x91\xf7\x0bG#\xb7;\xc0K\x15|c\xa8\x04>\xc8a\x9cc%\x9f \xe9\xf0\xcd\x91\xe3\
-\xa0\'\xa6\x1e\x04\x1b_\xbcx\xd2\xb1\x1b\\\x9c\xb7\x8b\x1d\xe0Pl\x9c\x95\xef\
-\x81\xec*,T\x1c\xcc*\x80r\xadx\x1c8\xc5t\xbeI\xce\x92NG\xb8\xa5`\x8c\xa2>{\
-\x05\x19SF\x88{\x0c\xb0\xb4+\x13\x99[8k\xc2\xa6J>\xd8\xbc\xc0}\xe4S\n\x94\r\
-\x84\xe5\t\xd7^\x07\xc0\x14v\xed}%\x7f\x90/\x15\x92S\x0b\x82m\x82\xb3r\x81\
-\x01\x98\x19\x9c*\xbfB\x8a\xbey\xec\xeb\xbbq\xe5Hq\xcbw\xd6hN\xf8dK\xbeB<uG\
-\x10}\xecw\xf8\x04[\xbd\xc6\x11\x90\xd8*\xe5H\x01\xacg\xa0\x9fL\xe6A"G\xc8\
-\x068eo\x13\xf9\x04\x80K\x88$\n\xc5\x001>\xc6\x18\xf1}\xc2\x1bDE\'=\x84\xb0\
-\xdeu\x01)\xcaa\xf2|\xd4\xb0M\xfb8\xe6]\x03;\x9b3/X1\xc2\x93\x1c6v\xc8\xb3\
-\xe9x\x8cp?!\xd0\x91Sx\xd0\x0c6;\xb2\x17\xaax\r$\xb5T\xd1m\xf1\n\x82\xfa\x15\
-\x9a\xb2[b\xd0\xb3*\xdb\xa0\'\xba\xbal\x03J^\x89\x108\x83\x05\xd78w\x87\x05\
-\x19\x14\x11<\xcaI{\xf0\xb2\x9cU\xfc\n\xc4\xc5\x0exjs\x14\xf0\xae\xcb\xaf`Y\
-\x1a\x1e\xcc\xfb\x02\x8e\xbbuSV\xd0\x92\xca\x01\x9c.8\x1fJ\x01\xf0\xb5P\xbf\
-\xa0\x07q\x86\x10\x86\x02~\xe7\x10V\x0f\xce\xe1\x9f6\xd2\xc1\xb0.u\xd0\xe2M\
-\x88[\xbe*\x83\x9f\x06\x00?\x05\x16L\x1e\xde\xb7\xae\x07\x81\xd2\x87B\xf2\
-\xc9\x04\xc6\x88\xd5\xe2l\x04\xb0O\x06\x16~nF:\xe9Oz\xb0\nl\x88\x1c\x8f\xcd&\
-\xad\x85\xf3\x85\x91]G%\xb6i\x0ej\x7f\x92L\xae\xcfF\x80\xe3\x02\xc4\xf8,\xec\
-\xb9\x03C\xf6B+\xe8W\xcc\xe3\x80p\xbct\xe4\xbc\x10\xf9\xd7\xa4|\xf7\xc6\x9c\
-\xab\xe2\xd9\x81v\x91\xc3z\xddg\x00\x04\xa3\xc2\xfb\xa4\x18\x89#\x1b\x06\xde\
-\x02Y\xf3=g\x82H\xc0\x16\xa3n\x18Y\xee\x90\xb2i\xa7)t\xedW\x001\xfc\x02[\xec\
-F\x85\x1d\xe5\xc2\xe4\x99\xd7pX\xa4x\xe2\x94\x8f\xb51\x18\xb4\x1cs\x88\x02\
-\xe8\xc1\x96\x0b)\xe5Cc\xcb\xe1\xc8\xccml\xa0\x9dX\xb6\x81+"t\xf0\xa5\xc2\
-\xe2#\x06-\xaa\x00-\xf2\xcd\xfa\xaf\xb6\x9c\x06$X\xd2e\x05\x92E\x91\x9br\x98\
-q\xe6\x16\x8b\x8f\x02\x8e\xbd~\xaf\x10Wg\xb7\xed\xa3\x83H\xb3\x8d\x83\xef\t\
-\x11\x9a"\xb3\x91\xfb\x87}\xb0\x05$\x8c\x0f\xa3\xb9\xef#\xf6\x1a3\xc4j2A\x9c\
-p\x8a\xd0b\n\x85$K\x90\x88\xc3\x86\xc4]\xea\x00\xec3\x81\x8b\xf1\x13e\x90q\
-\xebB\x1a\n]v\x9a\xb8|gu\x0f\x9bPh[\xc0\xd1\xcf\x9e\x80c\xb7\xc5\xfc\xc0\xfd\
-\xca\x15\x15\xd2\xc1\x83\xcaR\xd1Z\xf7\xebB\xe7\xbe.\x9f\xc0-_E>A\x0bf\x89\
-\xb1\x81,\xa4\xb7\xe4+8\xf8\\SV\x00\x955\x1b\x07\xb10\xae\xe4\x13\xc4\xb1\
-\x1f\x1a\x1c\xcc\x03\x04\xdb\x16\x19\x92\xc8\x01\x99{\x8d\xcf(`\x8bW;\xccST|\
-\xb5$\x0b\x89\xc9-\xd2\xe8\'\xe3\x14,|\x88\x80u\xe2\x88\x95\xc6\x08\xb31\xdc\
-\xe9\xa9#\xdb\xa0\'\x16\x1c`\xae\x18x\xd0J\x80\xec\x1a#i\x95\xa7\xca\x81Q\
-\xc5\xc7J\xce-dr\x82d@6nN\xff,!\x0b\xfb8\xf8\x1em\xd9(n\x0bN\xb1\xc5\xc6\xd8\
-b\x19\xe7\x0f\xe2\xcb\x81\x7f\xba\xb8V1@\xa8\xe472\xc8\xb8\x03 3,>\x92\n`{>\
-\xf2I\xc8F\xd1\xc7\x91\x1c\x07=\x11\xd2&,\xf2\t0\x02\xb6\x07$B\x86\x83o\x95\
-\xec\x86\xf1\x801h\xaf\x15\xb0N\xec\xeb\xdbV\x801\x9a0\xda\x85\x0c\x9at<\xec\
-SE\xcfB|\x9f\x01T\x8b\x14L\x11\x87\x07\x16\xeeu\x89 (_\xdb[f\xa8F\x06\xa8FK\
-\x97mP\x85\x1fJ\x06a\xad\x07\xb2\x82\x96\xf6i,_\xa1\x8a3h\xd2\x0e\xdbb\xef\
-\xc8e"4#\xa8\x1b6i\xe3=\x99\x08\xec\xd5\x01\xe6\xca\xc6\xc2\x8d\\\xd9(M\xc3\
-\x072\x13\xc6\xee\x10\\_1%?\x80Pe$\x93\x07{?\x9cU\x00v\xc2\xf8\x8f\t\xc3M\
-\x15\xf9\x04\xad\xa0\xd76.*\xf9\xb0\x1b\n\x1d(\x02No\xf1.\x84;\x9d\xd5\xd1^)\
-+h\x05\x9d(\xf2\x15$\x9e\x88\x01~\xe2\x94\x87\xbb\x94\xf4.\xcb\'8\xc5\xb6\
-\x12`\x04&\x80W*\x14\x14\xf6\'6v\xb6A\xb0\x824\x1b\xe3"\x8a\xeap \x04\x07\
-\xdfO\x97\x17.\xebRmd;\xc9\x01\xe5\xf1\x19R4A\xac\xe0\'\x87\xe3\xfa\xf0\xa1\
-\x18\x8c\xcaJq4\x06\x0c\xb2\x91i\xbeb\x827\xf8}(W6\xdcr\x83\x1c\xe6\xec\x1bA\
-\xab\x1d\xaf\x0f/\xbe\xd1\x014\x81\x1d\x88k6\xc9\x8f\xba\x90\x0cb,>\xbb\xb2~\
-\xe8L>Gh\x12\x92tE\x0f\xe6\xec\x11g\x08q\x00\x04\xfdc \xee\xe1\x81\xc9\xc7\
-\x96l\x83\x9e8/\x99\x16\xac1\x97T\xc9&\xc2M\xc7I\x0ci\x99C\xfd\xda\x03\xd4K(\
-y\xb8\x06=c!Ux\x86l\x94v\xf6{S\xbeB\xcbr7A\xc4\xbb\x8f\xdb>O\xb3\'h\x9d\xbe\
-\xb5!\xd8\xfap\x99h\x81l\x14^|\x8a\xf2\x0c\xc6\x8cs\xccu\xc9Sd\x91\x00\\\xbd\
-\x18\xe38\xf9\xc6\xb1\x13\xce\x88\xd1I\x90^\xab\x0f\x98\xe7\x01+\x8a|6\xdc\
-\xabd\xad\xf5\x0b\xac1\xa5\r\x9cA\x1f\xcaD\xd0\x01b\xc6\x02\xb5\x1f8\xa7J\
-\x1f\x87\xc5wx\xbf\x86|\xb7\xa9\xad\x00\xf8X@\xfb\xcc\x19R4\x81\xfe\xb15B\
-\x1a\x16NH\xd6W\xe5+\xc4\xa0?\x0c\x80\xe0\xeb\xc7\xa7|\xa7\xa8\x87E\xd7bD\
-\x15\xbbK\xd78\xa5\x0c\'\x13\xebq>%\xbe\x94\x97"\xc0-3b< -\xcdp\x00\xdda~\
-\xf6\nUh|\xc3\xdf\x82\xed\xf13\x06\xde\x81\x95\xcd?!\x8cw\xc6\x19t*\x9c\xa6\
-\xec\x0b\x9e\xf2\xed|\x0f\xdes\x83n\xa6\xf8\xc3\x1c\x8e\xaa[(\x02\x16\xa7\
-\x93J\x1c\x08\x94\x02"gJ!_Kf\x91x\xc2\x19%\x14C8w\x14\xa0\x198k\xc2g\xbe\xd1\
-\xee`\xe1\xda0\xbddZ\x89\xb6-\x1b\x85\xdb\xb6\x02\x8a\x80\xef\x01\x7f4\x00mb\
-\xd0\x91n\xb1\xd4\xa6C\xeb\x9f9]V\xd05\xb5_\xae|\x05\x0b\x97\xe6\xa5\xf0}\
-\xdc)\xfaY\x01c4\x01q%4i\xd1-b\'\x9cq\xc9\x83\x16<\x84&\x9d\xb9\x8c\xc7\x8d\
-\x801J\xe1\x93\xbe\t\x10{e\x90\xde\'\x0b\xfb\x85\xa3+\xa3\x12>\xfa\x0c\x0c\
-\xfaQ\x01\xb9\xe3a\xab\x97\x80h\xd6\xce\x1cZ\x1f\x1a\xd4\xc0\x0c\'\xd0#\x07S\
-\xfaX0y({\x81\xbd\xaf\xe2\xbc\xcdp\xaa/pr\xb5\x0c7\xfd\xbes(>E\x08\xeb\xb7\r\
-\xa8\xb9\xe5\xd2\xde\x7f\x9b\xca\x91\x12\x0b\x15\xdab\xde\x90o\xa6\x1c\xb4\
-\xe5\xd0\x11\xae5\xe5+\xc4\xe4\x1f\xb1|\x027\x97fO\x0ch\xa2pf\x8f\xf9\xcc\
-\x8eG\xfc\n\xe6e#\x94\x15\xb8\xe9\xa7!\xbb\x87\x8d\r\x14xH\x9f4\x86\x0f\xe5R\
-\xe7i\x00B\xf5\xde\x91\x93\x8d3\x1b\xb4\xb8)\xce\xa8y\x9db\x8d\xbe\x8d\r\xf4\
-@\x1a\x8a%\x94M\xa4\x91\xe4|J}($;#\xc4\x80{\x8c.\xb5\xb0+\'\xd0a.m\xec\xca\
-\x14\x1c\xdb\xafd\x1b\xc4\xa0\xcft\x00\x8f\xf3\xb1\x87e\xa9!(<D\xd0\xef3\xef\
-\xdb!\xf6\xad\xeb\xc8^\xe0\r\x9c5J\x9bp\x89\x8e5k\xc0\x16\xdf\xc0\x00`\x88\
-\xf3\xa0\xbd\xb3\x80\xfdr\xb1\xb4;\n\x0e\x0b^t\xfb\x86l\x94\x16\xdd\x83+\xbb\
-\xc5mAN\xc3\xe2s\x10\x94s\xbb8l\xab\xb7\x91m\xad\x80\xe6\xf8\x82\\72\xe1\xc3\
-N@\xb7l\xc4\x11EO|\'Y\xe8\x16\xec"\x189\x00P1\x8a\xa0\x9cuK\\Oh\xe8\xc2\xae\
-\xc6}\xd3%\x00\xc93>\xd53\x086\x97\xfdt\xddP\xf2\x838vAk=+x\x05]\xcb\x91\xb2\
-}\x8b\xec/\x1e\xebA\x07\x0e$\xdd\x00\xfbv\xaa\x02\r5\x81\xf9vE\xf1\x97L\xecA\
-\xa2e3\xe0\xa1\xf3\xf5\xc1X6\x8a\xab\xa1p\xdd\xf4\xd9\x16{a\xacB\n\x0c\xfcH\
-\xe7W\xe0a=1\xb1\x91\xf9\xa6\x9f\xd5\xe1\x15\x045\xf0\xa3\xcb\xfb\x05\x91"\
-\xdf\x83\ng\x03\x84\xf5\xd8A\xd0\x8f\xb37\\\xc4@2q\xf6\x06\x17Y\x9b\n\x0e/|\
-\xabd\xb7\xb4\xc5n\x18\rU\x002\x92\xb2Ym\xc3\x16{\x9b5\nS\x83\xb3\x02r\x06\
-\x88\xd8\xe2\x03\x07\xbdx\xb3n\x89\xa7\xe7\x9c\xe4\xcd\xc5\x92\xda\xd1qXp~\
-\x87\xf5Y\x1bp\xfc{\xe4\x81\xaf\x0b\xed(\x13\xc1\xe9>\\Ho\x01+$p\xfdf\xa1\
-\x1c)\xe6\xc5\x91\xbd\xd0\xae\xbc*\x11\xd2\xe3\xc4h\xaf|x2\xf0`\xdb\x04n+\
-\x87\x8f\xeds\xc9\xdd\x02\xec\xf3\xd1\x92\xe4#m\x91\x03\xe18\x81\xa4\xf3\xc9\
-U1\xcc\xc6pU\xb4g\xdd"WV%\x1b\x05\xa49\x92s\x8b\x99\xd3\x90u%\x87^xc\xc9\x99\
-C\x88\xd3\x92\xaf \xc3\xa1){!\x16\xfe\xe4\xd8+gM\xf8\xa3\xcb6ps\xda\xc3-\xce\
-!4\xfa\xc1l\xa4\xc4\xe4k\x85L\r\xbf\xef\xa2B\x05~,\x87n\xf9\xd9\x95mP\xc5:y\
-\xbf\xea\xdb\xd8\xf0}r8\x9f\xb5\xadKz\xc5\xeeO\xa0mM\xa7\x80\xd0\xf8X\xfc\
-\x01\x9c\xd49\xa7;\xfd\xa9\xc26eL\xef\xd4D^\'\x1bG\xe3\x0e\xe3\xa5\n\xa8\xc5\
-{\x0cJ\xb3\xb1\xe8\xfe\x98\xb2\x17\\#\x98"\xe3\x92\x8b\xd8|\x1f\x9e\xef1\xfb\
-`+\x05AaN <dH3cz\xbf2\xc6\x88\x9d\x7f\xbf\x18\xa8\xc3\x98\xef3\x07\xa6F\x01\
-\xeb\xe4\x9d\x1c\x07\x16L\x90 \xaf\x13_0\\\x0ee\xa3T\xe1V\x08\xa4Z\xd0a\xfa\
-\x1d\xd9\x0bU\xfc\x01\xd4\xab\x18\x00\x0e\xf4\x05\xb2\xd0c\x05m7\x94\xddBa\
-\x85\xf2\xed\r\xa0|G\x94\xb3K\xact\xdc\x07\xb2T\xc4\xa29xp`\x01V\xc0\xc9\xd5\
-Vq\xf7m\xd8\xe7\xadnB(\rp\xde\xbe\xb4ax\x0f\xb0`R\x06/p\xf6\xdb\xcf\x90\xb89\
-\xc7oo]9R@\xf0*\xdc\xf0w`\xae<B\xff\xb0\xf8\xb0\xb8\xa2\xd8\xeb\xa4\xc7\xd0\
-\xd9M\xdc\x8cu\xf9\xd2\xd5\x8a\xce\xeb\x03\xa7\xe9>\xe3\x838G\xc4\xdeH\x0e\
-\x1d\x80\xc3@>\x81$\x1a\xb1\xac\xc0\x8e\x8a\x81\xba\xe1\xc3b7\x06`\xc8\xe7d@\
-6;\x11P\xf1\xd7EV\x9e\x02i\xadL\x13X\'\x8ei\xdd\x92f`\x89S\r1`N\x91a#\x00\
-\xb1@\xd7\xe5\xc4\xf6\x81,|\x1c\xc9q\x10\xc7\xc2.\xddM\x18\xf2\x813\x01\xc7\
-\\\x8e\xe0\x9dP@\xb7W\x17\x1aX\xc0\xe4#"\x113\x8a \x83\xe8\xbbd\xd4\xef\x00\
-\xbb\xb2\xd2\xe5+\xc8\xdd\x11\xcaq\xc0I]\x01\xa74\xe4\x14\xf6\x14\xf3\x9c\
-\xf4=\xf8\xc7\xd6\x03\xf9\nM\xd4\xeb\x14\xf7\n\xf8.\xe0_]>\x01\xf1i"\xde`\
-\xc1\x97\xf3\xdb\x90\xbd`\xab3\xcc\x93\xf5\xc2+S\xd2B<\xb5K\xd9\x06\xb10P\
-\x10\xb1\xeaa\xe1v\x19\xeb\xc4Y$\x0c\xbeE\x91c^\xfa\x0c\xa0\xe2\x1b\x87\xab#\
-9\x0e\xe0.p\xd1@\xe6ts\x19\xeb\xc4)\xdc\x8e\xe0\xcc\x98\xb0\x96S1^\x8a\xb3j|\
-e\xe0\x12#3\xde\x14I\x0b1yY\xaa\x1bp\x96\x7f\x02xR"\xed\x8f5I\x1cU\xfc4\xe4+\
-TQ2\x92)\xc7\x19\x15R:\xcb\xacN\x00K\xdd"\xa5\x8c\xd0\xd7a\xf1!|\xed\xe58\
-\x81\xdeE\xb2Q\xaa\xf8\x1bK~P\x859\x02D\x82#E\xe3\x98\x0fOT\x0c\x1c\xf9\nU8\
-\x8c\xb9\xb2a\x12o\xce^\xa1\n\x7f\xf6\x04\xae\x99\xa8dz\x15.\xd4\xf3\x88SA\
-\xb1\x8d\xec\xa1b\xc8\xb7\x16\x07\x01\x0f\x1db<\xa1};\xf6\xf8\x1eN\xce0\x0bv\
-\xfd.\x8c\xe4+T\xb1\x1aS\xc6\x03\x99(n\x9e\x81\\\x13\xcc\xcb\x1d9U\xec\x9c\
-\x81\xf5=J\xf6"\x8e_\xa4o<\xd7d/\xd8/\x15D0\xdf\xf6\xf9I\\\x1f\x16\x13\xe4\
-\x97z+\xc9(\x12F\x00-~\x87!V\x16X\xb8\x87k\xe1\x03\xbe\x16nvd\xa3Tq\x1c2\x0b\
-\xe1\xc9{h\x03w\xc1\t\xda\xf6d\x05\x0c<#\x90#%\x06uH\xed)\xbc\xdc&jKG>\x01\
-\xfcX$\xbb\xc5%E\x8a\x9a\x17\xde\x10\xd9oG|f\xb3n\xb9\xde\x01\xb6\x87o`\xfeh\
-\xe1\xb0\xe0\xfb\x95\xb7|"O8\xbbz\x05\xecF\x0f\xd8\x8d\x0e\x94\xbc\t\x1b\xab\
-\x17\x1a"xC\xd0\xd2\xf2\x00\xf6\x19 \x13\xd6\x95\xec\x05sk\xc6\xf2\x15\xaap\
-\x0cY\x81hS\x08\x08\rG\xbc\xff\x92;\xdd\x16:?\x8c\x91Y\xa3@C\x99\xd8\x95.\
-\xf8qJ\x17/\xc6\xd2m{\x1fAJyP\x14\x0fc\x00\xa88\xd3\xa2c\xcaq\xd0\xecW\xa5l\
-\x14\xd1Y\x15\x18\x81\x0c\x87\xf8\x83\xc5\xd3\x00i\xb9\xc3\xa9mX\xb5\xfe\xc8\
-`\x8e\x1e\xa4eQ\xc9^0\r*d\x10\'\x00\xbd\x05rx\xe0cW~\xd6\xe5\xcc\x01\xf3\r\
-\xaf\x93\xb0\x82\xf0\x01\x83@6J\x15{\xa1|\x85\xa6\xf2q6\x0e\x9a\x17%\xe1n1s\
-\xc7\xb3F\xe9\t\x97S\x0eqJ\xaa%\x84\x9e\xa5F\x7f;{\x05\x190)\xc4)\xa44\x14\
-\x81S\x95\xf9\x01\xae[#9s@c\x93\x18w\xa5\xbe\xfe\xd6\xe2=\x07\xafd\xe9!5\x96\
-\x07\x85\xb5\x0f\xac\xa4\x846Et\xcee)_0<m\xb3-\x86\x89*\xc8\xad\xef\x8d\'c\
-\xe4\xc9\xd3\x90i1u\x10\x7f!u\xc3\x9d%\x15\x81`\xf3db\xe76\x96v\x0e~\xd8\x0c\
-\xd3\xf2\xe0\x88\xe8\x84\xbc`Pa\x93P\x9a\xe4>\xc0\x1cA {!\x8eM9|\xcdF\xd1J\
-\x04D\x04{zKF\x87qX\xf0\xd0\x91\xbdd\xe4S\xc2\xf92\x18\xa6n\xe3S\xd2\x80\xe8\
-\xf6} \x11\x0eY\xfdJ\x11\xb1:d\r\x96\xef\xbf\x1ci@\xc93\x00\xd3`\xe8\nk9/\
-\x0e\xc4\x16\xc7\xf8F\xfc}\x0f\x07^\x96\'rc\x0b\x11\r\xa0\xdf\xcf\x00\'P\x81\
-H\x80\xcf\xb8-V\xcf\x8fU\xd9\x06\xed\xec\xcfp\xfe\x8d9k\xc2\xbe\x14J\xf0LD\
-\x9c\xb4\x8a\xbf\xed\xa32\x90\x8b\x93!op21v\x1f\x1f\xc5\xf2\x15z\xe2\xb0\x03\
-\xac\x02g\x08\x89*\xd9\x06\x04}W\xf2\x03\xeeA\r\xa1\xd6\x01\x0c\xbc#\xfe~\
-\x14\xeb\xebc\x06\xd9\xf0\x9d\x80\x97Y\xb7\xc8m\xab\x03\xfc\xc4\xd9,\x1e]\
-\xb9\xa4p\x83\x9b4\x83\xbe\xccC\xb2\xc2\x01]\x1f~\xdcA\x17`0\xbed\xf4c\xd6\
-\x060\x9bSlu\x17[\xfd\x02S\x99r\xf2\x9bcC\x92OO\x9c\xc0\x03\xdf\xef\xfb\xf4\
-\x84\xd5\xc2\x89<\x9e\xe0\xab\x08S\xe4v\xe9\x01\x12pk\xf3\x06B\xe4l\x93n-6f4\
-\xbd\xc2\x89\xc0\x18\xb3y\xed"\x04\xce\xd7K\'%\xb0,\xbd\x14nl9\xd9\xbc\x92\
-\xf9\xe2\'\x7f\xa5\xea\xba-\x89\x03\x83:\x88\x9c9\x10\xc1\xcf!\x94+v\x98e-\
-\xd9-\x04l)\xdb\xa0\x8a+\x83\xaed\xd6\x85\xe6\xa5++\x90J?\x96\xaf\x10\x9379K\
-Q\n;\xca\xd0\xf8\t\xc8\xd3;\r\x1f\xa5\xca .\xcc\x16/\x871\xbeE\xd1Ez\x9c\xc2\
-\xb1\x1aj\xf7#\x9c/\x9c\x16\xaf\x17K\x16\xe2\xfe\xcbH>A\\w\x03@\x8a\x1c\x9c\
-\x95K\x81|\x05h}\x03"\x98S\x1e\x8eg\xaf\xd0\xbc\xac\xc4@\xba\xb9\xfcm0\x0f9D\
-\xf8+\x11\xeb\xb6|\x02\xa9\x9f+\xb9\x1cp\xcd\x95Az\x8c.=\x00\x88"\xe7+\x00I\
-\x85\xfcAl&\x1c\xda\x92|b\xb2\xcf\t\x85\xd8g\xf0\x17\x0bW\xde\x8c\xbd\xc4U\
-\xd9:\x8aAG\x01\xef\xb9\x0c\xca\xc4\x9a\xc1\x03\x83\xaa\xf0\x89O1\x1f\x97\
-\x15~\x9a\xc0\x18\xf5a\x9b&\x9e|\x05\xe9\x1cB\xd9(\x8c\xf7\x08\xc9M86\xbf\
-\x1c\xc8\'`\x03\x85</\xf0\x8fe\x18\xba\xcdf\xb5\xce\xb05\xfe\xa4\xd0\x05#C\
-\x19\xf6\xaa&\xf2\t\x1az\x8b\xbf\r\xe6#\xba\xb2\xd3\x95\x15p\xb9\xf2\x07\xa5\
-<\x867\x8cp6\x0c0Q7dG\xf9\xfd\t\xae\xfeY\x16\x8bq<\x113J\xcdE\xd0/\x98U\xd0D\
-](,\xfa PJ\x13;\x8a\x9d*\x8a\xc3!,D\xcdO]\xc0\xd6|\xc4<#\x86\x9c\xf1\xb7\x8e\
-68\xf1\x95\x8b\x94\xfe1E\x02\xd2\xc2G\x90\xfc/\xc3\xa3&8\xd5\xbf\xf1\x87\xad\
-8\xa9\xc82\xe5\xdd\x18\xd7\x854\xb6\x04\xa1x\x0fw\xdf\xf6:\xc0L\x0c\xb1o\x87\
-\x01\xc4\x85\x0f\xa5\xf7\xba\x8b]9\x81O\xe9\x90s\x88\xc8d\xc8\xae\xec\x16\
-\xa8NF\xa9\xb1J{\xc1\x9f\xbeb\x95\xd6\xc0\xb1V\x17jT\xe7n\xf1\xca^%\x89C\xe4\
-,\x91\xaf\xe0$\x8cd\xa3\x88Y\xb4\xb1\x81X\x83\r\r\xf9\x04Ul9\x88\xcd\xf3G\
-\xfe\x169y\x96\xdd\xc7\xfd\x06\xba4!\xc4+\x0c\xefXA\x80\xdb\x87O\xe9\xc4\x92\
-\xbdP\xc5\x84Sc\xf1W"\xd2\x11fn\x00#\xd1\r\x81\xbaae\xf3\x8a\xf3L\xb0\xb2\
-\xd9\xa3\x1b\xfe\x13\xb1\x07\xa9b\xc2\x8b\x9f\xad\xc6G\x03P\rN\x08\xe2\x04\
-\x88\xe0\xb9p\x88x\x01w\x0beb\x97|l\xc3\xcc\x81\t\x98\x92\x8bq<\xc9\xa1J^sZM\
-\x96c\xc7th\x15u\x86mZ\x0e\xb3ni\xef\xabd\x13\n\xa9\r\xbd\xf0n\x84x\x83\x0f\
-\xb7\xed=\xee{\x14\xec\xe8^eE\x91\xc5\xd6W\x05\x92\x7f\x82\xfcR]\xfe\x90\xe4\
-\xd8\xa7\x8a\xdfm\x84J\x06\xfc\xd5\x0c\x03\xd1j\x06\x83u:\x80\xe1p\x9a\r\xd7\
-\x92#\x85\x07\xcd\x813\x83\xb7z\xca\x1f\x81d\xc7\xbf\x19\xcaW\xa8\xa2\xdb\
-\x01\xb2\x8bs\xee\xa8#\xd9-\x0e>\x0b[\x9d\x93w\xb6\xa7\x80H\xf0\x87\xbe\xbe#\
-\x83n\xc1\x8e\xaaa\x1bP/\xce\xaaq\xc9\xb7k\xf9\x16\xf8\x11\'\xae) \x93U[\xbe\
-BO\x84#\xa4\xd7b\xf0\xe4\x91%\xbb\xa5\x8ao\xf0\xb0\n\xbd\x10\xf7=X1\x9a@S\
-\x1az\xb2\r8\x10\x19c\xd4\xc7T\xaek\xf2\x15\xa4\xb5\xe2\x8ftq\x9e\xde\xf3\
-\x18+\xd9\xc7J>%X\xa3\x9f\x8f1\x95\x8f\x08P9\x8c\xe7\x1fp\xe2+\x17\xcb\xf2\
-\x8e1W\x9cw\xc3\xe7\xef\xcf\xf9\xe0\xd8\x1ag\xb2\xb1\xe0\xcc\x08\xf8\xebr)\
-\xdf\xf5\xe2\r\xe4B:\xec\x84\xb2\r\xa4\x1a\xb4e\x05\xc0\x82\x0c*\xf1`\xef/\
-\x84\xc8\xa7\xc4\xaaS\xe0\xcanqI\x00\x11+a#\xc3\xa1\xca`0\x07\x07\xdfwS\x0e\
-\x0c\xb9\x18K90b\xe1w\xba\xb8U\x14\x19\xe4\xc7\x99J(\xa4\x82\xb37\x0c+\xd9\
-\x06t)U\xbeB\x15\xc7\xb3q c,\xe3Os\x88\xf1{\xce\x7f*qJ\x0cm\xe2 \xf9]\x87\
-\xe7\x16\xb6\xe9\x16\x89-\xdb/p\x91\xbe\x17\x01:\xcbhJ\x93?\xc1\xc5\xceP\x9f\
-3a\r\xa0\x9f\xde1\xd4\x8bS\xa7\x8d9O\x8d\x0f&?\x94r\x1cD\xfe!\xc3\x92\xf8\
-\x1a\xe3\x0f\xe4b\xcc{\x90\x96\x9b\x0e\x00\xbac\xa8\n\xc7\x11\xbf\x02ZnB\xec\
-\xec!t\xcbkS>\x81K\x02$r\x062\xfb\\\xa0\x01\xda\xc4\x17\x0c\x1f\xe0\x92w}XZ\
-\xde\x149\xaal\xe8\x0e\x15_\xfa\xe6\xef\xf2l\xc8\xa1s\xfeS\xc4\xe7\x8a!\x14\
-\xc5!\xbc\xb4>\x7f\x97\xe7]\x02\x9c\x92\x8f\x15tJ\xc1\x94"\xe5t\xeb[\xb3^\
-\x90\x10$\x01\x021C\xb4\xfa\x8e\xbf\xda\xc5\xde/\x85q\x17\x9c\x1e\xf8\xd5f&\
-\xc3\x9d\xbeM\x17\xd9\xeaT\xaepUD@2\xf17\xa8n\r\xd9(\xe2\xd9\x1cju`Ff\x90\
-\xc9B\xc6\x00\xf9\xe7J\xf2\xa9\xc2s!\x83|l\xc2e\x92\xb8\xae/o\x84\x10D\xc2\
-\x1f\xa76\xbefB\xf2c\x92\xf27\xdb\x9el\x80\'\xc70#\xd7\xf9K$}H\xdc\x8f1\xae\
-\x00\x14\x80F\x9e\'|ha}|\xe3\x0c2Ch(#\x05_d\xe3\xef7|\xc0\xd7\xf62\x1b\x15\
-\xdf\x03\xd9\x0bU\x04:\xf7\x02c\xe4\xd6\x92\x1c\x83\x91\xa8\xcbW\xe0\x99\xe0\
-O-x\x88\x9aor:\xa9\t\xb4\x8bU:\tE\x0b\xf0\xa0e\xa4(\xda\xf9\x10\xba\xf6F$i\
-\xa1\'~0\xaa\x82\xbf\x91\xda\xb5y\x1apD\x8fg\xbd\x10\x93\x87\xb3^\xa8\xc2\
-\xeeP$\xc0\xe2\x94T\xdf\x19v\x92#\x14\xbf\x81+\xcc\x13\x0e`>C\xed\x19\x0cag;\
-\x1a\xa0\t\xf8r\xf1\x9cgI\x16\xc2jtd\xa3\xc8\xab\xe0\xc8\'\x90\xde\x13\xdf\
-\x06\x93\xe9\xe8N4|\xee\x85\x13\x82lq\xd2*\xbe,\xe9\x97@e\xf1W\xa9w\xa0\x07\
-\t\xcd\x19\x15\x11\x90\x19\xecP\xfdR\xca\n\xdc\'T\xf0\x05\xb2\x1c;\xfbP\x03\
-\xb2k\x00\'\xd3q\x80\x8fA\x15\x98\xca\xa5\xa9\x1c\x07M\xe5\n\xe3\xd88e\xc8\
-\x86&i\xc1\x9d\xf7H\x8e\x94^\xd9S%\xc7 >9W\x96\xc7\x1f<\xe5\x1b\x10|\x85h\
-\xe0\xca^`W\x9a\xb2\x17@\x12\xbbr`\x98JW\xd2\x82\xa9\x9c\xbd\x82KW\n3\x19\
-\x88\x99\xf36"\x016|[\x9fY\xe4\xb8\x109\xd3\x11\xbe\r\xc6\xc1\xfa\xb6\'{\x81\
-1\xc2\xb9\x7fl\xe4\xbb0a\xbeel\x9cm\xa3\xc2\xe1\x13\xe8\xa4\x8d\xa4\x11\x05t\
-\xba\xbd\x08\x10\t\xfe"\xec3I\\\xb7\x9f\xe2\x93\xa8\xf3\n>\xc3\xc3\x1c\xfb\
-\xa5\x01f\xd1\xc3nx\xe7 \xe7\x8e\x83\xfd\xf2JY\xce\x8a\xdc\x01\xa8$\xc4\xc7\
-\x8ee\x1e\x92{\x1d\xdfL\xe1KW\xd7|\x8a\xf1\xa5\x9a\xc0\x04~\x8c\xf3n\\\x91Sv\
-8p=h\x9f\xc8\x05-\x0cmZ0\x87#90\xaaX`Cb\x0c\xc3\xfb+\x9f/\x13\xcc\xedgG\xbe\
-\x02\xae\xbb\xb2[|\xc8iV\x81K\xdf\xfc\x91.\xce\x15\xaeG\x00\x94Y\x10\xf4\x1e\
-\xac\xd7\x94\xb34\xc7|\xc3\x9fCG\xdft|\xe2\x91\xf3\xe4\xad\xb4\x01\xf6\xe1\
-\xcfx-G\x08\x1d\xf1e\xeb\xd56v\x14\xc7\x81\x02d\x03.2\x9cs\xcb\x16t\x07\x06\
-\x93\x1eqJ\x19\xfe\xde\xbc?E\x16+\xfe\x08\xb5\xaf\x02\xfb\xe5\xc2O\xb7\xab\
-\xc9^\xa8\xa2\xe4\x0f}q\x02\x0c/\xc2\xa7\xaf\xf82\xcb\x9a\x06 \xd7\x04G\xa36\
-{\x85*>X\x92AH\xceh\xcb^\x90\x12\x93\xb1_lXm\x86\xf2\tZ\xa7\xfb\t\xf7\x82\
-\xeb\xc7\xab\x81|\x82X\x98\xe9\xb2\x17\x04\xa7\x19T\xc2\xea\xe8\xda\xacQ\\\
-\x12\xe0\xd46\xac\x9f\x9e\x93\xd4\xcesN\r>"I\xe7\xa4\xac\xc0_r\xf6\x97\x14+y\
-\xd9\x04\x10\xa3\x07\xddA)e\xb7\x08\n\xf3\x97\xbf,\xa0L\xee8\xabW\x8e`\xdb\
-\x11\x7f\xd7\x8bs\xcb\x1dv\x91\xb7\xa7\x0f!m\xcf\x9e \x9e&\xb3q\x10\x83\xa6\
-\x0cJ\x9b@H;0\xcd\xfb>\xacy\x95?~\xe4\xe0\xf3j\xf31\x80m\xfc\x85\xcb\xef\xb1\
-\x1c\x18"#\x0c\xaeeO\xde\x1ao1\x97Y\x18\xcanq\xcb\xd7e\t\x03\r\xe5\x83\x8a\
-\x1c\x11|w\xe5\xa2B8\x9f\xe3Q]\\U\xc93\x08\xb6\x92\x13\xc6\xb0\xc7\xf9%\x80\
-\x94\x1asbV\x0bj\x0f\x87\x8d/\x13 \x11X\xa5u\xf9B\x7f\x0ffSB\x87E:\xcc\x90\
-\x1a\xbc\xcd\t\xc92\xe0P\xc6\xbc\xb3\x07\xd8\xd9\xebtug\x92\x17\x88\x14\xbd\
-\xd3\xf0\xbdW\x8e\x89?\x90\xa5e\xd7_~#\xef\x17!v\xc5\x89\x03\xcf\xd5:b\xaf\
-\x13\x1f^\xdaE\x1d\xe08\x8b\xbf\x0c\x87\xd8k>\x81\xa7w\xdaA\x00\xa2\x0f{N\
-\xef\x00\x95\xc5\x9f\xf2Y!\xaf\xf5`\xd2\xb3\xa1k[L>d\x90\x95\xf0+\x9c\x81\
-\x8a\xbft\xc5\xba\xe5"2\x82f94\xa5\x82\xf1\x0e}\x80\'\x9d\x11@\x14>\x0e\xcf>\
-\xc4x\xd6\xc3\xc1\xd7\xe7\xefGqF\xe1\x1b\xec}\xa1n`{\xb4\x00\xd3r8\xf3\xf5\
-\xec\x95q\xe3>\xdeb\xf0\x82\xcf9fX\x85\xe3DO\x87\x9c\xb5IB\xac8\xa7\x1b\xdfW\
-/9I\xd3\x00\x87\x85m\xc8\n\x18\x12\x0c\xa0\xe2\xcb\x1bC2FR\x99\xab\xe2\xa6\
-\x94\xaf\xe0f[\x8b\xe7\x05:\xddE\x08\xf7 W|\xb1\x99\xa7\x9c\xbe\xa0\x92m \
-\x7fr\x1b\xdb\x94s0\xff\xd4%\x83\x10\t\xb0`\x9cqLK\rd\x1bP\xe1B\xf9\n\xa2\
-\xb3$\xd8\xc6\x05\x7fu\xf8\xa0+{\xa1\xf5\xf1\xcb@r\x13\x06>~wd\x1bXA\xfc=\
-\xad\x0cm(\x95\xac\xc0\xb7\xb0\xbaH\xe3\xc4Z\xdfG\x05a\xe3\x14L^b\x10\x16K\
-\xed\x1b\xceB\xc3\xb78\xe7q\xde\xca\x14\x19\xef\x0390zBC\x8e\x19\xa9\xc2\xfd\
-\xe14,\xac\xe4-q\xec\xd5\x01\x93\r\x06aq\x92\xb7g|\x88\xd6\x1f\x00\x00\xb1\
-\x17\xc8q\x00\xe1\xce\x9f\xdf\xe3/\xc2\x9e\xcd\x9e ~\xa8- \xee8\xc9\xdb\x85\
-\x8a\xaf\xffx0g\x7f[r\x1c\xc8mK\xca\x9503\xb1\x82\x1c\xfe\x16\x16c\x9d\xecY\
-\xa3\xc8\xd9\x15!\xc0\xcd\xaa\xd3\x06\'z\x1a\xe2\xfb@\x8e\x05\xe1\xc8\xf6\
-\xfe\xc0\x92\x8d\xd2\x13\xbb\x8e\x1c\x07\x9e\x98\xb5\x81;4\xael\x03Y\x9a\xc9\
-\xb93(2\xa0\x90\xe69b\xc5Aa\x8faI\x9c\x9ab\xc9\x06\xcc\xb3\x00\xfc\xc5\xa1\r\
-d\x8d\xf9\xca\xff\to\xc2\x14:L\xc2\x90\x00\xa4\xa6\x98S;H[\xc4\xe18\x9d1\x13\
-\x9c\xc9w\xab\x92\xaf\xe0\xcb\x1bt\xc7\xca+\xf8s\x84\xe7\x1c|\xe4K\x8a\x97\
-\x9cn\x8c\x91]\x07\xf4\xa5\xbcl\xc2_/\xfd\xad\xb3\xd9\x04\xb5\xe7\x85\xaf\
-\xa7\xdb\xf0\x07=\xbb\x00\x93f\xb8\x0fdu\xe1\xe7\xe7\xed\xb1\xc8`\x9f\x02;\
-\xea@\xe5oa\xf1\xc7\x8fl90\x18\xab-\xb8\xb2\xf8K\x9b\x87\x15b\x16\x0e\'\x8aS\
-\xb8Q\x06\n\x1b\xb2\x02\x17\xd8\x9b\x91\xda\xcd\xffh^8\xc1\xd2\x04X\xb8\x0c)\
-\x87\xc6\x054\xd8\r\x06.\xb1\x1a\xa8k\xb2[\xdc:j\xe18I\x81"(Zr\xe8\xc8se\xca\
-W\xa09"]P]\xe84Md\x05\xf0A\xaa|\x05\tQg\xb4\xd0\x13\xde\xacQ\xa4\x81\x9b\x8d\
-\x838v+\x9f\x80@\x19"\x88\x91\xb3\xfd\x92\xd0\x17\xa5\xc5"\x03\xfcv\x14\xc8^\
-\xe0\xb6\xe5\x108;!\xdft\xdc\'t\xf8\xb3\x99\x16\x0e\x1cV\xf2:S\xe0r8\xb8\xf4\
-DBZ\xec0T<s~)\x86%\xa5\x9cA\x86\x95<_Ct\xc5\x03\xc7\xb4\x11\x84#\x7f`\xeb\
-\x05\xc1i\xa1o\x00\xbb\x01\xbf\x94\xc7;\xea\xbb\x01a\xc0\xba\x94\xa2c{\xf0\
-\xe5\xc0v +\xa8\x8d\xc0\xc1\xd2fg\xf9\x16\xebt\x19"#!\xeeW\xa6\x9c\xdd\xe3/>\
-Q?\xe0\xd3\xf4\xbd\x86\x18\x1fG\x8a\x9e8\xae\xee\xf1\x17\r8\x15T\x1f\xee\xe3\
-e2h\x069\xe3\xd8vfO\x00S\xd3\x02R%\xc7V\x9frN\x15F \x96]|q\xab\x8f\xb0\xe0\
-\x83!\x1b\xa5\x8a\t\xa7?\xe1\x14\xb2\xbf\x18d\xe3`\xad\xf7]$I`\xf1y\x11!\x8f\
-\xd1\x80?\x82` J\xcc\xdf\xb1z\x1d\xc96\xa0\xd1\xcf\x1a\x85inC\x81gH\xe2.K~\
-\xfe\x9c\xd83\x85l\xf2\xac\x00V\xa1\x9f 8\xedC=/;\x08\xa4\xf2%\xe7\xfd\x00\
-\x11M\x0f\x07\xce\x07\xfe\xe2\x16\x7f\r\xe9\x0c\x1ft\x90\xa9\xc2\xfe\x1a\xf8\
-~T\x0f_\xe9>\x89e\x1b\xa8p\x01)\xeaC\x81\xffH\x01\x99\xc9\x98\x9d]\xbbm\xe4\
-\x99(\x00oX\x9b\xe2\x83R\x8c\xb8\xeb;\xb2Q$\xcb\xe6\xccO\x03\x00\x97l|\xddE4\
-\x81/oP\xbaB[~z\xe2}\x02\xd4^\x8a\xf8\\\x9b?\xef\xca\x19\x0f\\:\x1a\xc5^\x00\
-`\xf9\x03c\xad3`i\xf7b\xf8.8\xbf\xf6YW\xb6\x81;g\xb8qXp\xe6Z\x87\xbf\x94\x97\
-\x81\xa7\xad\x96)J\xd9\xaaZ\xd3V\xb7\x95\x88?JKm\xb5\x9b\xa2\xb5:\xad\xa8e\
-\xb4F\xad\xa0\x15\xb7tQ\xc2\x96%\xfe;\x12\xc5n9-W\xfc\xf1Z\xfd\x96\xdf\x1a\
-\xb4\x86\xad^S|YnDyj\x1d\xb7n[\xf7\xa2\xfcn=\xb4\xceZ\xd7\xad\x83\xd6]\xeb\
-\xa8u\xd2:m\xfdl\xfdj\x9d\xb7.Z\x7fZ\xcfbL\x8f\xad\xc3\xd6\x95\xf8})\xfe^k}l\
-e\xad\x9dV\xde\xfa,\xfe\xdei\xa5\xad-Q\xb2V!J\xd6\x94\xfa\xdf\xban\xd2Zh-\
-\x8a\xb2\xdcj\xc8%RVZ\xab\x82\x98D\x10\xc2\xc4h\r)\xeb\x82\x90%A\x8a\x05bt\
-\xf1\xdbhm\x8b\xb2\xd7\xfa\xd4\xda\x14\x7f\xc6 \xa6\xf7\xff!f\x17\xc4\xd4e\
-\xa3\xf5\xae\xf5\xd6\xfa\xd6\x103\xdfz/\xc8\xf9 \x88\xf9\xde\xdao\xcd\xb5\
-\xbe\x8a\xbf\xbf\x08b\xfe\x08\xa2\xd6Z/\xad\xbf\xad\xd7\x86\xcfDL\xda\x10\
-\x93\x81\xa0B\x10\xfb\xb1\xf9\xd74K\xb32\xa7f\xd7\xfc\x872M\x94\xad\xc4TL\
-\xd5l\x9b\x9a\xd91#\xf1\xc70Gf Jl\xeaf(\x8ae\xda\xb28\xa6kz\xa2\xf4M\xdf\x1c\
-\x98C\xb3g\xde\x98O\xe6\xb1y+\xca\xb1yo\xfeFy0\xcfD\xb96\x0f\xcc;\xf3\xc8<1O\
-\xcd\x9f\xe6/\xf3\xdc\xbc0\xff\x98\xcf\xe6\x0f\xf3\xd1<4\xaf\xccKs\xcd\xfchf\
-\xe6\x8e\x99\x9b\x9f\xcd\xd4\xdc2\x0bsb.\x88R\x88\xdf\x8b\xa2,\xff\xaf\xb2b\
-\xae\x8a\xb2\xde\x94%s\xdb\xdc3?\x99\x9b\xe6\xd8lff\xa5\xb5\x0bR6\x04\x19\
-\xff&\xe6\x9d \xe5\xed\xbf\x88\xf9f\xce\x9b\xefE\xf9`~7\xf7\x05As\x82\x98\
-\xdf\r15)O\xe6W\x90B\xc4|1_\xcc\xbf\xe6\xab\x98|\xb3,\xcb\xaa\x9c\x96\xdd2)\
-\x95R-\xdb\xa5Vv\xca\xa84D\x19\x95A\x19\x97\xba\xf8;,\xad\xb2\x10\x84X\xe5\
-\x96 \xa6\xfe\xbd\x00"\xec\x92\x8a\x83\x7f\x89,\xb7\xf4\xca~\xb9i\xfa\xe5?L\
-\x0c\x912(7\xc4\xdf51\xc3\xb2W217\xa5\x03\x82\xa8x\xe6S9\x14320\x8f\xcb\xe3r\
- \x88\xe9\t\x02\x9e\x1aBj2\xbe6\xa5&\xe6\xb6\xbc/\x7f\x97\x0f\xe5Yy]\x1e\x94\
-w\xe5QyR\x9e\x96?\xcb_\xe5yyQ\xfe)\x9f\xcb\x1f\xe5cyX^\x95\x97\xe5Z\xf9\xb1\
-\xcc\xca\x1dQ\x82r\xcd\xcc\x05)\x9f\xcbz\x96\x16\xc4<M\xcc\x14d8\xe5V\xf3\
-\xb7\xd3\x90D\xc4\x14\xe5\xa4\xacg\xe6\x7f\x11S\x97\xf6\xbf\x88\xa1e\xb6P.\
-\x947(\xf5\xef\'A\xc0b\xb9\\\xae\x94\xab\xe2\xcfz\xb9Tn\x97\xf5R\xbb\x01\x19\
-u\xd9+kb>\x95\x9b\xe5\xb8\xdc-7\xcaw\xe5[\xf9\xad\x9c/\xdf\x97\x1f\xca\xef\
-\xe5~9W~-\xbf\x94/\xe5\xdf\xf2UH\x1e\xb3*\xab\xaa\x9aV5Y\xddj\xd4\x90S\x17"\
-\xa6\x9e\xa7\xa4bR\xb6J\x9e\xa3zf\xd6M\xa5r\x051j\xd5\xae\x1ab\xb4\xaaSE\x95\
-Q=5\x9c\xad\x17\xc9\xbd\xe0\xfe\xa8r\xc5\xde\xf8\xd6\x90R\x97\xa0\x8a+\xbd\
-\xaa\x17R\xcf\x0c+\xab\xb2+\xa7r+\xaf\xea\x8b_~5\xa8\x86\xa2\xcc\x99L\x14\
-\x11\xd3\x13\xff\xdfM\xf5T\x1dW\xb7\xe2\xd7}\xf5\xbbz\xa8\xce\xaa\xeb\xea\
-\xa0\xba\xab\x8e\xaa\x93\xea\xb4\xfaY\xfd\xaa\xce\xab\x8b\xeaO\xf5\\\xfd\xa8\
-\x1e\xab\xc3\xea\xaa\xba\xac\xd6\xaa\x8fb\x1f\x119VY\x97\x8f\x15\x93B\xc4\
-\xd0\xcc,7\xbb&\xabv\xaa\xbc\xfa\xcc\xc4\xa4\xd5VCLM\xca\x8d$\xa6.59E5\xa9\
-\x16\xca\xb8\xbam\xf6\xc3\x8d9\xac\x16\xaa\xd5\xd2\xae\x16\xab\xe5j\xa5Z\xad\
-\xd6\xc5@\x97\xaa\xed*l\xc8\xa9\x89\xd9\xab03\xe2\xff\xd9\xac\xc6\xd5n\xb5!~\
-\xbd\xab\xde\xaao\xd5|\xf5\xbe\xfaP}\xaf\xf6\xab\xb9\xeak\xf5\xa5z\xa9\xfeV\
-\xaf\xe2T0\xa7\xe5\xb4\x9aN\xa7\xddi2U\xa6\x99\x10\t\xba\xd8I\xc7\xa5:eb\xb6\
-P\xec\x86\xac\xf6\xb4=u\x049\xab\r1\xda\xb43%8_CL45\xa6\xa3\xe9\xbd $\x98\
-\xc6S}\x1aNG\xd57\xd3\x9a\xdaSg\xeaN\xbdi\x7f\xbaP\xfa\xd3\xc1t8\xedMo\xa6+\
-\r1O\xd3\xe3\xe9Bu;\x15\\\x9f\xfe\x9e>L\xcf\xa6\xd7\xd3\x83\xe9^u7=\x9a\x9eL\
-O\xa7?\xc5\xff\xf3kz>\xbd\x98\xfe\x99\xd6\xc4<O\x7f\x88\x7f\x1f\xa7\x87\xd3\
-\xab\xe9\xe5tm\xfaq\x9aMwDM>\xfd<M\xa7[\xd3b:\x99.L\x17\xa7\xcb\xd3\x95\xe9\
-\xeat}\x1a\x94yI\x82\xe0c\xc5\xdb\xdfn\xc8hO\xb7@\xd0\xd2t[\x94\xceto:7[f\
-\x9f\xa6\x9b\xd3\xf1twzln\x88\xe6E\xd7\xd3\xb7\xe9\xb7\xe9\xfc\xf4\xfd\xf4\
-\xc3\xf4\xbb\xa8\xd9\x9f\xceM\xbf\x8a\x7f\xbfL_\xa6\x7f%17\xd3Wq\xd2\xda\x95\
-\xd9\x15\x8b]\xfc;\xed\x1eL\xbb\xddD\xfcR\xbaj\xb7\xdd\xad\x89\xd1\xba\x9dn$\
-~\x19\xddQ7\xe8\xc6\xe2\x97\xde\r\xbbV\xd7\xee:\xe2\xb7\xdb\xf5\xba}\xf1\xaf\
-\xdf\x1dt\x87\xdd\x9e(7\xdd\xa7\xeeq\xd7\x17c\xb8\xed\x86e-\x06\xac2\xa9\xea\
-\x1dB\x85e\xdaV\xb9$Xy<\xbd\xef\xdew\x7fw\x1f\xba\xcd2;\xeb^w\x0f\xbaw\xdd#\
-\xd1\xe4I\xf7\xb4\xfb\xb3\xfb\xab{\xde\xbd\xe8\xfe\xe9>\x8b\x9a\x1f\xdd\xc7\
-\xeea\xf7J\xfc\xba\xec\xaeu?v\xb3\xeeN7\xef~\x16\xff\x9dv\xb7\xbaEw"~\x9dw\
-\x17\xba\x8b\xdde\xf1k\xa5\xbb\xda]\xef.\x89_\xdb\xdd\xbd\xee\xa7n\xbd\xcc6\
-\xbb\xe3\xeen\xb7f\xd0F\xf7]\xf7\xad\xfbM\xfc\x9e\xef\xbe\xef~\x10\xff~\xef\
-\xeew\xe7\xba_\xbb\xba \xe2K\xf7\xa5y\xeao\xf7U("fbW\x82\x86\x84\x89Y\x91g\
-\xcb\xba\xf8U\x93\xb4U.\x88\xa5}#\x08Z\x9aN\x93n\xf2\x0fi@I\xa2$j\xd2\x16\
-\xafkI\'\x89\x12#\x19%\xfdn\x90\xc4\xa2FO\xc2\xc4J\xecDo:r\x127\xf1\x92~\xf2\
-\xb9\xf9/\xc1\xcfd\x90\x0c\x93^r\x93<%\xc7\xc9mr\x9f\xfcN\x1e\x92\xb3\xe4:\
-\xd9\xef\x1e$wIM\xccQr\x92\x9c\x8a_?E\xdd\xaf\xe4<\xb9\x10\xbf\xff$\xcf\xc9\
-\x0f\xf1\xefcr\x98\\%\x97\xc9\x9a\xf8\xfd1\xc9\x92\xba\xcd\x9d$Ov\xca\xcf\
-\xe2w\x9al\tb\xd4i\x91L\x92\x05\xf1\xf6b\xb2\x9c,\x89-_\x93\xb3l\xd63S\x13s,\
-\xcaJ2M\xe6\xfe=3\xab\xc9z\xb2\x94l\x8bF\xf6\x92O\xf50\x92q\xb2\x9bl$\xef\
-\x92\xb7\xe4[2\xdft\xb4\xd0}\x9f|\x001\x8b\xd5\xbe\xe0\xeb\xf7d?\x99K\xbe&\
-\xeb\xddn\xf7\x8bx\xe6%\xf9+\xfe~\x15z\x91\xa9\x94JML\xa5L\x95\xaeR\xef\x99D\
-Q\x14Ui+\xf5\xbb\x9a\xd2\x11\xffF\x8a\xa1\x8c\x94@\x89\xc5o]\t\x95\xba\x0fK\
-\xb1\x15Gq\xc5oO\xe9+\xc7\xa5\xaf\x0cD\x196\x7f\x0f\x94\x9eR/5\x92h\xedf\x99\
-\xdd(7\xca\x93r\xac\xfcC_\x1b?\xeb\xde+\xf5\xdc\xfc\x16\r<\x88?g\xca\xb5\xf8\
-\xfbB\x0c\xf8@\xb9S\x8e\x94\x13\xe5T\xfc\xf7O\xf1\xe7\x97r\xae\xf4\x93\x0b\
-\x85\x88\xf9#\xfe\x9f\x0be\xbd[\x13RK\xb0\xe7f\x00?\x14\xbfzT\x0e\x95+\xe5\
-\xb2!fM\xf9\xa8d\r1;J\xae|V\xd2\x86\x98-\xa5\x10\xffN\x94\x05eQYVV\xc4\xefUe\
-\xbd!fI\xd9V\xda\xe5^\xd3\xd6\'eS\x19+\xbe\xb2\xabL\x92\r\xe5]C\xce\x86\xc2\
-\xc7f-\x02\x96\xa6\x89\xf9\xa6|S\xe6\x95ff\xde+\xb7\xca\x07\xa5\x9e\x9b\xef\
-\xa2\x81^w_\x99S\xbe*_\x94\x9e\x18\xf0\x8b\xf2WyK^E}K5\xd5R\xb5\xabJ\x9d\xaa\
-oI\xd5\x10\xd3U\x13UQ\x1bB\xaa\x07SU\xdb\xaa\xa6v\xd4^7R\ru\xa4\x06j,\x9e\
-\xd7\xd5P\xb5T[\xad\x89qTW\xf5\xd4\xbeZ\xbf\xeb\xab\x03\xf1\xefP\xed\xa97\
-\xea\x93x\xe7X\xbdU\xefU"\xe6\xb7\xfa\xa0\x9e\xa951\xd7\xea\x86r\xa0\x1e\xa8\
-w\xeaAS\x8e\xd4\x81r\xa2nI1]\x13s\xaa\xde\x08b~\xaa\x8d\x00\xf8\xa5\x121Jr\
-\xae^\x88&\xfe\xa8\xcf\xea\x0f\xf5Q\xad%\xd1\xa1z\xa5^\xaak\xeaG5Sw\xd4\\\
-\xfd,jSuK-\xc4\xbf\x13uA]TU\x9c*\xcb\xea\x8a\xba\xaa\xae\xd3p\xd4muO\xfd\xa4\
-n\xaa5C\xc6\xea\xae\xba\xa1\xd6\xe2\xfb\x9d\xfa\xa6~S\xe7\xc5\xef\xf7\xea\
-\x07\xf5\xbb\xba/~\xf5\xab9\xf1\xf7W\xf5\x8b\xfa\xa2\xfeU\xd7\xc4\xf3\xafBe_\
-\x16*\x89\x10\x00\xedkq\xb4\x1f\xa8\xd3v\xb7\xf9{\xda6\x041I\xfb\xdf\x82yI\
-\x9c6KS\xb1v\xdb\xf4\x91\xeev\xbb\xad\xb5;\xed\x1fj\xd46\xda\xa3v\xd0\x8e\
-\xdbz;l[m\xbb\xed\xb4\xdd\xb6\xd7\xee\xb7\xfd\xba\x99\xf6\xb0\xddk\xdf\xb4\
-\x97\x94\xa7\xf6q\xfb\xb6}\xdf\xfe\xdd~h/\xaa{\xa5(\xd5Y\xfb\xba}\xd0\xbe\
-\x13C8jo$\'\xed\xd3\xf6\xcf\xf6\xaf\xf6y\xfb\xa2\xfd\xa7\xfd\xdc\xfe\xd1~l\
-\x1f\xb6\xaf\xda\x97\xed\xb5\xf6\xc7v\xd6\xdei\xe7\xed\xcf\xed\xb4\xbd\xd5.\
-\xda\x93\xf6B{\xb1\xbd\xdc^i\xaf\xb6\xd7\xdbK\xed\xfd\xeev{\xaf\xfd\xa9\xbd\
-\xd9\x1e\xb7w\xdb\x93\xa4&c1\x99\x11\xb3\x9cl\xb4\xdf\xb5\xdf\xda\xdf\xc4\
-\x9fw\xed\r\xf1\xf7[{\xbe\xfd\xbe\xdd,\xb3\x0f \xa6&Go\x7fo\xef\xb7\xe7\xda\
-\x91\xf8\xfd\xb5\xfd\xa5\xfd\xd2\xfe\xdb~\x15\xa6\x8d\xa9\x95\x9a8f\xb5\xae\
-\x96h\x8a\xa6jmM\xd3:Z\xa4\x19\xdaH\xabI\t\xb4X\xd3\xb5P\xb3\xb4Z<\xdb\x9a\
-\xa3\xb9\x9a\xa7\xf55_\x1bhCQz\xda\x8d\xf6$~\x1fk\xb7\xda\xbd\xf6[{\xd0\xce\
-\xb4\xfb\xd6\xb5v\xa0\xddiG\xda\x89v\xaa\xfd\xd4~i\xe7\xda\x85\xf6G{\xd6Tu\
-\xaf=\xd2~h\x8f\xda\xa16n\x96\xd9\x95F\xcb\xecR\x1b(k\x9a\xa1\xd6\xe4\xbckH\
-\xd9h\x7f\xd4>j\x99\xb6\xa35\xcb\xecV\xb9\x16\x02\xe0\xa0{\xd0\xc845\xb9\x13\
-\x7f+\xc9A7\xd7>k\xa9\xb6\xa5\x15\xdaD[\xd0\x16\xb5emE[\xd5\xd6\xb5%m[\xdb\
-\xd3>i\x9b\xdaX\xdb\xd5\xf6\xda\x0f\xe6\x86\x16h\xef\xb47\xed\x9b\xd6\xeb\
-\xcek\xef\xb5\x0f\xdawm_\x9b\xd3\xbej_\xb4\x17\xed\xaf\xf6*JKX\x17e\xa7\xeaL\
-;\x9e\xda\xed$\x1d\xa5\xa3\n\xfei\x9d\x87\xaa\xd3\x89:Fg\xd4\t:qgU=\x103\xac\
-\xaaz\'\xec\xa8\xa6\xd5\xe9\xb6\xedNO\x0c\xdf\xe9\xecw\xdd\x8e\xdb!\x89\xb6\
-\xdf\xbd\xd4\xae\xb4\xa1\xe2u\xea\xd2\x17e\x07\xc4\xcc\xd5\xa2\xf9^\xa1R\xef\
-\x9c\xba\x1c\x88\x1a\xbf3\xe8|\xd6\x86\x9d^\xe7\xa6\xf3\xd49\xee\xdcv\xee;\
-\xbf;\x0f\x9d\xb3\xceu\xe7\xa0s\xd79\xea\x9ctv5\xbd2\xcc\xeb\xf6Y\xfb\xb4\
-\xf3\xb3\xf3\xabsS\x9dw\x96\xdb\x17\x9d?\x9d\xe7\xce\x8f\xcec\xe7\xb0s\xd5\
-\xb9\xec\xacu>v\xb2\xceN\'\xef|\xee\xa4\x9d\xadN\xd1\x99t\x16:\x8b\x9d\xe5\
-\xceJg\xb5S\x13\xb3\xdeY\xealw\xf6:5)+\xaa\xaa\x8e\xb4E\xf5D\xfd\x84\xc1\xff\
-\xef\xb2\xdf\xa5\x7f7\x05\xb1c\x10\x93i\xf2\x9c\xa9\t\xf9 JM\x0e\x13\xb6+H\
-\xd9\xe8lt\xdeu\xde:\xdf:\xf3\x9d\xf7\x82\x98\x0f\x9d\xef\x9d\xfd\xce\\\xe7k\
-\xe7K\xe7\xa5\xf3\xb7\xf3\xdaiEf\xb4*6\x7f\x19\t\xf5.\xeaFI\xa4Db\xf3EZ\xd4\
-\x89\xd6:Q\xb4[\x1a\xd1(:0\x83(\x8e\xf4(\x8c\xac\xc8\x8e\x9c\xc8\x8d\xbc\xa8\
-\x1f\xf9\xd1 \x1aF\xbd(\xea\xdcDO\xd1qt\x1b11ag1\xf9\xbf\t\xa9\x8bP\xae\xba\
-\xfc\xfbD\xedw\xee\xa3\xdf\xa2`\x99\x9dukB\x1e\xa2\x87\xa8\x96j\x1f\x14*g\
-\xd1ut\x10\xddEG\xd1It\x1a\xfd\x8c~E\xe7\xd1E\xf4\'z\x8e~D\x8f\xd1at\x15]FkQ\
-+\xfa\x18e\xd1N\x94G\x9fEI\xa3\xad\xa8\x88&\xd1B\xb4\x18-G+\xd1j\xb4\x1e\xdd\
-UK\xd1v\xb4\x17}\x8a6\xa3q\xb4\x1bmD\xef\xa2\xb7\xe8\xbe\xf5-\x9a\x8f\xdeG\
-\x1f\xa2\xef\xd1~4\x17\xfd\xd2\xbeF_\x1abV\x051/\xd1\xff\x8f\x8c\x81B\xba\
-\xc7\x9d\xcauGjM\xcc\xdf\x86\x98\xb9\xfa\x9c\xa9\tab\xf8\xf7k\xd42La\xd3V\
-\xc6\xd4\xe8\x1a\x89\xa1\x18\xe7\xe2\x00i\x1b\x9a\xd11"\xc30FF`\xc4\x86n\x84\
-\x86e\xd8\x86c\xb8\xc6\xd7\xd23>G}\xc37\xce\xb5\x8114\xd6\xa3\x9eqc<\x19\xc7\
-\xc6\xadqo\xfc6\x1e\x8c3\xe3\xda80\xee\x8c#\xe3\xc485~\x1a\xbf\x8cs\xe3\xc2\
-\xf8c<\x1b?\x8cG\xe3\xd0Xi\x04\xfc\xb2\xba\xdc\x1e(>N\xfc\xff&\xa4.\xb3\x99\
-\xbb2.\x8d5\xe3\xa31G\xe7\xcc{IL\xbd\xcc2\xa3.\x0f\xd1\x8e\x91\x1b\xaf\xd1g#\
-5\xb6\x8c\xc2\x98\x18\x0b\xc6\xa2\xb1l\xac\x18\xab\xc6\xba\xb1dl\x1b{\xc6\'c\
-\xd3\x18\x1b\xbb\x82\x94\x9a\x98\r\xe3\x9d\xf1&H\xfa&\xca\xbc\xf1\xde\xf8`|7\
-\xf6\x8d9\xe3\xab\xf1\xc5(\xcb\x17\xe3\xaf\xf1j\xb4F\xe6\xa8\x14\x86\xd2t\
-\xd4\x1d%#e\xa4\x8e\x84\xd8\x1auF\xd1\xc8\x18\x8dF\xc1\xa8&&\x1e-\xab3\xbe\
-\xff\'!\x97\xda\x91J\xc4L\xfe\xb5\x0c7;\xfa(\x1c\xfdC\xb7\x19\xed\x913rG\xde\
-\xa8?\xf2G\x03Q\x86\xa3\xde\xe8f\xf44:\x1e\xdd\x8e\xeeG\xbfG\x0f\xa3\xb3\xd1\
-\xf5\xe8`\xb4h\xdc\x8d\x8eF\'\xa3\xd3\xd1\xcf\xd1\xaf\xd1\xf9\xe8b\xf4g\xf4<\
-2#\xa7\x99\x977\xe3\xc7\xe8\xc7hWH\xb8\xc7\xd1\xe1\xe8jt9Z\x1b}\x1ce\xa3\x9d\
-Q>\xfa<JG[\xa3b4\x19-\x8c\x16G\xbb\x912Z\x1e\xad\x8cVG\xeb\xa3\xa5\xd1\xf6ho\
-\xf4i\xf4\x14m\x8e\xfe\x94\xb5(y4\xd7\xbbU\xbb\x1e0\x13\xc13b\x08\xcd\x82\
-\xfekM\xab\xff\x95\xa4\nb\xd6hf\xc6\xa3]A\x8a;\xda\x18\xbd\x1b\xbd\x8d\xbe\
-\x8d\xe6Ey/\xca\x87\xd1wQ\xf6Gs\xa3\xaf\xa3/\xa3\x97\xd1\xdf\xd1\xeb\xe8n\
-\xd4\n\xcc@\xd8\xd0\xc14\x10ju\xa0\x04j\xd0\x0e\xb4\xa0\x13D\x81Xu\xc1(\x08\
-\x82\xc7Q\x1c\xe8\xa2\x84\xc1\xe5\xc8\n\xec\xc0\t\xdc\xc0\x0b\xfa\x81\x1f\
-\x0c\x82a\xd0\x0bn\x82\xa7\xe08\xb8\r\xd6G\xf7\xc1\xef\xe0!8\x0b\xac\xe0:8\
-\x08.\xca\xbb\xe0\xba\xad7\xe7\xd6r{\xb6\xa0\xa8\x1c\x05\'\xc1\x9aFd\xf1\xff\
-\xcb\xc4\xaci\xfaHof\xe6\x9f\xd3\xe0g\xf0K\x94\rA\xceyp\x11\xfc\t\x9e\x83\
-\xf9\xd1\x8f\xe018\x0c\xae\x82\xcb`-\xd8\x1f}\x0cN\xa3,x\x1d\xed\x04y\xf09H\
-\x83\xad\xa0\x08&\xc1B\xb0i,\x06\xcb\xa2\xac\x04\xab\xc1zS\x96\x1a\x92j\xa2\
-\xc2`;\xd8\x0b>\x05\x9b\xc18\xd8\r6\x82w\xc1[\xf0-\x98\x0f\xde\x07\x1f\x82\
-\xef\xc1~0\x17|\r\xbe\x04/\xc1\xdf\xe05h\xc5f,,\xf3\xd8\x10j\xd1\xb2\xd0)T\
-\xd3\xed\xfc{f6\x94\xa3\xe0(\xa0\xff:R\xaf\x0c^zT^"a\x1c\xc7\xf4!\xad\xb8\
-\x1b\'\xf1\xafZ\x0f\x17E\x8d\xdb\xb1\x16\xd7\xb3\xf3(\xc8\xe9\xc4Q|)\xf6\xb9\
-`v\x1c\xc7\xaf#=\x0ec+\xb6c\'vc/\xee\xc7~<\x88\x87q[\x90c\x9b\xabA]\xc8\xb7\
-\xb6*H\xea\xc57\xf1Y\xf0\x14\x1f\xc7\xb7\xf1}\xfc;~\x88\xcf\xe2\xeb\xf8 \xbe\
-\x8b\x8f\xe2\x93\xf8T\x94\x97\xe0g\xfc+>\x8f/\xe2?\xf1s\xfc#\xbe-\x1f\xe3\
-\xc7\xf8A\x15J\xab\x99\xa8\x87\xf1\x95\xb1\xdc\xbe\x8a\xaf\xe2\x93\xa0Hj\x02\
-h\x86.\xe3+\xed?g\xa6j\xaf\xc5\x1f\xe3f\x99e\xf1N\x9c\x8b\xf29N\xe3-Q\x8ax\
-\xd2\x10\xb3\x10\xd7\xe4,\nb\xf6\xc5r[\x8eW\x041\xab\xf1z\xbc\x14o\xc7{\xf1\
-\xa7x3\x1e\xc7\xbb\xf1F\xfc\xee_\xc4\xd4\x84\xac\x80\xa0^\xfc\x16\xff\r\xbe\
-\xc5\xf3\xf1\xfb\xf8C\xfc=\xde\x8f\xe7\xe2\xaf\xf1\x97\xf8%\xfe\x1b\xbf\xc6-\
-\xdd\xd4K\xbd\xd2\xa7zWOtE\x17\x9a\x94(51bf*E\xd5\xf4Km\x92\xd4\xa4\x1c\xc6U\
-\x9bw\xcd\x91\xda\xd1#\xbd\xde\xfc\xff\x9e\x17C\xac\xb2@\xff\x87\xbe\xeb\x9b\
-\xc5\xb1\x1e\xeb\xba\x1e\xea59\x96n\xeb\x8e\xee\xea\x9e\xde\xd7}}\xa0\x0f\
-\xf5}\xb1szzM\xcc\x8d\xfe\xa4\x1f\xeb\xb7\xfa\xbd\xfe[\x7f\xd0\xcf\xf4k\xfd@\
-\xbf\xd3\xebEv\xa4\x9f\xe8G\xfa\xba\xf8\xc5\x84\x9d\xea?\xf5_\xfa\xb9~\xa1\
-\xff\xd1\x9f\xf5\x1f\xfa\xa3~\xa8_\xe9\x97\xfa\x9a\xfeQ\xcf\xf4\x1d\xfdW\\\
-\xe9\xb9\xfeY?\xd5S}\x18\x131[\x82\x9c\xbd\xb2\xdb\xd5\xf4B\'Rf\xdb\xbf\x12\
-\xca\xe8D_\xd0\xeb\x05\xf8\xef\xed\x7f\x18\xd7\xc4\x8c\xf4ff\x16\xf5E}Y_\xd1\
-W\xf5u}I\xdf\xd6\xf7\xc4\x9fO\xfa\xa6>\xd6w\x051\xbe\xbe\xa1\xbf\x13\xe4\xbc\
-\tb\x16\x8do\xfa\xbc\xfe^\xff\xa0\x7f\xd7\xf7\x1bb\xe6\xf4\xaf\xfa\x17\xfdE\
-\xff\xab\xbf\xea\xad\xd0\x0c\xcb\xb0\n\xa7a7<\x12\xd6\xb6\x12\xaaa;\xd4\xc2N\
-\x18\x85F\xf8\x10\x8f\xc2 \x8cC=\x0cC+\xb4\xc3\x9f\xb1\x13\xba\xa1\'J?\xf4\
-\xc3a<\x08U1;\x8fq\xed\x97\x9b3/\x84\xd1G\xa4\xf0\x8c\x1c\xa9\xc3\xb0\x17\
-\x1a\xeaM\xf8\xefY\xa9\xcf\xa1\xa7\xf0)\xac\x89i\x04\xc0qx\x1c\xde\x86\xcb\
-\x82\x98\xfb\xf0w\xf8\x10n\xebg\xe1ux\x10\xde\x85\xbb\x82\x9c\xa3\xf0$<\r\
-\xf7G?\xc3_\xe1\xa2q\x1e^\x84\x7f\xc2\xe7\xf0G\xf8\x18\x9e\tb\x0e\xc3\xab\
-\xf02|\xd1\xd7\xc2\x9a\x98WA\xd4\x9a\xf8\xaf\x8fa\x12f\xe1N\x98\x87\x9f\xc34\
-\xdc\n\x8bp\x12>\xeb\x0b\xe1b\xb8\x1c\xae\x84\xab\xe1z\xb8\x14\x96\xfav\xb8\
-\x17~\x12\xc4l\x86\xe3p7\xdc\x10\xe5]HN\xc69\xf3\xa4!\xa5H^\xa2\r\xb1#\xf6\
-\xbbo\xe1\xb7p>\xdc\xef\xfe\xe7^\xa9\x8d\xe9\x89\xfe^\x10\xf3A\x94\x86\x98\
-\xef\xe1\xf7p?\x9c\x0b\xbf\x86_\xc2\x97\xf0o\xf8*J\xcb\xaa]\x89\x955\xb5\xba\
-Vb\x9d\x84\x8a\xa5ZmK\xb3:Vd\xfd\x11G\xbe\x90\xb9\x96X\x8fVhY\x96mY&I2\xc7:\
-\x113r\xa2\xd7\xe8i\xcf\xea[~\x9d\x1a\xd8\xeaY\xf3\xf1\x8d\xf55~\xb2\x8e\xad\
-[\xeb\xdez\x89\x7f[\x0f\xd6\x99um\x1d\x88R\xcf\xccfh\x99\x8e\xb9 N\xd3c\xf3\
-\xa9!\xe6*\xbe\xb3\xae\xe2#\xeb\xc8:\xb1\x0c\xfd)<\xb5\x0c\x95$\xd8\xbfI\xf9\
-i\xfd\xb2\xfa\x9ds\xeb\xc2\xfa#JC\xcc\xb3\xf5\xc3z\xb4\x0e\xad\xaf\xe1\x95ui\
-\xadY\x1f\xadm\xb1\xd02k\xc7\xca\xad\xcf\x82\x9c\xd4\xf2\xf5\xc7`\xcb*\xac\
-\x89\xb5`-\nb\x96\xad\x15k\xd5Z\x17\xe50\\\x12\xc4\xd8 f=\xa8\x89q\xacmQNu\
-\xcf\xda\xb3>Y\x9b\xd6\xd8*\xc2]k\xc3zg\xbdY\xdf\xacy\xeb\xbd\xf5\xc1\xfanm\
-\x87\xfb\x82\x949\xeb\xab\xb5\x14\xf4\x0517\xe57\xd3k\x9c\xef7\x82\x98~R\x13\
-\xf3\xa5!\xe6\xc5\xaa\xd5\xff\xff=\'B\'\x0b~\tb\xee\xa3\x9a\x98\xbfL\xcc\xab\
-\xf5j\xcd\x8551-\xbb\xf6\xb0U\xf6\xd4\xde\xd6\xbbvb+vm\xbc\x0b\x83\xd3\xd6\
-\xec\x8e\x1d\xd5Z\x8b-\xd4\x05;\xb0c[o\xfe\xe8v(h\xd1m\xbb\xb94m\xdb\xae\xed\
-\x89\xbf\xfb\xa2\xd4\xbf|{`\x0f\xed\x9e}c?\xd9\xc7\xf6\xad}o\xff\x16\xbf\x1f\
-\xec3\xfbZ\xfc?\x07\xe2\x99;\xfb\xa8\xf9sb\x9f\xda?\xed_\xf6\xb9}a\xff\xb1\
-\x9f\xed\x1f\xf6\xa3}h_\x89\xbf\x15\xbb6\xc8\xfe\xf3\\\x19(\x97\xf6\x9a}\xa2\
-\x0e\x955[\x98f\xf6\x8b\xb5\x98\x8c\x15\xcc\xcc\xb3\x95\xd9s\xe1\x8e\x9d\xdb\
-\x9f\xed\xd4\xde\xb2\x0b\xfb\xb5Yl\x13{\xc1^\xb4\x97\xed\xf9\xd1\x8a\xbdj\
-\xaf\x0bR\x96\xecm\xfb\x8f\xd85{\xf6\'\xfbA\xdf\x8c7\xedM{l;\xd6zs\xc6\xac\
-\x07I\xb8kg\xe2\xcf\x86\xfd\xce~\xb3\xbf\xd9\xf3\xf6{\xfb\x83\xfd\xdd\xde\
-\xb7W\xc29{\xde\xfa*~\x8f\xad/\xf6\x8b\xfd\xd7~\xb5[\x8e\xe9\x94N\xe5L\x9d\
-\xd0\xfc\xd6\x84\xaf\xc8y\xdf\x133sdu\x9dzf\xde\xda\'\xc1\x7f\xcf\n\x138P\
-\x8a\xe4\xa3]\x8b\xee\x81\xf2\xaf\x99\xc9\xecG\xb1\xd8\x12\xa7.\xf5/*\xf5\
-\x7f)\x8e\xea\xb4\x1d\xcd)\xac\x9a\x98\x8eS\xabb#\'p\x1e\xf4\xd8\xd1\x1d\xb1\
-\xaa\x9c\x13\xbd&\xa7\xde351\xefD\xc9C\xdbq\x1cW\x14\xcf\xe9;~\x9dg\xac)\x03\
-\xa7\xe7\x9c\xc67\xce\x93s\xec\xfc\xb5o\x9d{\xe7\xb7(L\xcc\xbcy\x8f\x85v\xa1\
-<8\xf5\x8e\xb9\xb3\x0c\x95%\xda\x8c\x94\xffTC\x0fc\xfa\x97\xdc\xb3\xce\xb5s\
-\xe0\x1cZ59\xf5\x0c\xcd\xc8I\x9c}!\x1aT\xe7\xce9rN\x9cS\'\xb2\x7f:\xbf\x041\
-\xe7\xce\x85\xf3\xc79\x133\xf3\xec\xfch\x88\xa9\xb7}\r\xc6\xaf\xa5\xd8\xc6\
-\x7f\x10\xf3\xe8\x1c:W\x82\x04_\x94\x9e\xf8u\xe9\xac9\x1f\x9dL\x90\xb3\xe3\
-\xe4\xceg\'u\xeaY\r\xc5\xf6w\xcdQU\x87\x12\xeb@\xe2[r\xa1|H\x1e\x9c;\xebH\
-\xfd\xefE\xf6\x7f\x97\x7f\x113\x17\xd6\x83\xcf\xec\x9a(.43[\x82\x98\xc2\x998\
-\x0b\x8ea/:\xcb\xce\x8a g\xd5Ywj\xd1\xbc\xe4l;{N\x12~\x12\x7fj\x82\xea_\xf5"\
-{\xb3kb6\x9bR_l\xdfu6\xc4\x9fC\xe7\x9d\xf3\xe6|s\xe6\x9d\xf7\x82\x98\x0f\xce\
-wg_\x10S\xeb\r$\xcd\xbe\x99B%\xa8\xea\xb9\x89\xaa\x9a\x9c\xbe \xe7R\xfb\xef\
-\x99\xf9\xbf\xca\x90\xf7L\xbd\xcc\x1e-!\x9e\xc5\xd0\xe7\xc2\xba\x1c\n\xe9\
-\xc6K\xef\xab\xf3\xc5yq\xfe:\xaf\xce\xc4j\xb9\xa6[\xba\x95;u\xbbn\xe2*\xae\
-\xea&a\xdb\xadI r\xea_43\x9a\xdbq\xddfn\xe6\x85\x95\xbc\xe6\xd4\xc5\x10\xca\
-\xb9P\xa1\xddoB\xb5\xd3]5\x0c\xddT\x10C\xcaO\xd8\x90#t\xcd\xaa^j\x96\x1bU\
-\xb6[/\xb6\xc3x\xa69\xff\xa7}\xf3\xefr\xa59M\xba\x85\x7f\\\xf7\xda\xe1\x81\
-\xd7\xcb\xccs\xebEW\xd7\xd4\xf3R\x93\xd8w\xeb\xe2\xbb\x03w\xe8\xd6n\xdc\x9e{\
-\xe3>\xb9\xc7\xee\xad{\xef\xd6\xc7\xe4\x89^/\xae\r{\x17\xc5v~\xbb\x0f\x82\
-\x98M\xe7\xcc\xbd\x16C\xe72j\x88y/Hyr\x0e\\\x9a\x97\xd4\xa9\x17g-\xd0k\xf1,l\
-\x0b17\xb7\xe6\x9dKs\xf3!\x11\x02@.4.w\xea\xbfI\x1c*\x86\xfa\xd7\x021G\xae\
-\xeb\x9e\xb8\xa7\xeeO\xf1\xe7T\xfc\xfa%\xcay\xf3\xdf\x17M\xf9\xe3>\xbb?Dy\
-\x14\xe5\xd0\xbd\x12\x7f.\xdd5\xf7\xa3\x9b\xb9;n\xee~vSw\xcb-\xdc\x89(\x0b\
-\xa2L\xc4\xefEw\xd9]qW\xdduQ\x96\xdcmw\xaf)\xdb\xa2|\x12e\xd3\x1d\xbb\xbb\
-\xee\x86\xfb\xce}s\xbf\xb9\xf3\xee{\x94\x0f\xeeww\xdf\x9ds\xbf\xba_\xdc\x17\
-\xf7\xaf\xfb\xea\xb6<\xd3+\xbd\xf9v\xe5\xf1\xcc\xd8\xd5;e9Y\x13\xcaXO\xc8\
-\xb1\x93\xe0\xca\xb0;\x7f\xad\xba\x80\x98\xa9\xd7\xf5\xce\xc5\xf0OD\xa9\xffM\
-<&\x86\xc8\xfb\trjb\xae\x04!DLM\x8a\xe2\xa9^\xdb#b\x16Pj\x92\x16]\xcd[m\xc8\
-\xd1\xbc\x8e\x17\xa1\x18(+\x82T\xcd[\x14\xcf\x8d\xbc\xc0\xdbj\x88\xf8.,\x8a\
-\x9a\xa0\xcfB\xbf\xad\xc9\t\xbd:}_\xcbs<\xd7\xf3\xbc\xdfQ\x91\xf4=_\x94\xa3 \
-\x14\x06\xf2\x9aQ\x933\xf0\x12Q\x86\x9eC\xab\xb9&\xc6\xfc\x7f\x91\x8f)\xf6' ))
-
-def getwxPythonBitmap():
- return wxBitmapFromXPMData(getwxPythonData())
-
-def getwxPythonImage():
- return wxImageFromBitmap(getwxPythonBitmap())
-
-#----------------------------------------------------------------------
-def getPythonPoweredData():
- return cPickle.loads(zlib.decompress(
-'x\xda\xcdXMo\xdb0\x0c\xbd\xf7W\x08\xb0\x9c\x0e\x11"4m\xda\xb50\x0cxE\xbb\
-\xe3|\xe8E\xd7\xa2\xd8i\xc5\xb4\xff\x7f\x9aH}\x92\x92\x13\x17]\xd1IH\xa4G\
-\xd1~\xa6)\x93\xb4\xbf\xbc\xfe\xd9\x9f=\x9d\xef\xf7\x17\xe2p\x10\xfbk\xb1??{\
-~:7\xe2E\xdc\xbf>\xbf\xfcB4;\xd4\xedo\xa1#\x9e\x00?<BG,\x01?~\x85\x8ex\x00|u\
-\x07\x1dq\x0f\xf8;6\xc4\x16\xf0\xe1\x12:\xe2\x1d\xe0\x8b[\xe8\x885\xe2\x8b\
-\x9b\xabo\xd7\x88G\xc0\x97w\xd0\x11+\xc0\xb7\x07\xe8\x88\x85\xc3?\xec\xef\
-\x9f\x086xq7\xd0\x11o\xf1b\xf6\xd0\x11w\x80\xef\x1f\xa0\x87\x83W7\xbd\xd0\
-\xdep\x8a\xb5\x94ze\xfb7\x94\xfa\xcd\xed=\x94\xfa\x1d\xed\x8d\x94\x867w\n\
-\xd3j\xa7\xe4\xab)\x9d\xaa\x9d\xb1\x03\xb9\x80\x7f\xed\xc7(\x9fq\x9e\xe5\xf1\
-\x08\xaeoVS\n5u\xd2\xf5I\xcd0Wx&7\xceA\x8e+\x85\\\x18\xbf\xc2\xf5\x81[\xaf\
-\xa0t\xf7\xc4N\xbdoR\xcdn>Yw\n7J\x15\xe5}?)\x99\xe4\x93\x9d\x1d\xaa\xf5q\xac\
-\xdcZQ\x82\xe7\xcd\xdc\xf5\x12\xad\xd9H\xb5\xed\xfanv\x87:Y\xb7\x05[$\xacML\
-\xee4\x1b\xfa\xb3\xa7\xa4\xa4\x8c\xd2o6c%^/\\\xbb\x84\x1f^5\x8cQ\x06~+\xe4\
-\x8a\xe9\xbb\xfbk\xe2z\xb5\x81\te\xdc\xdfx\x85\xa3\xd9\x99\xd1\x8d\x03\xbb\
-\xea\xd68\xd0\xb9\x04NbeIZR\xa6\xc5\xcaJ8C\xf2]i]\xe3N\xa0Wa\x85Z\x9993e\xf1\
-\x14\x13_\xce\xe0\'5\xe2\xbf\xa0\xd6y\x1d\xd9\xb0\xd2\xe9\x0e\xdc\xcaH\x9a(\
-\xcb\x15\xb8\xda\xb4c\xd1>wf\xef!be\x9f\xb4\x98_\xbb\xf0\xb3\x8cR\x97\x94d!Y\
-0!\x0b\xda\xb9\t\x8ck\xac\xec\x068B\xd6V"g\xa0\xa4\xf2\xe4\'\xebC\xdf\xac\
-\x92\x8d\xab|)\xc3sZ[\t\x9cm\xcahIl%^\xb1c;\xf4F\xd3\xcaD\xa9\x1bV\xda\x1c\
-\xa3\x0b\xac\x89\x95K\xcf\xa5\rw\xa6a\xa5^\xa0$V\x96\xb8\x98\xcf+\xa3O\xcc,\
-\x94RWV\xe6\xf8\xc8\xb1\xe11\xf4T\x8c\r\x99%\xb76e\xcc\x06\r\xcc3\xc5\xa9L\
-\x923\xcaq\xca\x90\x03M\x03\xa79\x1bY\xbe\xcc#\xbbc-J\x7f\xf3w\xd1\x8d<\xdb\
-\xa75>\xee\x92\xd2\x8e\x1cR\xc5\xda\x8a\x92T\x04z1\xdb3\xb9H\xcfp\x96\xc79\
-\xdf\xb95eY\x11\x98E\x1fQ\xf9\xe8\x10\xd7\xf7\xf3\xa9\x8e\xb5\xd5CB*\x02\xb3\
-\xb4\x13\xa9\x1c\xe2i\xa5\x1f\xe6U\xac\xad\x9f\xcb:\x8b4\xab\x03"\x97\x88\
-\x98~\x98W\xb1\xb6\x0ex\x18M:\xab\xac\xbb\xba\xa9\x8a*\xc17*\xeb\xc4\xfc8\
-\xaa\xa0_\xc8\xbd\xb4g\xd5AM\xb9T\xf7\x0c\xbe\xf6A\xd9@\xb3\x88\xaf\x02\xfc\
-\x1a\xcb.U\xacm$/\x92+\xab8\x9a\x7f$W\xe2n\x11x\x07x\x0ee\xb1\xb6\x95\xa2I\
-\xae\xe4\xd9\xc2\x86_\xb2\xb2\xa8\xf4L\x99C\x0b\xf9\xc8+\xbd\xaa\x10!\xb9\
-\x12k\xd7\xc2\x971\xdb\x07\x9f\rj\x9b\x9f\xbb\x10i\xb2\xbc86Z\xd9.\xb7H\x06\
-\x10|\x07nB}\x10\xe5\xc5\x9d \xfa\xf8\xbc\x86y\xf2\xe5RQ\x993@\xac\x07Z5P\
-\x94OvWf\x99B\x9e\xe7}X_,\x9dS\x94\x89\x9c$\x9a@\x9c!QF\x90\xacS\xca\xe3<\
-\xa2\xe5\x17\x04\x9aEx\xcc\x14E\x9e`\x99\xa3\xa9\x9f\xdf\xdf\x8eP\n\x9a\xc8\
-\xcd\xeavJ\xff\xd8\x9b\x17\xad\x1d\xca\x93.\xcc\xd7\xe8\x1f\xa7\x14\xb4Zi\
-\xbe1\xebF&=\xa6_\xbe\xdb\x1e\xf9V\xa0\xdf\xdd\xfe\xf3\xcf\x13\x9f\xf8\x11\
-\xe6\xb3>5}\xc0\x075\xfd\x17\x19\xafZq' ))
-
-def getPythonPoweredBitmap():
- return wxBitmapFromXPMData(getPythonPoweredData())
-
-def getPythonPoweredImage():
- return wxImageFromBitmap(getPythonPoweredBitmap())
-
-# The following could appear at the end of (e.g.) the
-# otherwise-wxDesigner-generated Python file ErrorDialogs_wdr.py,
-# instead of the function of the same name there... However, instead of cut-
-# and-pasting, the version here will be imported, so all you need do is
-# delete the similarly-named function automatically generated at the end of
-# the ..._wdr.py file...
-
-def PythonBitmaps( index ):
- if index:
- return getPythonPoweredBitmap()
- else:
- return getwxPythonBitmap()
- return wxNullBitmap