diff options
Diffstat (limited to 'media-sound/timidity++/files')
13 files changed, 488 insertions, 0 deletions
diff --git a/media-sound/timidity++/files/50timidity++-gentoo.el b/media-sound/timidity++/files/50timidity++-gentoo.el new file mode 100644 index 0000000..3f9e35c --- /dev/null +++ b/media-sound/timidity++/files/50timidity++-gentoo.el @@ -0,0 +1,6 @@ + +;;; timidity++ site-lisp configuration + +(add-to-list 'load-path "@SITELISP@") +(autoload 'timidity "timidity" "TiMidity Interface" t) +(setq timidity-prog-path "/usr/bin/timidity") diff --git a/media-sound/timidity++/files/conf.d.timidity.2 b/media-sound/timidity++/files/conf.d.timidity.2 new file mode 100644 index 0000000..0a153ca --- /dev/null +++ b/media-sound/timidity++/files/conf.d.timidity.2 @@ -0,0 +1,27 @@ +# TIMIDITY_OPTS +# Command line arguements to be passed to timidity. -iA is always used +# Common options: +# -Os : Output to ALSA pcm device +# -Oe : Output to esd +# -On : Output to NAS +# +# -B<n>,<m> : Set number of buffer fragments(n), and buffer size(2^m) +# +# -EFreverb=0 : Disable MIDI reverb effect control +# -EFreverb=1[,level] : Enable MIDI reverb effect control +# `level' is optional to specify reverb level [0..127] +# This effect is only available in stereo +# (default) +# -EFreverb=2 : Global reverb effect + +TIMIDITY_OPTS="-B2,8 -Os -EFreverb=0" + +# TIMIDITY_PCM_NAME +# This option can be used to choose an alternate ALSA pcm device. This will +# be most useful for users of the dmix alsa plugin or those with multiple +# cards. If you don't know what this is, chances are you want the default. + +#TIMIDITY_PCM_NAME="default" + +#LADSPA plugins library path +LADSPA_PATH="/usr/lib/ladspa" diff --git a/media-sound/timidity++/files/init.d.timidity.4 b/media-sound/timidity++/files/init.d.timidity.4 new file mode 100644 index 0000000..1863a01 --- /dev/null +++ b/media-sound/timidity++/files/init.d.timidity.4 @@ -0,0 +1,20 @@ +#!/sbin/openrc-run + +depend() { + after alsasound esound +} + +start() { + ebegin "Starting TiMidity++ Virtual Midi Sequencer" + test -n "$TIMIDITY_PCM_NAME" && export TIMIDITY_PCM_NAME + start-stop-daemon --start --background --chdir /usr/share/timidity \ + --user timidity --group audio --make-pidfile --pidfile /var/run/timidity.pid \ + --exec /usr/bin/timidity -- -iA ${TIMIDITY_OPTS} + eend $? +} + +stop() { + ebegin "Stopping TiMidity++" + start-stop-daemon --stop --quiet --pidfile /var/run/timidity.pid + eend $? +} diff --git a/media-sound/timidity++/files/timidity++-2.14.0-ar.patch b/media-sound/timidity++/files/timidity++-2.14.0-ar.patch new file mode 100644 index 0000000..5c58cfc --- /dev/null +++ b/media-sound/timidity++/files/timidity++-2.14.0-ar.patch @@ -0,0 +1,23 @@ +https://bugs.gentoo.org/468176 + +--- a/configure.in ++++ b/configure.in +@@ -167,6 +167,7 @@ AC_PROG_CC + AC_PROG_GCC_TRADITIONAL + AC_PROG_INSTALL + AC_PROG_AWK ++AC_CHECK_TOOL([AR], [ar], :) + AC_PROG_RANLIB + AC_PROG_LN_S + CHECK_COMPILER_OPTION(rdynamic) +--- a/timidity/Makefile.am ++++ b/timidity/Makefile.am +@@ -417,7 +417,7 @@ calcnewt$(EXEEXT): $(calcnewt_OBJECTS) $(calcnewt_DEPENDENCIES) + $(LINK) $(calcnewt_LDFLAGS) $(calcnewt_OBJECTS) $(calcnewt_LDADD) $(LIBS) + timidity$(EXEEXT): $(timidity_OBJECTS) $(timidity_DEPENDENCIES) + @rm -f timidity$(EXEEXT) +- ar -cru timidity.exe $(timidity_LDFLAGS) $(timidity_OBJECTS) $(timidity_LDADD) ++ $(AR) -cru timidity.exe $(timidity_LDFLAGS) $(timidity_OBJECTS) $(timidity_LDADD) + else + calcnewt$(EXEEXT): $(calcnewt_OBJECTS) $(calcnewt_DEPENDENCIES) + @rm -f calcnewt$(EXEEXT) diff --git a/media-sound/timidity++/files/timidity++-2.14.0-configure-flags.patch b/media-sound/timidity++/files/timidity++-2.14.0-configure-flags.patch new file mode 100644 index 0000000..e2e77e4 --- /dev/null +++ b/media-sound/timidity++/files/timidity++-2.14.0-configure-flags.patch @@ -0,0 +1,140 @@ +do not add -L/-I flags pointing to the paths given by --prefix. +there's no need and it breaks multilib and cross-compiling. + +patch by Mike Frysinger <vapier@gentoo.org> + +--- a/autoconf/libFLAC.m4 ++++ b/autoconf/libFLAC.m4 +@@ -25,24 +25,8 @@ AC_ARG_ENABLE(libFLACtest, + [Do not try to compile and run a test libFLAC program]),, + [enable_libFLACtest=yes]) + +- if test "x$libFLAC_libraries" != "x" ; then +- LIBFLAC_LIBS="-L$libFLAC_libraries" +- elif test "x$libFLAC_prefix" != "x" ; then +- LIBFLAC_LIBS="-L$libFLAC_prefix/lib" +- elif test "x$prefix" != "xNONE" ; then +- LIBFLAC_LIBS="-L$prefix/lib" +- fi +- + LIBFLAC_LIBS="$LIBFLAC_LIBS -lFLAC -lm" + +- if test "x$libFLAC_includes" != "x" ; then +- LIBFLAC_CFLAGS="-I$libFLAC_includes" +- elif test "x$libFLAC_prefix" != "x" ; then +- LIBFLAC_CFLAGS="-I$libFLAC_prefix/include" +- elif test "$prefix" != "xNONE"; then +- LIBFLAC_CFLAGS="-I$prefix/include" +- fi +- + AC_MSG_CHECKING(for libFLAC) + no_libFLAC="" + +--- a/autoconf/libOggFLAC.m4 ++++ b/autoconf/libOggFLAC.m4 +@@ -25,24 +25,8 @@ AC_ARG_ENABLE(libOggFLACtest, + [Do not try to compile and run a test libOggFLAC program]),, + [enable_libOggFLACtest=yes]) + +- if test "x$libOggFLAC_libraries" != "x" ; then +- LIBOGGFLAC_LIBS="-L$libOggFLAC_libraries" +- elif test "x$libOggFLAC_prefix" != "x" ; then +- LIBOGGFLAC_LIBS="-L$libOggFLAC_prefix/lib" +- elif test "x$prefix" != "xNONE" ; then +- LIBOGGFLAC_LIBS="-L$prefix/lib" +- fi +- + LIBOGGFLAC_LIBS="$LIBOGGFLAC_LIBS -lOggFLAC -lFLAC -lm" + +- if test "x$libOggFLAC_includes" != "x" ; then +- LIBOGGFLAC_CFLAGS="-I$libOggFLAC_includes" +- elif test "x$libOggFLAC_prefix" != "x" ; then +- LIBOGGFLAC_CFLAGS="-I$libOggFLAC_prefix/include" +- elif test "$prefix" != "xNONE"; then +- LIBOGGFLAC_CFLAGS="-I$prefix/include" +- fi +- + AC_MSG_CHECKING(for libOggFLAC) + no_libOggFLAC="" + +--- a/autoconf/ogg.m4 ++++ b/autoconf/ogg.m4 +@@ -26,24 +26,8 @@ AC_ARG_ENABLE(oggtest, + [Do not try to compile and run a test Ogg program]),, + [enable_oggtest=yes]) + +- if test "x$ogg_libraries" != "x" ; then +- OGG_LIBS="-L$ogg_libraries" +- elif test "x$ogg_prefix" != "x" ; then +- OGG_LIBS="-L$ogg_prefix/lib" +- elif test "x$prefix" != "xNONE" ; then +- OGG_LIBS="-L$prefix/lib" +- fi +- + OGG_LIBS="$OGG_LIBS -logg" + +- if test "x$ogg_includes" != "x" ; then +- OGG_CFLAGS="-I$ogg_includes" +- elif test "x$ogg_prefix" != "x" ; then +- OGG_CFLAGS="-I$ogg_prefix/include" +- elif test "x$prefix" != "xNONE"; then +- OGG_CFLAGS="-I$prefix/include" +- fi +- + AC_MSG_CHECKING(for Ogg) + no_ogg="" + +--- a/autoconf/vorbis.m4 ++++ b/autoconf/vorbis.m4 +@@ -27,27 +27,10 @@ AC_ARG_ENABLE(vorbistest, + [Do not try to compile and run a test Vorbis program]), + , [enable_vorbistest=yes]) + +- if test "x$vorbis_libraries" != "x" ; then +- VORBIS_LIBS="-L$vorbis_libraries" +- elif test "x$vorbis_prefix" != "x" ; then +- VORBIS_LIBS="-L$vorbis_prefix/lib" +- elif test "x$prefix" != "xNONE"; then +- VORBIS_LIBS="-L$prefix/lib" +- fi +- + VORBIS_LIBS="$VORBIS_LIBS -lvorbis -lm" + VORBISFILE_LIBS="-lvorbisfile" + VORBISENC_LIBS="-lvorbisenc" + +- if test "x$vorbis_includes" != "x" ; then +- VORBIS_CFLAGS="-I$vorbis_includes" +- elif test "x$vorbis_prefix" != "x" ; then +- VORBIS_CFLAGS="-I$vorbis_prefix/include" +- elif test "x$prefix" != "xNONE"; then +- VORBIS_CFLAGS="-I$prefix/include" +- fi +- +- + AC_MSG_CHECKING(for Vorbis) + no_vorbis="" + +--- a/configure.in ++++ b/configure.in +@@ -91,21 +91,6 @@ else + x_config_flag=yes + fi + +-# Checking gcc environment +-for i in `echo $LIBRARY_PATH|sed -e 's,:, ,g'`; do +- LDFLAGS="$LDFLAGS -L${i}" +-done +-for i in `echo $C_INCLUDE_PATH|sed -e 's,:, ,g'`; do +- CPPFLAGS="$CPPFLAGS -I${i}" +-done +- +-# add $prefix if specified. +-if test "x$prefix" != xNONE -a "x$prefix" != "x$ac_default_prefix" -a "x$prefix" != "x/usr"; then +- LDFLAGS="-L$prefix/lib $LDFLAGS" +- SHLDFLAGS="-L$prefix/lib $SHLDFLAGS" +- CPPFLAGS="-I$prefix/include $CPPFLAGS" +-fi +- + dnl add --with-includes, --with-libraries + AC_ARG_WITH(includes, + AS_HELP_STRING([--with-includes=DIR], [Specify include directories (colon separated)]), diff --git a/media-sound/timidity++/files/timidity++-2.14.0-params.patch b/media-sound/timidity++/files/timidity++-2.14.0-params.patch new file mode 100644 index 0000000..d56448b --- /dev/null +++ b/media-sound/timidity++/files/timidity++-2.14.0-params.patch @@ -0,0 +1,22 @@ +--- configure.in ++++ configure.in +@@ -2245,10 +2245,15 @@ + + AM_CONDITIONAL(W32READDIR, test "x$W32READDIR" = "xyes") + +-SET_UNIQ_WORDS(LDFLAGS,$LDFLAGS) +-SET_UNIQ_WORDS(SHLDFLAGS,$SHLDFLAGS) +-SET_UNIQ_WORDS(CFLAGS,$EXTRACFLAGS $CFLAGS) +-SET_UNIQ_WORDS(CPPFLAGS,$CPPFLAGS $EXTRADEFS) ++# These break flags like --param wrt #276433 ++# SET_UNIQ_WORDS(LDFLAGS,$LDFLAGS) ++# SET_UNIQ_WORDS(SHLDFLAGS,$SHLDFLAGS) ++# SET_UNIQ_WORDS(CFLAGS,$EXTRACFLAGS $CFLAGS) ++# SET_UNIQ_WORDS(CPPFLAGS,$CPPFLAGS $EXTRADEFS) ++LDFLAGS="$LDFLAGS" ++SHLDFLAGS="$SHLDFLAGS" ++CFLAGS="$EXTRACFLAGS $CFLAGS" ++CPPFLAGS="$CPPFLAGS $EXTRADEFS" + + if test "x$oss_device" != x; then + AC_DEFINE_UNQUOTED(OSS_DEVICE,"$oss_device", oss device name) diff --git a/media-sound/timidity++/files/timidity++-2.14.0-pkg-config.patch b/media-sound/timidity++/files/timidity++-2.14.0-pkg-config.patch new file mode 100644 index 0000000..15d6a4e --- /dev/null +++ b/media-sound/timidity++/files/timidity++-2.14.0-pkg-config.patch @@ -0,0 +1,109 @@ +use $PKG_CONFIG rather than `pkg-config` + +https://bugs.gentoo.org/497362 +get ncurses info via pkg-config while we're at it + +patch by Mike Frysinger <vapier@gentoo.org> + +--- a/configure.in ++++ b/configure.in +@@ -148,6 +148,7 @@ AC_SUBST(xawresdir) + + # Checks for programs. + AM_PATH_LISPDIR ++PKG_PROG_PKG_CONFIG + AC_PROG_CC + AC_PROG_GCC_TRADITIONAL + AC_PROG_INSTALL +@@ -1318,8 +1319,8 @@ AC_MSG_CHECKING(enable_audio=jack) + if test "x$au_enable_jack" = xyes; then + AC_MSG_RESULT(yes) + SYSEXTRAS="$SYSEXTRAS jack_a.c" +- EXTRALIBS="$EXTRALIBS $(pkg-config --libs jack)" +- EXTRADEFS="$EXTRADEFS -DAU_JACK $(pkg-config --cflags jack)" ++ EXTRALIBS="$EXTRALIBS $(${PKG_CONFIG} --libs jack)" ++ EXTRADEFS="$EXTRADEFS -DAU_JACK $(${PKG_CONFIG} --cflags jack)" + else + AC_MSG_RESULT(no) + fi +@@ -1635,60 +1636,8 @@ dnl ncurses + AM_CONDITIONAL(ENABLE_NCURSES, false) + CONFIG_INTERFACE(ncurses,NCURSES,n, + AS_HELP_STRING([--enable-ncurses], [Enable ncurses interface (default is no)]), +- [ AC_CHECK_HEADERS(ncurses.h ncurses/curses.h curses.h) +- +-dnl #include <ncurses/curses.h> is failure on Plamo Linux 1.3/ncurses 1.9.9e +-dnl because <ncurses/curses.h> includes <unctrl.h>: +-dnl /usr/include/ncurses/curses.h:34: unctrl.h: No such file or directory +-dnl But surely there is unctl.h at /usr/include/ncurses/unctrl.h. +-dnl configure must check ncurses header with -I/usr/include/ncurses option. +- +- case "$ac_cv_header_curses_h$ac_cv_header_ncurses_curses_h$ac_cv_header_ncurses_h" in +- *yes*);; +- *) for i in /usr/include /usr/local/include; do +- if test -f "$i/ncurses/curses.h" -a -f "$i/ncurses/unctrl.h"; then +- AC_MSG_WARN(ncurses test is failure. Please check config.h and common.makefile later) +- CPPFLAGS="$CPPFLAGS -I$i/ncurses" +- break +- fi +- done +- ;; +- esac +- +- AC_CHECK_LIB(ncurses,initscr,lib_curses_opt=-lncurses, +- [ dnl checking pdcurses +- AC_CHECK_LIB(curses,PDC_set_ctrl_break, +- [ lib_curses_opt=-lcurses +- AC_DEFINE(USE_PDCURSES,1,Define to 1 if you use PDcurses) +- lib_user32_opt="$lib_user32_test" +- ], +- [ dnl checking libpdcurses +- AC_CHECK_LIB(pdcurses,PDC_set_ctrl_break, +- [ lib_curses_opt=-lpdcurses +- AC_DEFINE(USE_PDCURSES,1,Define to 1 if you use PDcurses) +- lib_user32_opt="$lib_user32_test" +- ], +- [ dnl OpenBSD use -lcurses instead of -lncurses. +- case "$target" in +- *openbsd*) +- AC_CHECK_LIB(curses,initscr,lib_curses_opt=-lcurses, +- [ AC_MSG_WARN(ncurses interface is not enabled) +- enable_ncurses=no ]) +- ;; +- *) +- if test "x$VCPP" = xyes || test "x$BORLANDC" = xyes || test "x$WATCOM_C" = xyes || test "x$DMC" = xyes || test "x$POCC" = xyes; then +- lib_curses_opt=libpdcurses.lib +- AC_DEFINE(USE_PDCURSES,1,Define to 1 if you use PDcurses) +- else +- AC_MSG_WARN(ncurses interface is not enabled) +- enable_ncurses=no +- fi +- ;; +- esac +- ]) +- ], +- $lib_user32_test) +- ]) ++ [ CPPFLAGS="$CPPFLAGS $(${PKG_CONFIG} --cflags ncurses)" ++ lib_curses_opt=$(${PKG_CONFIG} --libs ncurses) + ], + [ LIBS="$LIBS $lib_curses_opt" + case "$target" in +@@ -1855,7 +1804,7 @@ CONFIG_INTERFACE(xaw,XAW,a, + lib_xmu_opt=-lXmu + lib_xt_opt=-lXt + if test "x$enable_xft" = "xyes" && test "x$have_xaw" != "xno"; then +- XFT_CFLAGS="$(pkg-config --cflags xft)"; ++ XFT_CFLAGS="$(${PKG_CONFIG} --cflags xft)"; + EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$XFT_CFLAGS) + lib_xft_opt="-lXft"; + fi +@@ -1909,7 +1858,7 @@ CONFIG_INTERFACE(xaw,XAW,a, + ;; + esac + if test "x$enable_xft" = "xyes" && test "x$have_xaw" != "xno"; then +- XFT_CFLAGS="$(pkg-config --cflags xft)"; ++ XFT_CFLAGS="$(${PKG_CONFIG} --cflags xft)"; + EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$XFT_CFLAGS) + a_so_libs="$a_so_libs -lXft"; + fi diff --git a/media-sound/timidity++/files/timidity++-2.14.0-revert-for-required-ctl_speana_data-function.patch b/media-sound/timidity++/files/timidity++-2.14.0-revert-for-required-ctl_speana_data-function.patch new file mode 100644 index 0000000..a83a7db --- /dev/null +++ b/media-sound/timidity++/files/timidity++-2.14.0-revert-for-required-ctl_speana_data-function.patch @@ -0,0 +1,28 @@ +This will revert part of the commit from: + +http://timidity.git.sourceforge.net/git/gitweb.cgi?p=timidity/timidity;a=commit;h=e73b53437dbc1e57e61dd4d0c1407784797b08d9 + +Because otherwise TiMidity++ simply won't build as per: + +../interface/libinterface.a(xskin_c.o): In function `ctl_event': +xskin_c.c:(.text+0x17c): undefined reference to `ctl_speana_data' +collect2: error: ld returned 1 exit status + +--- interface/xskin_c.c ++++ interface/xskin_c.c +@@ -228,7 +228,6 @@ + } + } + +-#if 0 + static void ctl_speana_data(double *val, int size) { + + /* 0 <= val[n] <= (AMP*NCOLOR) */ +@@ -280,7 +279,6 @@ + + return; + } +-#endif + + /*ARGSUSED*/ + static int ctl_open(int using_stdin, int using_stdout) { diff --git a/media-sound/timidity++/files/timidity++-2.14.0-tcltk86.patch b/media-sound/timidity++/files/timidity++-2.14.0-tcltk86.patch new file mode 100644 index 0000000..ea2c0ee --- /dev/null +++ b/media-sound/timidity++/files/timidity++-2.14.0-tcltk86.patch @@ -0,0 +1,13 @@ +http://bugs.gentoo.org/451296 + +--- interface/tk_c.c ++++ interface/tk_c.c +@@ -913,7 +913,7 @@ + vsnprintf(buf, sizeof(buf), fmt, ap); + Tcl_Eval(my_interp, buf); + va_end(ap); +- return my_interp->result; ++ return Tcl_GetStringResult(my_interp); + } + + static const char *v_get2(const char *v1, const char *v2) diff --git a/media-sound/timidity++/files/timidity.cfg-r1 b/media-sound/timidity++/files/timidity.cfg-r1 new file mode 100644 index 0000000..3923fb2 --- /dev/null +++ b/media-sound/timidity++/files/timidity.cfg-r1 @@ -0,0 +1,24 @@ +############################################################################## +# +# timidity-update core configuration file +# +# Easy process: +# +# 1. Change directory to patch directory +# 2. Source current/timidity.cfg +# +# Current patch set will always be symlinked to current, so make sure that the +# proper timidity.cfg is in there +# +# +# - source /usr/share/timidity +# - source ~/.timidity/current +# - Make ~/.timidity/current point to the current patch set, or to whatever +# the individual user sets +# - If ~/.timidity/current isn't found, it will try +# /usr/share/timidity/current +# + +dir /usr/share/timidity +dir ~/.timidity +source current/timidity.cfg diff --git a/media-sound/timidity++/files/timidity.desktop.2 b/media-sound/timidity++/files/timidity.desktop.2 new file mode 100644 index 0000000..00c7f1d --- /dev/null +++ b/media-sound/timidity++/files/timidity.desktop.2 @@ -0,0 +1,10 @@ +[Desktop Entry] +Comment=Software sound renderer (MIDI sequencer, MOD player) +Name=TiMidity++ MIDI sequencer +Terminal=true +NoDisplay=true +Type=Application +Exec=timidity %F +Categories=AudioVideo;Audio;Sequencer; +Icon=timidity +MimeType=audio/midi;audio/x-mod; diff --git a/media-sound/timidity++/files/timidity.service b/media-sound/timidity++/files/timidity.service new file mode 100644 index 0000000..420d888 --- /dev/null +++ b/media-sound/timidity++/files/timidity.service @@ -0,0 +1,10 @@ +[Unit] +Description=TiMidity++ Daemon +After=sound.target + +[Service] +EnvironmentFile=-/etc/conf.d/timidity +ExecStart=/usr/bin/timidity -iA $TIMIDITY_OPTS + +[Install] +WantedBy=multi-user.target diff --git a/media-sound/timidity++/files/timidity.xpm b/media-sound/timidity++/files/timidity.xpm new file mode 100644 index 0000000..dc56a6d --- /dev/null +++ b/media-sound/timidity++/files/timidity.xpm @@ -0,0 +1,56 @@ +/* XPM */ +static char * timidity_xpm[] = { +"32 32 21 1", +" c None", +". c #333399", +"+ c #000000", +"@ c #666699", +"# c #FFFFFF", +"$ c #DDDDDD", +"% c #888888", +"& c #999999", +"* c #7777A4", +"= c #4949A4", +"- c #BBBBBB", +"; c #111111", +"> c #444444", +", c #2B2B2B", +"' c #555555", +") c #FF9999", +"! c #FF9966", +"~ c #666666", +"{ c #333333", +"] c #FF0000", +"^ c #00FF00", +" . .. ", +" . ... + ", +" . ..@ +#+ + ", +" .@@.. +#$#+%#+ ", +" ....@ +#$#$#+$#+ ", +" .... +#$#$#$#+$#+ ", +" @...@ +#$#$#$#$#+$#+ ", +" @.... +#$#$#$#$#$#+$#+ ", +" @...@. %#$#$#$#$#$#$#&$#& ", +" @...@ +++++++$#++$+++++&$++ ", +" ...@ ++$++#++$++#++$$++$++$ ", +" @..@ %++#++$++#++$++$&++$++ ", +" ... %#++$++#++$++#++&$++#++ ", +"*..@ .&++#++$++#++$++++++&++ ", +"=.. ...&#$#$#$#$#$#&-$#$& ", +"=.. ...+++++$++#+$+++++++ ++ ", +"=.. .. .&#$#$#$$&-$#&& ", +"=.. .. . +&$#$&+-$#&+ ", +" ;;;;;;;;;;;;;;;;;;;>;;;;;;; ", +",#%%%%%%%%%%%%%%%%%';#%%%%%'+ ", +",%+++++++++++++++''>;%'''''>+ ", +",%+#)))))))))))!;''>;%'%~+'>+ ", +",'+);;!;!!;!!!!!;>>>;'>+++>>+ ", +",'+)>!!;!!;!;!;!;>>>;'>>>>>>+ ", +",'+!!!!!!!!!!!!!;>>{;'>%~+>>+ ", +",'+;;;;;;;;;;;;;'>>{;'>+++>>+ ", +",'>>>>>>>>>>>>>>>>>{;'>>>>>>+> ", +",'%~'>>%~'>>'>'>'>>{;'>%~+>{++> ", +",']++>>^++>>+>+>+>>{;'>+++>{++>>", +",'>>>>>>>>>>>>>>{{{';'>>{{{'+>>~", +" +++++++++++++++++++>+++++++>>~ ", +" "}; |