From 28296f114aafee0e34b19ae7dbd633626b32122b Mon Sep 17 00:00:00 2001 From: "Fredrick W. Warren" Date: Mon, 16 Sep 2024 08:49:47 -0600 Subject: [PATCH] inital work on im app --- .gitignore | 163 ++++++++++++++++++++++++++ background.xpm | 116 ++++++++++++++++++ imreceived.py | 95 --------------- pywmreceived.py | 303 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 582 insertions(+), 95 deletions(-) create mode 100644 .gitignore create mode 100644 background.xpm delete mode 100755 imreceived.py create mode 100755 pywmreceived.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7f33cd7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,163 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/latest/usage/project/#working-with-version-control +.pdm.toml +.pdm-python +.pdm-build/ + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +.envrc +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ diff --git a/background.xpm b/background.xpm new file mode 100644 index 0000000..2f3db57 --- /dev/null +++ b/background.xpm @@ -0,0 +1,116 @@ +/* XPM */ +static char * fww_xpm[] = { +"156 100 13 1", +" c None", +". c #767C6F", +"+ c #010101", +"@ c #8E968A", +"# c #505055", +"$ c #6CB237", +"% c #6EC63B", +"& c #4F8327", +"* c #020202", +"= c #0A0A0A", +"- c #484C46", +"< c #DEDEDE", +"> c #7C827C", +" ", +".+++.@#+++@@#+++#@#+++@@#+++#@#+++#@#+++#@#...#@@...#@@...#@#...#@#...@@+...+@#+++@@#+++#@#+++#@#+++#@#+++#@#+++#@#+++#@#...#@#...#@#...#@#...#@#...#@#+++#@", +"+@@@+@+@@@+@+@@@.@+@@@+@+@@@.@+@@@.@+@@@.@+@@@+@.@@@+@.@@@+@+@@@+@+@@@.@++@++@+@@@+@+@@@+@+@@@+@+@@@+@+@@@+@+@@@.@.@+@.@+@@@+@+@@@+@+@@@+@+@@@+@+@@@+@.@@@+@", +"+@@@+@+@@@+@+@@@.@+@@@+@+@@@.@+@@@.@+@@@.@+@@@+@.@@@+@.@@@+@+@@+.@+@@@.@+@+@+@+@@@+@+@@@+@+@@@+@+@@@+@+@@@+@+@@@.@.@+@.@+@@@+@+@@@+@+@@@+@.+@+.@+@@@+@.@@+.@", +"#+++#@#+++@@#...@@#...#@#+++@@#+++@@#.++#@#+++#@@...#@@...#@#++.@@#...@@#...#@#...#@#...#@#+++#@#+..#@#+++@@#+++#@@.#.@@#...#@#...#@#...#@@.+.@@#+++#@@.+.@@", +"+@@@+@+@@@+@+@@@.@+@@@+@+@@@.@+@@@.@+@@@+@+@@@+@.@@@+@.@@@+@+@@+.@+@@@.@+@@@+@+@@@+@+@@@+@+@@@.@+@+@+@+@@@+@.@@@+@.@+@.@+@@@+@+@@@+@+@+@+@.+@+.@.@@@+@.+@@.@", +"+@@@+@+@@@+@+@@@.@+@@@+@+@@@.@+@@@.@+@@@+@+@@@+@.@@@+@.@@@+@+@@@+@+@@@.@+@@@+@+@@@+@+@@@+@+@@@.@+@@++@+@@@+@.@@@+@.@+@.@+@@@+@+@@@+@++@++@+@@@+@.@@@+@+@@@.@", +"#...#@#+++@@#+++#@++++@@#+++#@+...@@#+++#@#...#@@...+@#+++#@#...#@#+++.@#...#@+...+@#+++#@#...@@#+++#@#...#@#+++#@@.#.@@.++++@@+++@@+...+@#...+##+++#@#+++#@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@+++@@@...#@#+++#@#+++#@#...#@#+++#@#+++#@#+++#@#+++#@#+++#@@...@@@...@@@...@@@+..@@@+..@@@..+@@@...@@@..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"+@@@+@.@@@+@.@@@+@.@@@+@+@@@+@+@@@.@+@@@.@.@@@+@+@@@+@+@@@+@.@@@.@.@@@.@.@@@.@+@@@.@+@@@.@.@@@+@+@#@+@.@@+.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"+@@@+@.@@@+@.@@@+@.@@@+@+@@@+@+@@@.@+@@@.@.@@@+@+@@@+@+@@@+@.@@@.@.@@@.@.@@@.@+@@@.@+@@@.@.@@@+@.###.@.@+@.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"#...#@@...#@#+++#@@+++#@#+++#@#+++#@#+++#@@...#@.+++.@#+++#@@...@@#+++#@@...@@@...@@#...@@@...#@+++++@@.+.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"+@@@+@.@@@+@+@@@.@.@@@+@.@@@+@.@@@+@+@@@+@.@@@+@+@@@+@.@@@+@.@@@.@.@@@.@.@@@.@.@@@.@+@@@.@.@@@+@.###.@.@+@.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"+@@@+@.@@@+@+@@@.@.@@@+@.@@@+@.@@@+@+@@@+@.@@@+@+@@@+@.@@@+@.@@@.@.@@@.@.@@@.@.@@@.@+@@@.@.@@@+@+@#@+@.+@@.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@+++@@@...+@#+++#@#+++#@@...#@#+++#@#+++#@@...#@#+++#@#+++#@@...@@@...@@@#+#@@@...@@@+..@@@..+@@@...@@@+..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"$+++$%&+++%%&+++&%&+++%%&+++&%&+++&%&+++&%&$$$&%%$$$&%%$$$&%&$$$&%&$$$%%+$$$+%&+++%%&+++&%&+++&%&+++&%&+++&%&+++&%&+++&%&$$$&%&$$$&%&$$$&%&$$$&%&$$$&%&+++&%", +"+%%%+%+%%%+%+%%%$%+%%%+%+%%%$%+%%%$%+%%%$%+%%%+%$%%%+%$%%%+%+%%%+%+%%%$%++%++%+%%%+%+%%%+%+%%%+%+%%%+%+%%%+%+%%%$%$%+%$%+%%%+%+%%%+%+%%%+%+%%%+%+%%%+%$%%%+%", +"+%%%+%+%%%+%+%%%$%+%%%+%+%%%$%+%%%$%+%%%$%+%%%+%$%%%+%$%%%+%+%%+$%+%%%$%+%+%+%+%%%+%+%%%+%+%%%+%+%%%+%+%%%+%+%%%$%$%+%$%+%%%+%+%%%+%+%%%+%$+%+$%+%%%+%$%%+$%", +"&+++&%&+++%%&$$$%%&$$$&%&+++%%&+++%%&$++&%&+++&%%$$$&%%$$$&%&++$%%&$$$%%&$$$&%&$$$&%&$$$&%&+++&%&+$$&%&+++%%&+++&%%$&$%%&$$$&%&$$$&%&$$$&%%$+$%%&+++&%%$+$%%", +"+%%%+%+%%%+%+%%%$%+%%%+%+%%%$%+%%%$%+%%%+%+%%%+%$%%%+%$%%%+%+%%+$%+%%%$%+%%%+%+%%%+%+%%%+%+%%%$%+%+%+%+%%%+%$%%%+%$%+%$%+%%%+%+%%%+%+%+%+%$+%+$%$%%%+%$+%%$%", +"+%%%+%+%%%+%+%%%$%+%%%+%+%%%$%+%%%$%+%%%+%+%%%+%$%%%+%$%%%+%+%%%+%+%%%$%+%%%+%+%%%+%+%%%+%+%%%$%+%%++%+%%%+%$%%%+%$%+%$%+%%%+%+%%%+%++%++%+%%%+%$%%%+%+%%%$%", +"&$$$&%&+++%%&+++&%++++%%&+++&%+$$$%%&+++&%&$$$&%%$$$+%&+++&%&$$$&%&+++$%&$$$&%+$$$+%&+++&%&$$$%%&+++&%&$$$&%&+++&%%$&$%%$++++%%+++%%+$$$+%&$$$+&&+++&%&+++&%", +"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", +"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", +"%+++%%%$$$&%&+++&%&+++&%&$$$&%&+++&%&+++&%&+++&%&+++&%&+++&%%$$$%%%$$$%%%$$$%%%+$$%%%+$$%%%$$+%%%$$$%%%$$+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", +"+%%%+%$%%%+%$%%%+%$%%%+%+%%%+%+%%%$%+%%%$%$%%%+%+%%%+%+%%%+%$%%%$%$%%%$%$%%%$%+%%%$%+%%%$%$%%%+%+%&%+%$%%+$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", +"+%%%+%$%%%+%$%%%+%$%%%+%+%%%+%+%%%$%+%%%$%$%%%+%+%%%+%+%%%+%$%%%$%$%%%$%$%%%$%+%%%$%+%%%$%$%%%+%$&&&$%$%+%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", +"&$$$&%%$$$&%&+++&%%+++&%&+++&%&+++&%&+++&%%$$$&%$+++$%&+++&%%$$$%%&+++&%%$$$%%%$$$%%&$$$%%%$$$&%+++++%%$+$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", +"+%%%+%$%%%+%+%%%$%$%%%+%$%%%+%$%%%+%+%%%+%$%%%+%+%%%+%$%%%+%$%%%$%$%%%$%$%%%$%$%%%$%+%%%$%$%%%+%$&&&$%$%+%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", +"+%%%+%$%%%+%+%%%$%$%%%+%$%%%+%$%%%+%+%%%+%$%%%+%+%%%+%$%%%+%$%%%$%$%%%$%$%%%$%$%%%$%+%%%$%$%%%+%+%&%+%$+%%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", +"%+++%%%$$$+%&+++&%&+++&%%$$$&%&+++&%&+++&%%$$$&%&+++&%&+++&%%$$$%%%$$$%%%&+&%%%$$$%%%+$$%%%$$+%%%$$$%%%+$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", +" ", +" ", +" ", +" ", +" ****************************************************** ****************************************************** ", +" *======================================================* *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* ", +" *==-----------------------------------------------------*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=-->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@**< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" *******************************************************< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", +" <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ", +" ", +" ", +" ", +" "}; diff --git a/imreceived.py b/imreceived.py deleted file mode 100755 index 5e83b84..0000000 --- a/imreceived.py +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/env python3 - -import pystray -import os -import sys -from dbus.mainloop.glib import DBusGMainLoop -DBusGMainLoop(set_as_default=True) -import dbus.decorators -from gi.repository.Gtk import AboutDialog -from gi.repository.GLib import source_remove, timeout_add -# from gi.repository.GdkPixbuf import Pixbuf -from PIL import Image - - -bus = dbus.SessionBus() -timer_id = None -timer_count = 20 - -def resource_path(relative_path): - """ Get absolute path to resource, works for dev and for PyInstaller """ - try: - base_path = sys._MEIPASS - except Exception: - base_path = os.path.abspath(".") - return os.path.join(base_path, relative_path) - - -def timer_callback(): - global timer_id, timer_count - timer_count -= 1 - if not timer_count: - source_remove(timer_id) - timer_id = None - return False - if timer_count % 2 : - icon.icon = MsgYes - else: - icon.icon = MsgNo - return True - - -def item_about(icon, query): - about = AboutDialog() - about.set_program_name("Finch Indicator") - about.set_version("0.1") - about.set_copyright("(c) Fred Warren") - about.set_comments("Taskbar indicator for Finch Messenger") - about.set_website("http://www.elder-geek.net") - #about.set_logo(Pixbuf.new_from_file(resource_path("user-invisible.png"))) - about.run() - about.destroy() - - - -def after_click(icon, query): - if str(query) == "Exit": - icon.stop() - else: - icon.icon = MsgNo - - -menu = pystray.Menu( - pystray.MenuItem("Clear", after_click), - pystray.MenuItem("About", item_about), - pystray.MenuItem("Exit", after_click)) - - -MsgNo = Image.open(resource_path("user-invisible.png")) -MsgYes = Image.open(resource_path("user-available.png")) - - -def message_received(account, sender, message, conversation, flags): - global timer_id, timer_count - icon.icon = MsgYes - if not timer_id: - timer_count = 16 - timer_id = timeout_add(250, timer_callback) - - -def message_sent(account, message, id): - global timer_id - if timer_id: - source_remove(timer_id) - timer_id = None - icon.icon = MsgNo - - -bus.add_signal_receiver( message_received, dbus_interface="im.pidgin.purple.PurpleInterface", signal_name="ReceivedImMsg") -bus.add_signal_receiver( message_received, dbus_interface="im.pidgin.purple.PurpleInterface", signal_name="ReceivedChatMsg") -bus.add_signal_receiver( message_sent, dbus_interface="im.pidgin.purple.PurpleInterface", signal_name="SendingImMsg") -bus.add_signal_receiver( message_sent, dbus_interface="im.pidgin.purple.PurpleInterface", signal_name="SendingChatMsg") - - -icon = pystray.Icon("Finch", MsgNo, "Finch Message Indicator", menu) -icon.run() diff --git a/pywmreceived.py b/pywmreceived.py new file mode 100755 index 0000000..9b31606 --- /dev/null +++ b/pywmreceived.py @@ -0,0 +1,303 @@ +#!/opt/pywmdockapps/venv/bin/python3 + +"""pywmnop.py +WindowMaker dockapp pidgin messages +Copyright (C) 2006 Mario Frasca +Licensed under the GNU General Public License. +""" + +# from dbus.mainloop import DBusGMainLoop +#DBusGMainLoop(set_as_default=True) +#import dbus.decorators +from wmdocklib import wmoo as wmoo + +line_height = 9 + + +class Application(wmoo.Application): + + def __init__(self, *args, **kwargs): + wmoo.Application.__init__(self, *args, **kwargs) + self._count = 0 + self._flasher = 8 + self.backlit = 0 + self.lines = [ # name, messages received + [" CATHY", 0], + [" FRANK", 0], + [" TIM", 0], + [" LEE", 0], + [" TANDA", 0], + [" OTHER", 0], + ] + + def draw_string(self, xstart, ystart, text): + for char in text: + if char >= "A" and char <="Z": + x = (ord(char) -65) * 6 + y = 1 + elif char >= "0" and char <="9": + x = (ord(char) -48) * 6 + y = 10 + elif char == " ": + x = 6 * 10 + y = 10 + elif char == "-": + x = 6 * 11 + y = 10 + elif char == ".": + x = 6 * 12 + y = 10 + elif char == "'": + x = 6 * 13 + y = 10 + elif char == "(": + x = 6 * 14 + y = 10 + elif char == ")": + x = 6 * 15 + y = 10 + elif char == "*": + x = 6 * 16 + y = 10 + elif char == "/": + x = 6 * 17 + y = 10 + else: + continue + self.putPattern(x, y + (self.backlit * 17), 6, 7, xstart, ystart) + xstart += 6 + + def draw_background(self): + self.putPattern(0 + (self.backlit * 62), 36, 64, 64, 0, 0) + + def draw_all_text(self): + for index, line in enumerate(self.lines[:6]): + self.draw_string(9, 6 + (index * line_height), line[0]) + + def toggle_backlight(self, event): + self.backlit = 1 - self.backlit + self.draw_background() + self.draw_all_text() + + + def update(self): + wmoo.Application.update(self) + self._count += 1 + if self._count <= 3: + return + self._count = 0 + if self._flasher: + self._flasher -= 1 + self.toggle_backlight(True) + + + +palette = { + ".": "#767C6F", + "+": "#010101", + "@": "#8E968A", + "#": "#505055", + "$": "#6CB237", + "%": "#6EC63B", + "&": "#4F8327", + "*": "#020202", + "=": "#0A0A0A", + "-": "#484C46", + "<": "#DEDEDE", + ">": "#7C827C", + } + + +background = [ + " ", + " ", + " ****************************************************** ", + " *======================================================* ", + " *==-----------------------------------------------------*< ", + " *=-->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*< ", + " *=->>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@**< ", + " *******************************************************< ", + " <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ", + " ", + " ", + " ", +] + +patterns = [ + " ", + ".+++.@#+++@@#+++#@#+++@@#+++#@#+++#@#+++#@#...#@@...#@@...#@#...#@#...@@+...+@#+++@@#+++#@#+++#@#+++#@#+++#@#+++#@#+++#@#...#@#...#@#...#@#...#@#...#@#+++#@", + "+@@@+@+@@@+@+@@@.@+@@@+@+@@@.@+@@@.@+@@@.@+@@@+@.@@@+@.@@@+@+@@@+@+@@@.@++@++@+@@@+@+@@@+@+@@@+@+@@@+@+@@@+@+@@@.@.@+@.@+@@@+@+@@@+@+@@@+@+@@@+@+@@@+@.@@@+@", + "+@@@+@+@@@+@+@@@.@+@@@+@+@@@.@+@@@.@+@@@.@+@@@+@.@@@+@.@@@+@+@@+.@+@@@.@+@+@+@+@@@+@+@@@+@+@@@+@+@@@+@+@@@+@+@@@.@.@+@.@+@@@+@+@@@+@+@@@+@.+@+.@+@@@+@.@@+.@", + "#+++#@#+++@@#...@@#...#@#+++@@#+++@@#.++#@#+++#@@...#@@...#@#++.@@#...@@#...#@#...#@#...#@#+++#@#+..#@#+++@@#+++#@@.#.@@#...#@#...#@#...#@@.+.@@#+++#@@.+.@@", + "+@@@+@+@@@+@+@@@.@+@@@+@+@@@.@+@@@.@+@@@+@+@@@+@.@@@+@.@@@+@+@@+.@+@@@.@+@@@+@+@@@+@+@@@+@+@@@.@+@+@+@+@@@+@.@@@+@.@+@.@+@@@+@+@@@+@+@+@+@.+@+.@.@@@+@.+@@.@", + "+@@@+@+@@@+@+@@@.@+@@@+@+@@@.@+@@@.@+@@@+@+@@@+@.@@@+@.@@@+@+@@@+@+@@@.@+@@@+@+@@@+@+@@@+@+@@@.@+@@++@+@@@+@.@@@+@.@+@.@+@@@+@+@@@+@++@++@+@@@+@.@@@+@+@@@.@", + "#...#@#+++@@#+++#@++++@@#+++#@+...@@#+++#@#...#@@...+@#+++#@#...#@#+++.@#...#@+...+@#+++#@#...@@#+++#@#...#@#+++#@@.#.@@.++++@@+++@@+...+@#...+##+++#@#+++#@", + "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", + "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", + "@+++@@@...#@#+++#@#+++#@#...#@#+++#@#+++#@#+++#@#+++#@#+++#@@...@@@...@@@...@@@+..@@@+..@@@..+@@@...@@@..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", + "+@@@+@.@@@+@.@@@+@.@@@+@+@@@+@+@@@.@+@@@.@.@@@+@+@@@+@+@@@+@.@@@.@.@@@.@.@@@.@+@@@.@+@@@.@.@@@+@+@#@+@.@@+.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", + "+@@@+@.@@@+@.@@@+@.@@@+@+@@@+@+@@@.@+@@@.@.@@@+@+@@@+@+@@@+@.@@@.@.@@@.@.@@@.@+@@@.@+@@@.@.@@@+@.###.@.@+@.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", + "#...#@@...#@#+++#@@+++#@#+++#@#+++#@#+++#@@...#@.+++.@#+++#@@...@@#+++#@@...@@@...@@#...@@@...#@+++++@@.+.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", + "+@@@+@.@@@+@+@@@.@.@@@+@.@@@+@.@@@+@+@@@+@.@@@+@+@@@+@.@@@+@.@@@.@.@@@.@.@@@.@.@@@.@+@@@.@.@@@+@.###.@.@+@.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", + "+@@@+@.@@@+@+@@@.@.@@@+@.@@@+@.@@@+@+@@@+@.@@@+@+@@@+@.@@@+@.@@@.@.@@@.@.@@@.@.@@@.@+@@@.@.@@@+@+@#@+@.+@@.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", + "@+++@@@...+@#+++#@#+++#@@...#@#+++#@#+++#@@...#@#+++#@#+++#@@...@@@...@@@#+#@@@...@@@+..@@@..+@@@...@@@+..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", + "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", + "$+++$%&+++%%&+++&%&+++%%&+++&%&+++&%&+++&%&$$$&%%$$$&%%$$$&%&$$$&%&$$$%%+$$$+%&+++%%&+++&%&+++&%&+++&%&+++&%&+++&%&+++&%&$$$&%&$$$&%&$$$&%&$$$&%&$$$&%&+++&%", + "+%%%+%+%%%+%+%%%$%+%%%+%+%%%$%+%%%$%+%%%$%+%%%+%$%%%+%$%%%+%+%%%+%+%%%$%++%++%+%%%+%+%%%+%+%%%+%+%%%+%+%%%+%+%%%$%$%+%$%+%%%+%+%%%+%+%%%+%+%%%+%+%%%+%$%%%+%", + "+%%%+%+%%%+%+%%%$%+%%%+%+%%%$%+%%%$%+%%%$%+%%%+%$%%%+%$%%%+%+%%+$%+%%%$%+%+%+%+%%%+%+%%%+%+%%%+%+%%%+%+%%%+%+%%%$%$%+%$%+%%%+%+%%%+%+%%%+%$+%+$%+%%%+%$%%+$%", + "&+++&%&+++%%&$$$%%&$$$&%&+++%%&+++%%&$++&%&+++&%%$$$&%%$$$&%&++$%%&$$$%%&$$$&%&$$$&%&$$$&%&+++&%&+$$&%&+++%%&+++&%%$&$%%&$$$&%&$$$&%&$$$&%%$+$%%&+++&%%$+$%%", + "+%%%+%+%%%+%+%%%$%+%%%+%+%%%$%+%%%$%+%%%+%+%%%+%$%%%+%$%%%+%+%%+$%+%%%$%+%%%+%+%%%+%+%%%+%+%%%$%+%+%+%+%%%+%$%%%+%$%+%$%+%%%+%+%%%+%+%+%+%$+%+$%$%%%+%$+%%$%", + "+%%%+%+%%%+%+%%%$%+%%%+%+%%%$%+%%%$%+%%%+%+%%%+%$%%%+%$%%%+%+%%%+%+%%%$%+%%%+%+%%%+%+%%%+%+%%%$%+%%++%+%%%+%$%%%+%$%+%$%+%%%+%+%%%+%++%++%+%%%+%$%%%+%+%%%$%", + "&$$$&%&+++%%&+++&%++++%%&+++&%+$$$%%&+++&%&$$$&%%$$$+%&+++&%&$$$&%&+++$%&$$$&%+$$$+%&+++&%&$$$%%&+++&%&$$$&%&+++&%%$&$%%$++++%%+++%%+$$$+%&$$$+&&+++&%&+++&%", + "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", + "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", + "%+++%%%$$$&%&+++&%&+++&%&$$$&%&+++&%&+++&%&+++&%&+++&%&+++&%%$$$%%%$$$%%%$$$%%%+$$%%%+$$%%%$$+%%%$$$%%%$$+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", + "+%%%+%$%%%+%$%%%+%$%%%+%+%%%+%+%%%$%+%%%$%$%%%+%+%%%+%+%%%+%$%%%$%$%%%$%$%%%$%+%%%$%+%%%$%$%%%+%+%&%+%$%%+$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", + "+%%%+%$%%%+%$%%%+%$%%%+%+%%%+%+%%%$%+%%%$%$%%%+%+%%%+%+%%%+%$%%%$%$%%%$%$%%%$%+%%%$%+%%%$%$%%%+%$&&&$%$%+%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", + "&$$$&%%$$$&%&+++&%%+++&%&+++&%&+++&%&+++&%%$$$&%$+++$%&+++&%%$$$%%&+++&%%$$$%%%$$$%%&$$$%%%$$$&%+++++%%$+$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", + "+%%%+%$%%%+%+%%%$%$%%%+%$%%%+%$%%%+%+%%%+%$%%%+%+%%%+%$%%%+%$%%%$%$%%%$%$%%%$%$%%%$%+%%%$%$%%%+%$&&&$%$%+%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", + "+%%%+%$%%%+%+%%%$%$%%%+%$%%%+%$%%%+%+%%%+%$%%%+%+%%%+%$%%%+%$%%%$%$%%%$%$%%%$%$%%%$%+%%%$%$%%%+%+%&%+%$+%%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", + "%+++%%%$$$+%&+++&%&+++&%%$$$&%&+++&%&+++&%%$$$&%&+++&%&+++&%%$$$%%%$$$%%%&+&%%%$$$%%%+$$%%%$$+%%%$$$%%%+$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", + " ", + " ", + " ", + " ****************************************************** ****************************************************** ", + " *======================================================* ******************************************************** ", +# " *======================================================* *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* ", + " *==-----------------------------------------------------*< **%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=-->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *=->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@**< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " *******************************************************< *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%< ", + " <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ", + " ", + " ", + ] + + + + + +def main(): + + global char_width, char_height, maxCharsPerLine, antialiased + app = Application(font_name='5x8', + margin = 3, + bg=0, + fg=2, + palette = palette, + background = background, + patterns = patterns) + # app.addCallback(app.previousRadio, 'buttonrelease', area=( 6,29,15,38)) + # 6x7 grey1=1 grey2=10 green1=18 green2=27 + app.draw_background() + app.draw_all_text() + app.addCallback(app.toggle_backlight, 'buttonrelease', area=(2,2,62,62)) + app.run() + +if __name__ == '__main__': + main()