to github
authorBernhard Tittelbach <xro@realraum.at>
Tue, 24 Feb 2015 01:18:19 +0000 (01:18 +0000)
committerBernhard Tittelbach <xro@realraum.at>
Tue, 24 Feb 2015 01:18:19 +0000 (01:18 +0000)
73 files changed:
dart-sounds/media/1.ogg [deleted file]
dart-sounds/media/10.ogg [deleted file]
dart-sounds/media/11.ogg [deleted file]
dart-sounds/media/12.ogg [deleted file]
dart-sounds/media/13.ogg [deleted file]
dart-sounds/media/14.ogg [deleted file]
dart-sounds/media/15.ogg [deleted file]
dart-sounds/media/16.ogg [deleted file]
dart-sounds/media/17.ogg [deleted file]
dart-sounds/media/18.ogg [deleted file]
dart-sounds/media/19.ogg [deleted file]
dart-sounds/media/2.ogg [deleted file]
dart-sounds/media/20.ogg [deleted file]
dart-sounds/media/3.ogg [deleted file]
dart-sounds/media/4.ogg [deleted file]
dart-sounds/media/5.ogg [deleted file]
dart-sounds/media/6.ogg [deleted file]
dart-sounds/media/7.ogg [deleted file]
dart-sounds/media/8.ogg [deleted file]
dart-sounds/media/9.ogg [deleted file]
dart-sounds/media/bull.ogg [deleted file]
dart-sounds/media/bullseye.ogg [deleted file]
dart-sounds/media/closed.ogg [deleted file]
dart-sounds/media/david.ogg [deleted file]
dart-sounds/media/deppat.ogg [deleted file]
dart-sounds/media/double.ogg [deleted file]
dart-sounds/media/end_game.ogg [deleted file]
dart-sounds/media/equinox.ogg [deleted file]
dart-sounds/media/gimpf.ogg [deleted file]
dart-sounds/media/homunkoloss.ogg [deleted file]
dart-sounds/media/jampo.ogg [deleted file]
dart-sounds/media/lose.ogg [deleted file]
dart-sounds/media/minus.ogg [deleted file]
dart-sounds/media/miss.ogg [deleted file]
dart-sounds/media/otti.ogg [deleted file]
dart-sounds/media/player.ogg [deleted file]
dart-sounds/media/plus.ogg [deleted file]
dart-sounds/media/scho.ogg [deleted file]
dart-sounds/media/scored.ogg [deleted file]
dart-sounds/media/triple.ogg [deleted file]
dart-sounds/media/useless.ogg [deleted file]
dart-sounds/media/win.ogg [deleted file]
dart-sounds/media/wrong.ogg [deleted file]
dart-sounds/media/xro.ogg [deleted file]
dart-sounds/media/zfue.ogg [deleted file]
dart-sounds/media/zua.ogg [deleted file]
dart-sounds/src/Makefile [deleted file]
dart-sounds/src/configure [deleted file]
dart-sounds/src/dart-sounds.c [deleted file]
dart/Dart.pm [deleted file]
dart/Makefile [deleted file]
dart/README [deleted file]
dart/dart-301.pl [deleted symlink]
dart/dart-42.pl [deleted symlink]
dart/dart-501.pl [deleted symlink]
dart/dart-701.pl [deleted symlink]
dart/dart-cricket.pl [deleted file]
dart/dart-red-101.pl [deleted symlink]
dart/dart-red-x01.pl [deleted file]
dart/dart-schiffe.pl [deleted file]
dart/dart-template.pl [deleted file]
dart/dart-x01.pl [deleted file]
dart/dart.pde [deleted file]
dart/eet.c [deleted file]
dart/html/index.html [deleted file]
dart/html/jquery-1.6.1.min.js [deleted file]
dart/html/underscore-min.js [deleted file]
dart/lookuptable [deleted file]
dart/pc.cpp [deleted file]
dart/perl_shit.pl [deleted file]
dart/plot.py [deleted file]
dart/start-dart.sh [deleted file]
dart/ttyread.c [deleted file]

diff --git a/dart-sounds/media/1.ogg b/dart-sounds/media/1.ogg
deleted file mode 100644 (file)
index e8f0eac..0000000
Binary files a/dart-sounds/media/1.ogg and /dev/null differ
diff --git a/dart-sounds/media/10.ogg b/dart-sounds/media/10.ogg
deleted file mode 100644 (file)
index 9f6e714..0000000
Binary files a/dart-sounds/media/10.ogg and /dev/null differ
diff --git a/dart-sounds/media/11.ogg b/dart-sounds/media/11.ogg
deleted file mode 100644 (file)
index c6f7b54..0000000
Binary files a/dart-sounds/media/11.ogg and /dev/null differ
diff --git a/dart-sounds/media/12.ogg b/dart-sounds/media/12.ogg
deleted file mode 100644 (file)
index 9d7e12c..0000000
Binary files a/dart-sounds/media/12.ogg and /dev/null differ
diff --git a/dart-sounds/media/13.ogg b/dart-sounds/media/13.ogg
deleted file mode 100644 (file)
index 5e46f50..0000000
Binary files a/dart-sounds/media/13.ogg and /dev/null differ
diff --git a/dart-sounds/media/14.ogg b/dart-sounds/media/14.ogg
deleted file mode 100644 (file)
index 3e12573..0000000
Binary files a/dart-sounds/media/14.ogg and /dev/null differ
diff --git a/dart-sounds/media/15.ogg b/dart-sounds/media/15.ogg
deleted file mode 100644 (file)
index bdc8cb1..0000000
Binary files a/dart-sounds/media/15.ogg and /dev/null differ
diff --git a/dart-sounds/media/16.ogg b/dart-sounds/media/16.ogg
deleted file mode 100644 (file)
index 59d7623..0000000
Binary files a/dart-sounds/media/16.ogg and /dev/null differ
diff --git a/dart-sounds/media/17.ogg b/dart-sounds/media/17.ogg
deleted file mode 100644 (file)
index 5dd7cf2..0000000
Binary files a/dart-sounds/media/17.ogg and /dev/null differ
diff --git a/dart-sounds/media/18.ogg b/dart-sounds/media/18.ogg
deleted file mode 100644 (file)
index b385ad4..0000000
Binary files a/dart-sounds/media/18.ogg and /dev/null differ
diff --git a/dart-sounds/media/19.ogg b/dart-sounds/media/19.ogg
deleted file mode 100644 (file)
index 8be3752..0000000
Binary files a/dart-sounds/media/19.ogg and /dev/null differ
diff --git a/dart-sounds/media/2.ogg b/dart-sounds/media/2.ogg
deleted file mode 100644 (file)
index 38a4320..0000000
Binary files a/dart-sounds/media/2.ogg and /dev/null differ
diff --git a/dart-sounds/media/20.ogg b/dart-sounds/media/20.ogg
deleted file mode 100644 (file)
index 96dd777..0000000
Binary files a/dart-sounds/media/20.ogg and /dev/null differ
diff --git a/dart-sounds/media/3.ogg b/dart-sounds/media/3.ogg
deleted file mode 100644 (file)
index d3cdc02..0000000
Binary files a/dart-sounds/media/3.ogg and /dev/null differ
diff --git a/dart-sounds/media/4.ogg b/dart-sounds/media/4.ogg
deleted file mode 100644 (file)
index 1f28d96..0000000
Binary files a/dart-sounds/media/4.ogg and /dev/null differ
diff --git a/dart-sounds/media/5.ogg b/dart-sounds/media/5.ogg
deleted file mode 100644 (file)
index 5878f64..0000000
Binary files a/dart-sounds/media/5.ogg and /dev/null differ
diff --git a/dart-sounds/media/6.ogg b/dart-sounds/media/6.ogg
deleted file mode 100644 (file)
index c34ff13..0000000
Binary files a/dart-sounds/media/6.ogg and /dev/null differ
diff --git a/dart-sounds/media/7.ogg b/dart-sounds/media/7.ogg
deleted file mode 100644 (file)
index 2e365ce..0000000
Binary files a/dart-sounds/media/7.ogg and /dev/null differ
diff --git a/dart-sounds/media/8.ogg b/dart-sounds/media/8.ogg
deleted file mode 100644 (file)
index 5cda735..0000000
Binary files a/dart-sounds/media/8.ogg and /dev/null differ
diff --git a/dart-sounds/media/9.ogg b/dart-sounds/media/9.ogg
deleted file mode 100644 (file)
index 7adaca9..0000000
Binary files a/dart-sounds/media/9.ogg and /dev/null differ
diff --git a/dart-sounds/media/bull.ogg b/dart-sounds/media/bull.ogg
deleted file mode 100644 (file)
index 6261fad..0000000
Binary files a/dart-sounds/media/bull.ogg and /dev/null differ
diff --git a/dart-sounds/media/bullseye.ogg b/dart-sounds/media/bullseye.ogg
deleted file mode 100644 (file)
index 5ebce66..0000000
Binary files a/dart-sounds/media/bullseye.ogg and /dev/null differ
diff --git a/dart-sounds/media/closed.ogg b/dart-sounds/media/closed.ogg
deleted file mode 100644 (file)
index cf303c3..0000000
Binary files a/dart-sounds/media/closed.ogg and /dev/null differ
diff --git a/dart-sounds/media/david.ogg b/dart-sounds/media/david.ogg
deleted file mode 100644 (file)
index 9e27172..0000000
Binary files a/dart-sounds/media/david.ogg and /dev/null differ
diff --git a/dart-sounds/media/deppat.ogg b/dart-sounds/media/deppat.ogg
deleted file mode 100644 (file)
index 4b0d475..0000000
Binary files a/dart-sounds/media/deppat.ogg and /dev/null differ
diff --git a/dart-sounds/media/double.ogg b/dart-sounds/media/double.ogg
deleted file mode 100644 (file)
index 11cce5a..0000000
Binary files a/dart-sounds/media/double.ogg and /dev/null differ
diff --git a/dart-sounds/media/end_game.ogg b/dart-sounds/media/end_game.ogg
deleted file mode 100644 (file)
index ee137bf..0000000
Binary files a/dart-sounds/media/end_game.ogg and /dev/null differ
diff --git a/dart-sounds/media/equinox.ogg b/dart-sounds/media/equinox.ogg
deleted file mode 100644 (file)
index ab3485b..0000000
Binary files a/dart-sounds/media/equinox.ogg and /dev/null differ
diff --git a/dart-sounds/media/gimpf.ogg b/dart-sounds/media/gimpf.ogg
deleted file mode 100644 (file)
index 3b115da..0000000
Binary files a/dart-sounds/media/gimpf.ogg and /dev/null differ
diff --git a/dart-sounds/media/homunkoloss.ogg b/dart-sounds/media/homunkoloss.ogg
deleted file mode 100644 (file)
index 32f87f5..0000000
Binary files a/dart-sounds/media/homunkoloss.ogg and /dev/null differ
diff --git a/dart-sounds/media/jampo.ogg b/dart-sounds/media/jampo.ogg
deleted file mode 100644 (file)
index 36064a0..0000000
Binary files a/dart-sounds/media/jampo.ogg and /dev/null differ
diff --git a/dart-sounds/media/lose.ogg b/dart-sounds/media/lose.ogg
deleted file mode 100644 (file)
index d68ae11..0000000
Binary files a/dart-sounds/media/lose.ogg and /dev/null differ
diff --git a/dart-sounds/media/minus.ogg b/dart-sounds/media/minus.ogg
deleted file mode 100644 (file)
index d0eb1db..0000000
Binary files a/dart-sounds/media/minus.ogg and /dev/null differ
diff --git a/dart-sounds/media/miss.ogg b/dart-sounds/media/miss.ogg
deleted file mode 100644 (file)
index 8f84b08..0000000
Binary files a/dart-sounds/media/miss.ogg and /dev/null differ
diff --git a/dart-sounds/media/otti.ogg b/dart-sounds/media/otti.ogg
deleted file mode 100644 (file)
index 5252c44..0000000
Binary files a/dart-sounds/media/otti.ogg and /dev/null differ
diff --git a/dart-sounds/media/player.ogg b/dart-sounds/media/player.ogg
deleted file mode 100644 (file)
index cb9f662..0000000
Binary files a/dart-sounds/media/player.ogg and /dev/null differ
diff --git a/dart-sounds/media/plus.ogg b/dart-sounds/media/plus.ogg
deleted file mode 100644 (file)
index d80cb38..0000000
Binary files a/dart-sounds/media/plus.ogg and /dev/null differ
diff --git a/dart-sounds/media/scho.ogg b/dart-sounds/media/scho.ogg
deleted file mode 100644 (file)
index 8abb915..0000000
Binary files a/dart-sounds/media/scho.ogg and /dev/null differ
diff --git a/dart-sounds/media/scored.ogg b/dart-sounds/media/scored.ogg
deleted file mode 100644 (file)
index e755a64..0000000
Binary files a/dart-sounds/media/scored.ogg and /dev/null differ
diff --git a/dart-sounds/media/triple.ogg b/dart-sounds/media/triple.ogg
deleted file mode 100644 (file)
index 01f0ee4..0000000
Binary files a/dart-sounds/media/triple.ogg and /dev/null differ
diff --git a/dart-sounds/media/useless.ogg b/dart-sounds/media/useless.ogg
deleted file mode 100644 (file)
index af9e21b..0000000
Binary files a/dart-sounds/media/useless.ogg and /dev/null differ
diff --git a/dart-sounds/media/win.ogg b/dart-sounds/media/win.ogg
deleted file mode 100644 (file)
index 595508b..0000000
Binary files a/dart-sounds/media/win.ogg and /dev/null differ
diff --git a/dart-sounds/media/wrong.ogg b/dart-sounds/media/wrong.ogg
deleted file mode 100644 (file)
index cde303f..0000000
Binary files a/dart-sounds/media/wrong.ogg and /dev/null differ
diff --git a/dart-sounds/media/xro.ogg b/dart-sounds/media/xro.ogg
deleted file mode 100644 (file)
index 88a0aae..0000000
Binary files a/dart-sounds/media/xro.ogg and /dev/null differ
diff --git a/dart-sounds/media/zfue.ogg b/dart-sounds/media/zfue.ogg
deleted file mode 100644 (file)
index 26a5df0..0000000
Binary files a/dart-sounds/media/zfue.ogg and /dev/null differ
diff --git a/dart-sounds/media/zua.ogg b/dart-sounds/media/zua.ogg
deleted file mode 100644 (file)
index 8f200ff..0000000
Binary files a/dart-sounds/media/zua.ogg and /dev/null differ
diff --git a/dart-sounds/src/Makefile b/dart-sounds/src/Makefile
deleted file mode 100644 (file)
index ff5df2a..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-##
-##  dart-sounds
-##
-##
-##  Copyright (C) 2011 Christian Pointner <equinox@spreadspace.org>
-##                         
-##  This file is part of dart-sounds.
-##
-##  dart-sounds is free software: you can redistribute it and/or modify
-##  it under the terms of the GNU General Public License as published by
-##  the Free Software Foundation, either version 3 of the License, or
-##  any later version.
-##
-##  dart-sounds is distributed in the hope that it will be useful,
-##  but WITHOUT ANY WARRANTY; without even the implied warranty of
-##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-##  GNU General Public License for more details.
-##
-##  You should have received a copy of the GNU General Public License
-##  along with dart-sounds. If not, see <http://www.gnu.org/licenses/>.
-##
-
-ifneq ($(MAKECMDGOALS),distclean)
-include include.mk
-endif
-
-EXECUTABLE := dart-sounds
-
-C_OBJS := dart-sounds.o
-
-C_SRCS := $(C_OBJS:%.o=%.c)
-
-.PHONY: clean cleanall distclean install install-bin uninstall remove
-
-all: $(EXECUTABLE)
-
-%.d: %.c
-       @set -e; rm -f $@; \
-  $(CC) -MM $(CFLAGS) $< > $@.$$$$; \
-  sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
-  rm -f $@.$$$$; echo '(re)building $@'
-
-ifneq ($(MAKECMDGOALS),distclean)
--include $(C_SRCS:%.c=%.d)
-endif
-
-$(EXECUTABLE): $(C_OBJS)
-       $(CC) $(C_OBJS) -o $@ $(LDFLAGS)
-
-%.o: %.c
-       $(CC) $(CFLAGS) -c $<
-
-strip: $(EXECUTABLE)
-       $(STRIP) -s $(EXECUTABLE)
-
-
-distclean: cleanall
-       find . -name *.o -exec rm -f {} \;
-       find . -name "*.\~*" -exec rm -rf {} \;
-       rm -f include.mk
-       rm -f config.h
-
-clean:
-       rm -f *.o
-       rm -f *.d
-       rm -f *.d.*
-       rm -f $(EXECUTABLE)
-
-INSTALL_TARGETS := install-bin
-REMOVE_TARGETS := remove-bin
-
-install: all $(INSTALL_TARGETS)
-
-install-bin: $(EXECUTABLE)
-       $(INSTALL) -d $(DESTDIR)$(BINDIR)
-       $(INSTALL) -m 755 $(EXECUTABLE) $(DESTDIR)$(BINDIR)
-
-install-man: manpage
-       $(INSTALL) -d $(DESTDIR)$(MANDIR)/man8/
-       $(INSTALL) -m 644 ../doc/$(EXECUTABLE).8 $(DESTDIR)$(MANDIR)/man8/$(EXECUTABLE).8
-
-uninstall: remove
-
-remove: $(REMOVE_TARGETS)
-
-remove-bin:
-       rm -f $(DESTDIR)$(BINDIR)/$(EXECUTABLE)
diff --git a/dart-sounds/src/configure b/dart-sounds/src/configure
deleted file mode 100755 (executable)
index a9d571e..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/bin/sh
-#
-#  dart-sounds
-#
-#
-#  Copyright (C) 2011 Christian Pointner <equinox@realraum.at>
-#                         
-#  This file is part of dart-sounds.
-#
-#  dart-sounds is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation, either version 3 of the License, or
-#  any later version.
-#
-#  dart-sounds is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#  GNU General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with dart-sounds. If not, see <http://www.gnu.org/licenses/>.
-#
-
-set -e
-
-TARGET=`uname -s`
-EBUILD_COMPAT=0
-
-CFLAGS='-g -O2'
-LDFLAGS='-g -Wall -O2'
-
-PREFIX='/usr/local'
-BINDIR=''
-
-print_usage() {
-  echo "configure --help                    print this"
-  echo "          --target=<TARGET>         build target i.e. Linux (default: autodetect)"
-  echo "          --prefix=<PREFIX>         the installation prefix (default: /usr/local)"
-  echo "          --bindir=<DIR>            the path to the bin directory (default: $PREFIX/bin)"
-}
-
-for arg
-do
-  case $arg in
-  --target=*)
-    TARGET=${arg#--target=}
-  ;;
-  --prefix=*)
-    PREFIX=${arg#--prefix=}
-  ;;
-  --bindir=*)
-    BINDIR=${arg#--bindir=}
-  ;;
-  --ebuild-compat)
-    EBUILD_COMPAT=1
-  ;;
-  --help)
-    print_usage
-    exit 0
-  ;;
-  *)
-    ERRORS="$ERRORS $arg"
-  ;;
-  esac
-done
-
-if [ -n "$ERRORS" ] && [ $EBUILD_COMPAT -ne 1 ]; then
-  for error in $ERRORS; do
-    echo "Unknown argument: $error"
-  done
-
-  print_usage
-  exit 1
-fi
-
-CFLAGS="$CFLAGS $(pkg-config --cflags gstreamer-0.10)"
-LDFLAGS="$LDFLAGS $(pkg-config --libs gstreamer-0.10)"
-
-rm -f include.mk
-rm -f config.h
-case $TARGET in
-  Linux)
-  ;;
-  OpenBSD|FreeBSD|NetBSD|GNU/kFreeBSD)
-    CFLAGS=$CFLAGS' -I/usr/local/include'
-    LDFLAGS=$LDFLAGS' -L/usr/local/lib'
-  ;;
-  *)
-    echo "platform not supported"
-    exit 1;
-  ;;
-esac
-
-if [ -z "$BINDIR" ]; then
-  BINDIR=$PREFIX/bin
-fi
-
-if [ -z "$MANDIR" ]; then
-  MANDIR=$PREFIX/share/man
-fi
-
-cat > include.mk <<EOF
-# this file was created automatically
-# do not edit this file directly
-# use ./configure instead
-
-TARGET := '$TARGET'
-CC := gcc
-CFLAGS := $CFLAGS
-LDFLAGS := $LDFLAGS
-STRIP := strip
-INSTALL := install
-RAGEL := ragel
-
-PREFIX := '$PREFIX'
-BINDIR := '$BINDIR'
-EOF
-
-HOSTNAME=`hostname`
-DATE=`date +"%d.%m.%Y %H:%M:%S %Z"`
-
-cat > config.h <<EOF
-/*
- * dart-sounds config header
- *
- * this file was created automatically
- * do not edit this file directly
- * use ./configure instead
- */
-
-#ifndef DART_SOUNDS_config_h_INCLUDED
-#define DART_SOUNDS_config_h_INCLUDED
-
-#define VERSION_STRING_0 "dart-sounds version $VERSION"
-#define VERSION_STRING_1 "built on $HOSTNAME, $DATE"
-
-#define TARGET "$TARGET"
-#define PREFIX "$PREFIX"
-#define BINDIR "$BINDIR"
-
-#endif
-EOF
-
-exit 0
diff --git a/dart-sounds/src/dart-sounds.c b/dart-sounds/src/dart-sounds.c
deleted file mode 100644 (file)
index 0d2fd9c..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- *  dart-sounds
- *
- *
- *  Copyright (C) 2011 Christian Pointner <equinox@realraum.at>
- *                         
- *  This file is part of dart-sounds.
- *
- *  dart-sounds is free software: you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation, either version 3 of the License, or
- *  any later version.
- *
- *  dart-sounds is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with dart-sounds. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <unistd.h>
-#include <string.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <gst/gst.h>
-#include <glib.h>
-
-struct bus_call_param
-{
-  GMainLoop *loop;
-  gint* sval;
-  GCond* cond;
-  GMutex* mutex;
-};
-
-static gboolean bus_call(GstBus *bus, GstMessage *msg, gpointer data)
-{
-  struct bus_call_param* p = (struct bus_call_param *)data;
-
-  switch(GST_MESSAGE_TYPE(msg)) 
-  {
-     case GST_MESSAGE_EOS:
-      g_mutex_lock(p->mutex);
-      *(p->sval) = 1;
-      g_mutex_unlock(p->mutex);
-      g_cond_signal(p->cond);
-      break;
-
-    case GST_MESSAGE_ERROR: {
-      GError *error;
-      gst_message_parse_error(msg, &error, NULL);
-      g_printerr("Error: %s\n", error->message);
-      if(error->domain == GST_RESOURCE_ERROR || error->domain == GST_STREAM_ERROR) {
-        g_mutex_lock(p->mutex);
-        *(p->sval) = 1;
-        g_mutex_unlock(p->mutex);
-        g_cond_signal(p->cond);
-      } else g_main_loop_quit(p->loop);
-
-      g_error_free(error);
-      break;
-    }
-    default:
-      break;
-  }
-
-  return TRUE;
-}
-
-static void on_pad_added(GstElement *element, GstPad *pad, gpointer data)
-{
-  GstPad *sinkpad;
-  GstElement *decoder = (GstElement *) data;
-  
-  sinkpad = gst_element_get_static_pad(decoder, "sink");
-  gst_pad_link(pad, sinkpad);
-  gst_object_unref(sinkpad);
-}
-
-struct play_file_param
-{
-  GstElement *pipeline;
-  GstElement *source;
-  gint* sval;
-  GCond* cond;
-  GMutex* mutex;
-  GAsyncQueue* queue;
-  const char* media_d;
-};
-
-static gpointer player(gpointer data)
-{
-  struct play_file_param *p = (struct play_file_param*)data;
-  GstElement* pipeline = p->pipeline;
-  GstElement* source = p->source;
-  gint* sval = p->sval;
-  GCond* cond = p->cond;
-  GMutex* mutex = p->mutex;
-  GAsyncQueue* queue = p->queue;
-  const char* media_d = p->media_d;
-  free(p);
-
-  g_printf("Player thread started\n");
-
-  for(;;) {
-    g_mutex_lock(mutex);
-    while((*sval) < 1)
-      g_cond_wait(cond, mutex);
-    *sval = 0;
-    g_mutex_unlock(mutex);
-
-    char* name = (char*)g_async_queue_pop(queue);
-    if(!name)
-      return NULL;
-
-    gst_element_set_state(pipeline, GST_STATE_READY);
-   
-    char* path;
-    asprintf(&path, "%s/%s.ogg", media_d, name);
-    free(name);
-    if(!path)
-      return NULL;
-
-    g_print("playing '%s'\n", path);
-    g_object_set(G_OBJECT(source), "location", path, NULL);
-    free(path);
-    gst_element_set_state(pipeline, GST_STATE_PLAYING);
-  }
-
-  return NULL;
-}
-
-GstElement* init_pipeline(GMainLoop *loop, const char* media_d, GAsyncQueue* queue, gint* sval)
-{
-  GCond* cond = g_cond_new();
-  if(!cond) {
-    g_printerr("Condition could not be created.\n");
-    return NULL;
-  }
-  GMutex* mutex = g_mutex_new();
-  if(!cond) {
-    g_printerr("Mutex could not be created.\n");
-    return NULL;
-  }
-
-  GstElement *pipeline = gst_pipeline_new("dart-sounds");
-  GstElement *source = gst_element_factory_make("filesrc", "source");
-  GstElement *demuxer = gst_element_factory_make("oggdemux", "demuxer");
-  GstElement *decoder = gst_element_factory_make("vorbisdec", "decoder");
-  GstElement *conv = gst_element_factory_make("audioconvert", "converter");
-  GstElement *filter = gst_element_factory_make("capsfilter", "filter");
-  GstElement *sink = gst_element_factory_make("autoaudiosink", "sink");
-
-  if (!pipeline || !source || !demuxer || !decoder || !conv || !filter || !sink) {
-    g_printerr("One element could not be created. Exiting.\n");
-    return NULL;
-  }
-
-  GstBus *bus = gst_pipeline_get_bus(GST_PIPELINE (pipeline));
-  struct bus_call_param* datab = malloc(sizeof(struct bus_call_param));
-  if(!datab) {
-    g_printerr("Memory error\n");
-    return NULL;
-  }
-  datab->loop = loop;
-  datab->sval = sval;
-  datab->cond = cond;
-  datab->mutex = mutex;
-  gst_bus_add_watch(bus, bus_call, datab);
-  gst_object_unref(bus);
-
-
-  GstCaps* caps = gst_caps_new_simple("audio/x-raw-int", "channels", G_TYPE_INT, 2, NULL);
-  g_object_set(G_OBJECT(filter), "caps", caps, NULL);
-
-  gst_bin_add_many(GST_BIN(pipeline), source, demuxer, decoder, conv, filter, sink, NULL);
-  gst_element_link(source, demuxer);
-  gst_element_link_many(decoder, conv, filter, sink, NULL);
-  g_signal_connect(demuxer, "pad-added", G_CALLBACK(on_pad_added), decoder);
-
-  struct play_file_param* datap = malloc(sizeof(struct play_file_param));
-  if(datap) {
-    datap->pipeline = pipeline;
-    datap->source = source;
-    datap->sval = sval;
-    datap->cond = cond;
-    datap->mutex = mutex;
-    datap->queue = queue;
-    datap->media_d = media_d;
-    g_thread_create(player, datap, 0, NULL);
-  } else {
-    g_printerr("Memory Error\n");
-    return NULL;
-  }
-
-  return pipeline;
-}
-
-struct stdin_read_param
-{
-  GMainLoop *loop;
-  GAsyncQueue *queue;
-};
-
-static gboolean stdin_read(GIOChannel* src, GIOCondition cond, gpointer data)
-{
-  struct stdin_read_param *p = (struct stdin_read_param*)data;
-  static size_t offset = 0;
-  static u_int8_t buf[100];
-
-  int len = read(0, &(buf[offset]), sizeof(buf) - offset);
-  if(len <= 0) {
-    if(len) g_printerr("Error on STDIN\n");
-    else g_print("EOF on STDIN\n");
-    g_main_loop_quit(p->loop);
-  }
-
-  offset+=len;
-  if(offset > sizeof(buf)) offset = sizeof(buf);
-  
-  size_t i = 0;
-  for(;i < offset;) {
-    if(buf[i] == '\n') {
-      buf[i] = 0;
-
-      char* tmp = strdup(buf);
-      if(tmp) g_async_queue_push(p->queue, tmp);
-
-      if(i < offset) {
-        memmove(buf, &(buf[i+1]), offset - (i+1));
-        offset -= i+1;
-        i = 0;
-      } else {
-        offset = 0;
-        break;
-      }
-    }
-    else i++;
-  }
-
-  return 1;
-}
-
-int main(int argc, char *argv[])
-{
-  if(argc < 2) {
-    fprintf(stderr, "Please specify the path to the media directory");
-    return 2;
-  }
-  char* media_d = argv[1];
-
-  gst_init(NULL, NULL);
-
-  GMainLoop *loop = g_main_loop_new(NULL, FALSE);
-  if(!loop) {
-    g_printerr("MainLoop could not be created.\n");
-    return 1;
-  }
-
-  GAsyncQueue *queue = g_async_queue_new();
-  if(!queue) {
-    g_printerr("Async queue could not be created.\n");
-    return 1;
-  }
-
-  gint sval = 1;
-  GstElement *pipeline = init_pipeline(loop, media_d, queue, &sval);
-  if(!pipeline) return 1;
-
-
-  GIOChannel* chan = g_io_channel_unix_new(0);
-  if(!chan) {
-    g_printerr("IO Channel could not be created.\n");
-    return 1;
-  }
-  struct stdin_read_param p;
-  p.loop = loop;
-  p.queue = queue;
-  if(!g_io_add_watch(chan, G_IO_IN | G_IO_ERR | G_IO_HUP, (GIOFunc)stdin_read, &p)) {
-    g_printerr("watch for IO Channel could not be added.\n");
-    return 1;
-  }
-
-  g_print("Running...\n");
-  g_main_loop_run(loop);
-
-  g_print("finished, stopping playback\n");
-  gst_element_set_state(pipeline, GST_STATE_NULL);
-
-  return 0;
-}
diff --git a/dart/Dart.pm b/dart/Dart.pm
deleted file mode 100644 (file)
index ac7775d..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-
-package Dart;
-use strict;
-use base 'Exporter';
-use Clone;
-use POSIX;
-use Term::Cap;
-use FileHandle;
-
-# new Dart(player_names=>[ 'lala', 'popo' ]);
-## Player, Rank, Active, 
-
-sub new
-{
-  my $invocant = shift;
-  my $class = ref($invocant) || $invocant;
-  my (%params) =@_;
-  my $self  = bless {}, $class;
-  die "Missing player_names" if not ref $params{player_names} eq 'ARRAY';
-  die "Missing player_names" if not @{$params{player_names}};
-  $self->{player}=[];
-  for my $player_name (@{$params{player_names}}) 
-  {
-    $self->add_player(&create_player(name=>$player_name,rank=>undef,active=>1));
-  }
-  $self->{callbacks}=$params{callbacks};
-
-  open($self->{shout_fifo}, '>>', $params{shout_fifo}) or die $!;
-  $self->{shout_fifo}->autoflush(1);
-
-  my $termios = new POSIX::Termios;
-  $termios->getattr;
-  $self->{term} = Term::Cap->Tgetent( { OSPEED => $termios->getospeed } );
-  $self->init();
-  return $self;
-}
-
-sub trace_shoot
-{
-  my $self=shift;
-  my ($property)=@_;
-  push @{$self->{trace_shoot}},$property;
-}
-
-sub get_color
-{
-  my $self=shift;
-  my ($mul,$zahl)=@_;
-  my @zahlen =  qw/20 1 18 4 13 6 10 15 2 17 3 19 7 16 8 11 14 9 12 5 25/;
-  my $counter=0;
-  $counter++ while($zahl != shift @zahlen and @zahlen);
-  $mul=0 if $mul >1;
-  my $result = ($counter+$mul )%2;
-  return $result;
-}
-
-sub init
-{
-  my $self=shift;
-  $self->{round}=0;
-  $self->{max_shoots_per_player}=3;
-  $self->{current_shoot_count}=0;
-  $self->{current_player}=0;
-  $self->{player_count}=@{$self->{player}};
-  $self->{active_player_count}=$self->{player_count};
-  $self->{trace_shoot_data}={};
-  $self->callback('init');
-}
-
-sub reset_game
-{
-  my $self=shift;
-  my @sort_player = sort { $b->{rank} <=> $a->{rank} } @{$self->{player}};
-  $self->{player}=[];
-  for my $player (@sort_player)
-  {
-    $self->add_player(&create_player(name=>$player->{name},rank=>undef,active=>1));
-  }
-  $self->init();
-}
-
-sub callback
-{
-  my $self=shift;
-  my $callbackname = shift;
-  if ($self->{callbacks}->{$callbackname})
-  {
-    return $self->{callbacks}->{$callbackname}->($self,@_);
-  } else {
-    return 1;
-  }
-}
-
-sub run
-{
-  my $self=shift;
-  my @history;
-
-  push @history, Clone::clone($self);
-  my $STDOUT = new FileHandle '>-';
-  $self->{term}->Tputs('cl', 1, $STDOUT);
-  $self->callback('before_shoot');
-  while ( my $shoot_data = <STDIN>)
-  {
-    my ($mult,$number) = split /\s+/, $shoot_data;
-
-    if ($mult =~/^\d$/)
-    {
-      die "Unexpected input" if not $number=~/^\d+$/;
-      next if not $self->{current_shoot_count} < $self->{max_shoots_per_player};
-      $self->shoot($mult,$number);
-    } elsif ($mult eq 'btn') {
-      $self->next_player();
-    } elsif ($mult eq 'undo' and $#history) {
-      pop @history;
-      $self= pop @history;
-      $self->callback('undo');
-    } elsif ($mult eq 'reset') {
-      $self->reset_game();
-    } elsif ($mult eq 'quit') {
-      return;
-    } else {
-      # shitty input
-      next;
-    }
-    push @history, Clone::clone($self);
-    $self->{term}->Tputs('cl', 1, $STDOUT);
-    $self->callback('before_shoot');
-  }
-}
-
-sub shoot
-{
-  my $self=shift;
-  my ($mult,$number)=@_;
-  if ($self->{current_shoot_count} < $self->{max_shoots_per_player})
-  {
-    $self->{current_shoot}={mult=>$mult,number=>$number};
-    $self->{current_shoot_count}++;
-    my $result = $self->callback('shoot',$mult,$number);
-    for my $trace_prop ( @{$self->{trace_shoot}})
-    {
-      push @{$self->{trace_shoot_data}{$self->{current_player}}},$self->get_current_player()->{$trace_prop};
-    }
-    return $result;
-  } else {
-    return 0;
-  }
-}
-
-sub plot_trace_shoot
-{
-  my $self=shift;
-  my $datastr;
-  for my $player_num (keys %{$self->{trace_shoot_data}})
-  {
-    $datastr.=$self->get_player($player_num)->{name}.':';
-    $datastr.= join ',',@{$self->{trace_shoot_data}{$player_num}};
-    $datastr.="\n";
-  }
-  chomp $datastr;
-  my $plotter;
-  open($plotter,"|./plot.py") or return;
-  print $plotter $datastr;
-  close $plotter;
-}
-
-sub shout_last_shoot
-{
-  my $self=shift;
-  if ($self->{current_shoot}{mult} == 2 && $self->{current_shoot}{number} == 25) {
-    $self->shout("bullseye");
-    return;
-  } elsif ($self->{current_shoot}{mult} == 2 ) {
-    $self->shout('double');
-  } elsif ($self->{current_shoot}{mult} == 3) {
-    $self->shout('triple');
-  }
-
-  $self->shout($self->{current_shoot}{number});
-}
-
-sub shout
-{
-  my $self=shift;
-  my ($what)=@_;
-  my $fh = $self->{shout_fifo};
-  if ($what eq 25)
-  {
-    print $fh "bull\n";
-  } else {
-    print $fh "$what\n";
-  }
-}
-
-sub get_current_player
-{
-  my $self=shift;
-  return $self->get_player($self->{current_player});
-}
-
-sub get_player
-{
-  my $self=shift;
-  my ($player_idx)=@_;
-  die "Illegal Player Index $player_idx" if $player_idx < 0 or $player_idx >= $self->{player_count};
-  return $self->{player}[$player_idx];
-}
-
-sub next_player
-{
-  my $self=shift;
-  $self->callback('before_next_player');
-  $self->{current_shoot_count}=0;
-  ($self->{current_player},my $new_round)=$self->get_next_active_player();
-  $self->shout("player");
-  $self->shout($self->get_current_player()->{name});
-  $self->next_round() if $new_round;
-  return $self->callback('next_player');
-}
-
-sub get_next_active_player
-{
-  my $self=shift;
-  my $players_ref = $self->{player};
-  my $current_player = $self->{current_player};
-  my $num_players=@$players_ref;
-  my $new_round=0;
-  do
-  {
-    $current_player++;
-    if($current_player>=$num_players)
-    {
-      $self->reset_game() if $new_round;
-      $current_player=0;
-      $new_round=1;
-    }
-  }
-  while (not $self->{player}->[$current_player]{active});
-  return ($current_player,$new_round);
-}
-
-sub finish_player_round
-{
-  my $self=shift;
-  $self->{current_shoot_count} = $self->{max_shoots_per_player};
-}
-
-sub next_round
-{
-  my $self=shift;
-  $self->{round}++;
-  return $self->callback('next_round');
-}
-
-sub win
-{
-  my $self=shift;
-  $self->shout('win');
-  $self->deactivate_current_player($self->{player_count}-$self->{active_player_count}+1);
-  if ($self->{active_player_count}==1)
-  {
-    $self->next_player();
-    $self->shout('lose');
-    $self->deactivate_current_player($self->{player_count}-$self->{active_player_count}+1);
-  }
-}
-
-sub lose
-{
-  my $self=shift;
-  $self->shout('lose');
-  $self->deactivate_current_player($self->{active_player_count});
-  if ($self->{active_player_count}==1)
-  {
-    $self->next_player();
-    $self->shout('win');
-    $self->deactivate_current_player($self->{active_player_count});
-  }
-}
-
-sub deactivate_current_player
-{
-  my $self=shift;
-  my ($rank)=@_;
-  $self->{player}[$self->{current_player}]{rank}=$rank;
-  $self->{player}[$self->{current_player}]{active}=0;
-  $self->{active_player_count}--;
-  $self->end_game() if not $self->{active_player_count};
-}
-
-
-sub end_game
-{
-  my $self=shift;
-  $self->shout('end_game');
-  return $self->callback('end_game');
-}
-
-sub add_player
-{ 
-  my $self=shift;
-  my ($player) = @_;
-  push @{$self->{player}}, $player;
-}
-
-sub create_player
-{
-  return {@_};
-  #my %player_attributes=@_;
-  #my $player = {%player_attributes};
-  #return $player;
-}
-
-1;
diff --git a/dart/Makefile b/dart/Makefile
deleted file mode 100755 (executable)
index 8697f9a..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-## see README file
-
-TARGET = dart
-#TARGET = find_onewire
-INSTALL_DIR = $(PWD)/arduino
-PORT = /dev/ttyUSB0
-UPLOAD_RATE = 57600
-AVRDUDE_PROGRAMMER = stk500v1
-MCU = atmega328p
-F_CPU = 16000000
-
-############################################################################
-# Below here nothing should be changed...
-
-RESET_TTY_DIR=../reset_tty/
-RESET_TTY=$(RESET_TTY_DIR)reset_tty
-ARDUINO = $(INSTALL_DIR)/hardware/cores/arduino
-AVR_TOOLS_PATH = /usr/bin
-SRC =  $(ARDUINO)/pins_arduino.c $(ARDUINO)/wiring.c \
-$(ARDUINO)/wiring_analog.c $(ARDUINO)/wiring_digital.c \
-$(ARDUINO)/wiring_pulse.c $(ARDUINO)/wiring_serial.c \
-$(ARDUINO)/wiring_shift.c $(ARDUINO)/WInterrupts.c
-CXXSRC = $(ARDUINO)/HardwareSerial.cpp $(ARDUINO)/Print.cpp $(ARDUINO)/WMath.cpp
-FORMAT = ihex
-
-
-# Name of this Makefile (used for "make depend").
-MAKEFILE = Makefile
-
-# Debugging format.
-# Native formats for AVR-GCC's -g are stabs [default], or dwarf-2.
-# AVR (extended) COFF requires stabs, plus an avr-objcopy run.
-DEBUG = stabs
-
-OPT = s
-
-# Place -D or -U options here
-CDEFS = -DF_CPU=$(F_CPU)
-CXXDEFS = -DF_CPU=$(F_CPU)
-CINCS =  -I$(ARDUINO)
-CXXINCS = -I$(ARDUINO)
-
-# Compiler flag to set the C Standard level.
-# c89   - "ANSI" C
-# gnu89 - c89 plus GCC extensions
-# c99   - ISO C99 standard (not yet fully implemented)
-# gnu99 - c99 plus GCC extensions
-CSTANDARD = -std=gnu99
-CDEBUG = -g$(DEBUG)
-CWARN = -Wall -Wstrict-prototypes
-CTUNING = -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
-#CEXTRA = -Wa,-adhlns=$(<:.c=.lst)
-
-CFLAGS = $(CDEBUG) $(CDEFS) $(CINCS) -O$(OPT) $(CWARN) $(CSTANDARD) $(CEXTRA)
-CXXFLAGS = $(CDEFS) $(CXXINCS) -O$(OPT)
-#ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs 
-LDFLAGS = -lm
-
-
-# Programming support using avrdude. Settings and variables.
-AVRDUDE_PORT = $(PORT)
-AVRDUDE_WRITE_FLASH = -U flash:w:applet/$(TARGET).hex
-AVRDUDE_FLAGS = -V -F -C $(INSTALL_DIR)/hardware/tools/avrdude.conf \
--p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) \
--b $(UPLOAD_RATE)
-
-# Program settings
-CC = $(AVR_TOOLS_PATH)/avr-gcc
-CXX = $(AVR_TOOLS_PATH)/avr-g++
-OBJCOPY = $(AVR_TOOLS_PATH)/avr-objcopy
-OBJDUMP = $(AVR_TOOLS_PATH)/avr-objdump
-AR  = $(AVR_TOOLS_PATH)/avr-ar
-SIZE = $(AVR_TOOLS_PATH)/avr-size
-NM = $(AVR_TOOLS_PATH)/avr-nm
-AVRDUDE = $(AVR_TOOLS_PATH)/avrdude
-REMOVE = rm -f
-MV = mv -f
-
-# Define all object files.
-OBJ = $(SRC:.c=.o) $(CXXSRC:.cpp=.o) $(ASRC:.S=.o) 
-
-# Define all listing files.
-LST = $(ASRC:.S=.lst) $(CXXSRC:.cpp=.lst) $(SRC:.c=.lst)
-
-# Combine all necessary flags and optional flags.
-# Add target processor to flags.
-ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS)
-ALL_CXXFLAGS = -mmcu=$(MCU) -I. $(CXXFLAGS)
-ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
-
-
-# Default target.
-all: applet_files build sizeafter
-
-build: elf hex 
-
-applet_files: $(TARGET).pde
-       # Here is the "preprocessing".
-       # It creates a .cpp file based with the same name as the .pde file.
-       # On top of the new .cpp file comes the WProgram.h header.
-       # At the end there is a generic main() function attached.
-       # Then the .cpp file will be compiled. Errors during compile will
-       # refer to this new, automatically generated, file. 
-       # Not the original .pde file you actually edit...
-       test -d applet || mkdir applet
-       echo '#include "WProgram.h"' > applet/$(TARGET).cpp
-       cat $(TARGET).pde >> applet/$(TARGET).cpp
-       cat $(ARDUINO)/main.cxx >> applet/$(TARGET).cpp
-
-elf: applet/$(TARGET).elf
-hex: applet/$(TARGET).hex
-eep: applet/$(TARGET).eep
-lss: applet/$(TARGET).lss 
-sym: applet/$(TARGET).sym
-
-# Program the device.  
-upload: applet/$(TARGET).hex $(RESET_TTY) 
-       $(RESET_TTY) $(PORT)
-       $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH)
-
-
-       # Display size of file.
-HEXSIZE = $(SIZE) --target=$(FORMAT) applet/$(TARGET).hex
-ELFSIZE = $(SIZE)  applet/$(TARGET).elf
-sizebefore:
-       @if [ -f applet/$(TARGET).elf ]; then echo; echo $(MSG_SIZE_BEFORE); $(HEXSIZE); echo; fi
-
-sizeafter:
-       @if [ -f applet/$(TARGET).elf ]; then echo; echo $(MSG_SIZE_AFTER); $(HEXSIZE); echo; fi
-
-
-# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
-COFFCONVERT=$(OBJCOPY) --debugging \
---change-section-address .data-0x800000 \
---change-section-address .bss-0x800000 \
---change-section-address .noinit-0x800000 \
---change-section-address .eeprom-0x810000 
-
-
-coff: applet/$(TARGET).elf
-       $(COFFCONVERT) -O coff-avr applet/$(TARGET).elf $(TARGET).cof
-
-
-extcoff: $(TARGET).elf
-       $(COFFCONVERT) -O coff-ext-avr applet/$(TARGET).elf $(TARGET).cof
-
-
-.SUFFIXES: .elf .hex .eep .lss .sym
-
-.elf.hex:
-       $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
-
-.elf.eep:
-       -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
-       --change-section-lma .eeprom=0 -O $(FORMAT) $< $@
-
-# Create extended listing file from ELF output file.
-.elf.lss:
-       $(OBJDUMP) -h -S $< > $@
-
-# Create a symbol table from ELF output file.
-.elf.sym:
-       $(NM) -n $< > $@
-
-       # Link: create ELF output file from library.
-applet/$(TARGET).elf: $(TARGET).pde applet/core.a 
-       $(CC) $(ALL_CFLAGS) -o $@ applet/$(TARGET).cpp -L. applet/core.a $(LDFLAGS)
-
-applet/core.a: $(OBJ)
-       @for i in $(OBJ); do echo $(AR) rcs applet/core.a $$i; $(AR) rcs applet/core.a $$i; done
-
-
-
-# Compile: create object files from C++ source files.
-.cpp.o:
-       $(CXX) -c $(ALL_CXXFLAGS) $< -o $@ 
-
-# Compile: create object files from C source files.
-.c.o:
-       $(CC) -c $(ALL_CFLAGS) $< -o $@ 
-
-
-# Compile: create assembler files from C source files.
-.c.s:
-       $(CC) -S $(ALL_CFLAGS) $< -o $@
-
-
-# Assemble: create object files from assembler source files.
-.S.o:
-       $(CC) -c $(ALL_ASFLAGS) $< -o $@
-
-
-
-# Target: clean project.
-clean:
-       $(REMOVE) applet/$(TARGET).hex applet/$(TARGET).cpp applet/$(TARGET).eep applet/$(TARGET).cof applet/$(TARGET).elf \
-       applet/$(TARGET).map applet/$(TARGET).sym applet/$(TARGET).lss applet/core.a \
-       $(OBJ) $(LST) $(SRC:.c=.s) $(SRC:.c=.d) $(CXXSRC:.cpp=.s) $(CXXSRC:.cpp=.d)
-
-depend:
-       if grep '^# DO NOT DELETE' $(MAKEFILE) >/dev/null; \
-       then \
-               sed -e '/^# DO NOT DELETE/,$$d' $(MAKEFILE) > \
-                       $(MAKEFILE).$$$$ && \
-               $(MV) $(MAKEFILE).$$$$ $(MAKEFILE); \
-       fi
-       echo '# DO NOT DELETE THIS LINE -- make depend depends on it.' \
-               >> $(MAKEFILE); \
-       $(CC) -M -mmcu=$(MCU) $(CDEFS) $(CINCS) $(SRC) $(ASRC) >> $(MAKEFILE)
-
-$(RESET_TTY): 
-       make -C $(RESET_TTY_DIR)
-
-.PHONY:        all build elf hex eep lss sym program coff extcoff clean depend applet_files sizebefore sizeafter
diff --git a/dart/README b/dart/README
deleted file mode 100644 (file)
index f7cade4..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-Realraum tuer instructions:
-
-1. install avr-gcc and tools:
-    $ sudo aptitude install gcc-avr avr-libc avrdude
-
-2. download arduino version 0015 exactly:
-    $ wget http://arduino.googlecode.com/files/arduino-0015-linux.tgz
-
-3. unpack and add link:
-    $ tar -xzf arduino-0015-linux.tgz
-    $ ln -s arduino-0015 arduino
-    
-4. update Makefile variables INSTALL_DIR and PORT to your needs
-
-5. build it
-    $ make
-
-6. flash it (press reset)
-    $ make upload 
-
-
-
-Arduino OneWire Lib 2.0:
-http://www.pjrc.com/teensy/td_libs_OneWire.html
-
-Dallas Temperature Library:
-http://download.milesburton.com/Arduino/MaximTemperature/DallasTemperature_350.zip
diff --git a/dart/dart-301.pl b/dart/dart-301.pl
deleted file mode 120000 (symlink)
index 1b31b1c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-dart-x01.pl
\ No newline at end of file
diff --git a/dart/dart-42.pl b/dart/dart-42.pl
deleted file mode 120000 (symlink)
index 1b31b1c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-dart-x01.pl
\ No newline at end of file
diff --git a/dart/dart-501.pl b/dart/dart-501.pl
deleted file mode 120000 (symlink)
index 1b31b1c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-dart-x01.pl
\ No newline at end of file
diff --git a/dart/dart-701.pl b/dart/dart-701.pl
deleted file mode 120000 (symlink)
index 1b31b1c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-dart-x01.pl
\ No newline at end of file
diff --git a/dart/dart-cricket.pl b/dart/dart-cricket.pl
deleted file mode 100755 (executable)
index 55b4d02..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-#!/usr/bin/perl
-use strict;
-use Dart;
-
-our $sieb =1; # Spielmodus Zahlensieb
-
-
-$|=1;
-my ($shout_fifo, @player) = @ARGV;
-
-my $dart = new Dart(player_names=>\@player, 
-                    shout_fifo=>$shout_fifo,
-                    callbacks => {
-                      shoot=>\&shoot,   
-                      next_player=>\&next_player,
-                      before_shoot=>\&print_score,
-                      init=>\&init,
-                    }
-                  );
-exit $dart->run();
-
-### ===============================
-
-sub gueltig
-{
-  my ($zahl,$mult) = @_;
-  return $zahl>1;
-}
-
-sub init
-{
-  my $self=shift;
-  for my $i (0..21)
-  {
-    for my $player_idx (0..($self->{player_count}-1))
-    {
-      my $zahl = $i>20?25:$i;
-      next if $zahl > 0 and not gueltig($zahl);
-      $self->get_player($player_idx)->{score}->{$zahl}=0;
-    }
-  }
-}
-
-sub win_condition
-{
-  my ($self) = @_;
-  for my $i (keys %{$self->get_current_player()->{score}})
-  {
-    next if not $i;
-    return if $self->get_current_player()->{score}->{$i}<3;
-  }
-  my $score = $self->get_current_player()->{score}->{0};
-  for my $player_idx (0..($self->{player_count}-1))
-  {
-    next if not $self->get_player($player_idx)->{active};
-    return if $score > $self->get_player($player_idx)->{score}->{0};
-  }
-  return 1;
-}
-
-sub shoot
-{
-  my $self=shift;
-  my ($mult,$zahl)=@_;
-  $self->get_current_player()->{score} = {} if not $self->get_current_player()->{score};
-  my $score=$self->get_current_player()->{score};
-
-  if (not gueltig($zahl,$mult))
-  {
-    $self->shout("miss");
-    return;
-  }
-  my ($scho,$scored,$self_scored);
-  while($mult--)
-  {
-
-    if ($score->{$zahl}<3)
-    {
-      $score->{$zahl}++;
-      $self_scored++;
-      if ($main::sieb && ($score->{$zahl} == 3))
-      {
-        for my $count (2..21)
-        {
-          $count = 25 if $count ==21;
-          if ( ($count % $zahl) == 0)
-          {
-            $score->{$count} = 3;
-          }
-        }
-      }
-    } else {
-      $scho++;
-      for my $player_idx (0..($self->{player_count}-1))
-      {
-        next if not $self->get_player($player_idx)->{active};
-        if ($self->get_player($player_idx)->{score}->{$zahl}<3)
-        {
-          $self->get_player($player_idx)->{score}->{0}+=$zahl;
-          $scored++;
-        }
-      }
-    }
-  }
-  $self->shout_last_shoot() if ($scored || $self_scored);
-  $self->shout("scored") if $scored;
-  $self->shout("scho") if $scho && not $scored;
-  $self->win() if &win_condition($self);
-}
-
-sub next_player
-{
-  my $self=shift;
-}
-
-sub print_score
-{
-  my ($self)=@_;
-  printf "\n\n";
-  printf "Runde\t%d\n\n",$self->{round};
-  for my $player_idx (0..($self->{player_count}-1))
-  {
-    printf "%s\t", ($player_idx == $self->{current_player})?"(".$self->get_player($player_idx)->{name}.")":$self->get_player($player_idx)->{name};
-  }
-  print "\n";
-  for my $i (1..21)
-  {
-    for my $player_idx (0..($self->{player_count}-1))
-    {
-      my $zahl = $i>20?25:$i;
-      next if not gueltig($zahl);
-      printf ("%2d %s    ",$zahl, '#' x $self->get_player($player_idx)->{score}->{$zahl}. '-' x (3-$self->get_player($player_idx)->{score}->{$zahl}));
-    }
-    print "\n";
-  }
-  for my $player_idx (0..($self->{player_count}-1))
-  {
-    printf ("%3d\t", $self->get_player($player_idx)->{score}->{0});
-  }
-}
diff --git a/dart/dart-red-101.pl b/dart/dart-red-101.pl
deleted file mode 120000 (symlink)
index eb00505..0000000
+++ /dev/null
@@ -1 +0,0 @@
-dart-red-x01.pl
\ No newline at end of file
diff --git a/dart/dart-red-x01.pl b/dart/dart-red-x01.pl
deleted file mode 100755 (executable)
index b06b8a6..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/perl
-use strict;
-use Dart;
-
-$|=1;
-my $maxScore = $0;
-$maxScore =~ s/.*\-(\d+).pl$/\1/;
-my ($shout_fifo, @player) = @ARGV;
-
-my $dart = new Dart(player_names=>\@player, 
-                    shout_fifo=>$shout_fifo,
-                    callbacks => {
-                      shoot=>\&shoot,   
-                      next_player=>\&next_player,
-                      before_shoot=>\&print_score,
-                      init=>\&init,
-                      end_game=>\&Dart::plot_trace_shoot,
-                    }
-                  );
-$dart->trace_shoot('score');
-exit $dart->run();
-
-### ===============================
-
-sub init
-{
-  my $self=shift;
-  for my $player_idx (0..($self->{player_count}-1))
-  {
-    $self->get_player($player_idx)->{score} = $maxScore;
-  }
-}
-
-sub win_condition
-{
-  my ($self) = @_;
-  return $self->get_current_player()->{score} == 0;
-}
-
-sub shoot
-{
-  my $self=shift;
-  my ($mult,$zahl)=@_;
-  my $color = $self->get_color($mult,$zahl)?1:-1; 
-  if ($color <0)
-  {
-    $self->shout("plus");
-  }else{
-    $self->shout("minus");
-  }
-  $self->get_current_player()->{score} -= $color *$mult * $zahl;
-  $self->shout_last_shoot();
-  $self->win() if &win_condition($self);
-}
-
-sub next_player
-{
-  my $self=shift;
-  $self->get_current_player()->{last_score} = $self->get_current_player()->{score};
-}
-
-sub print_score
-{
-  my ($self)=@_;
-  printf "\n\n";
-  printf "Runde\t%d\n\n",$self->{round};
-  for my $player_idx (0..($self->{player_count}-1))
-  {
-    printf "%s\t", ($player_idx == $self->{current_player})?"(".$self->get_player($player_idx)->{name}.")":$self->get_player($player_idx)->{name};
-  }
-  print "\n";
-  for my $player_idx (0..($self->{player_count}-1))
-  {
-    printf "%s\t", $self->get_player($player_idx)->{score};
-  }
-  print "\n";
-}
diff --git a/dart/dart-schiffe.pl b/dart/dart-schiffe.pl
deleted file mode 100755 (executable)
index bf3652f..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-#!/usr/bin/perl
-use strict;
-use Dart;
-use Clone;
-use Term::ANSIColor;
-our @x= qw/ 20 1 18 4 13 6 10 15 2 17 /;
-our @y = qw/ 3 19 7 16 8 11 14 9 12 5 /;
-our %x = array_to_hash(@x);
-our %y = array_to_hash(@y);
-our @schiffe = reverse sort qw/ 4 5 6 /;
-
-$|=1;
-my ($shout_fifo, @player) = @ARGV;
-
-my $dart = new Dart(player_names=>\@player, 
-                    shout_fifo=>$shout_fifo,
-                    callbacks => {
-                      shoot=>\&shoot,   
-                      before_shoot=>\&print_score,
-                      init=>\&init,
-                    }
-                  );
-exit $dart->run();
-
-sub array_to_hash
-{
-  my @array=@_;
-  my %hash;
-  my $i=1;
-  for my $key (@array)
-  {
-    $hash{$key}=$i++;
-  }
-  return %hash;
-}
-
-### ===============================
-
-sub init
-{
-  my $self=shift;
-  for my $x (@main::x)
-  {
-    for my $y (@main::y)
-    {
-      $self->{empty_matrix}->{$x}{$y}=0;
-    }
-  }
-  for my $player_idx (0..($self->{player_count}-1))
-  {
-    $self->get_player($player_idx)->{sel_x}=0;
-    $self->get_player($player_idx)->{sel_y}=0;
-    $self->get_player($player_idx)->{mult_x}=0;
-    $self->get_player($player_idx)->{mult_y}=0;
-    delete ($self->get_player($player_idx)->{last_hit});
-    $self->get_player($player_idx)->{score}=Clone::clone($self->{empty_matrix});
-    $self->get_player($player_idx)->{highlight}{shoot}=Clone::clone($self->{empty_matrix});
-    $self->get_player($player_idx)->{highlight}{selected}=Clone::clone($self->{empty_matrix});
-    for my $schiff (@main::schiffe)
-    {
-      my $valid=0;
-      VALIDSHIP: while(not $valid)
-      {
-        my $x_start_idx = int(rand(scalar @main::x));
-        my $y_start_idx = int(rand(scalar @main::y));
-        my $direction = int(rand(2));
-        my $x_stop_idx = $x_start_idx + ($schiff-1) * $direction;
-        my $y_stop_idx = $y_start_idx + ($schiff-1) * (1-$direction);
-        #next if ($x_stop_idx > $#main::x) or ($y_stop_idx > $#main::y);
-        for my $x_idx ($x_start_idx-1 .. $x_stop_idx+1)
-        {
-          for my $y_idx ($y_start_idx-1 .. $y_stop_idx+1)
-          {
-            next VALIDSHIP if $self->get_player($player_idx)->{score}->{$main::x[$x_idx % @main::x]}{$main::y[$y_idx % @main::y]};
-          }
-        }
-        for my $x_idx ($x_start_idx .. $x_stop_idx)
-        {
-          for my $y_idx ($y_start_idx .. $y_stop_idx)
-          {
-            $self->get_player($player_idx)->{score}->{$main::x[$x_idx % @main::x]}{$main::y[$y_idx % @main::y]}="s";
-          }
-        }
-        $valid=1;
-      }
-    }
-  }
-}
-
-sub win_condition
-{
-  my ($self) = @_;
-  for my $x (@main::x)
-  {
-    for my $y (@main::y)
-    {
-      return if $self->get_current_player()->{score}->{$x}{$y} eq 's';
-    }
-  }
-  return 1;
-}
-
-sub magic_for
-{
-  my $self=shift;
-  my ($x_middle,$mult_x,$y_middle,$mult_y,$sub) = @_;
-  #warn  join "\t",($x_middle,$mult_x,$y_middle,$mult_y,$sub);
-  my @return;
-  die "no function" if not ref $sub;
-  my $start_x = $x_middle  ? $main::x{$x_middle}-1 - $mult_x+1 : 0;
-  my $stop_x  = $x_middle  ? $main::x{$x_middle}-1 + $mult_x-1 : $#main::x;
-  my $start_y = $y_middle  ? $main::y{$y_middle}-1 - $mult_y+1 : 0;
-  my $stop_y  = $y_middle  ? $main::y{$y_middle}-1 + $mult_y-1 : $#main::y;
-  for my $x_idx ($start_x..$stop_x) 
-  {
-    my $x = $x_idx> $#main::x ? $main::x[$x_idx-@main::x] : $main::x[$x_idx]; 
-    for my $y_idx ($start_y..$stop_y) 
-    {
-      my $y = $y_idx> $#main::y ? $main::y[$y_idx-@main::y] : $main::y[$y_idx]; 
-      push @return, $sub->($self,$x,$y);
-    }
-  }
-  return @return;
-}
-
-sub set_highlight_selected
-{
-  my ($self,$x,$y) = @_;
-  $self->get_current_player->{highlight}{selected}{$x}{$y}=1;
-}
-
-sub set_shoot
-{
-  my ($self,$x,$y) = @_;
-  my $return;
-  my $player=$self->get_current_player();
-  $player->{highlight}{shoot}->{$x}{$y} = 1;
-  if ($player->{score}->{$x}{$y} eq 's')
-  {
-    $return = 'scored';
-    $player->{score}->{$x}{$y} = 'X';
-  } elsif (not $player->{score}->{$x}{$y}) {  
-    $player->{score}->{$x}{$y} = 'o';
-    $return = 'miss';
-  } elsif ($player->{score}->{$x}{$y} eq 'o') {  
-    $return = 'scho';
-  }
-  return $return;
-}
-
-sub shoot
-{
-  my $self=shift;
-  my ($mult,$zahl)=@_;
-  my $player=$self->get_current_player();
-  delete ($player->{last_hit});
-  $player->{highlight}{shoot}=Clone::clone($self->{empty_matrix});
-  $player->{highlight}{selected}=Clone::clone($self->{empty_matrix});
-
-  if ( (not $main::x{$zahl}) and (not $main::y{$zahl}) )
-  {
-    $self->shout("miss");
-    return;
-  } elsif ($main::x{$zahl}) { 
-    $player->{sel_x}=$zahl;
-    $player->{mult_x}=$mult;
-    &magic_for($self,$zahl,$mult,undef,undef,\&set_highlight_selected);
-  } elsif ($main::y{$zahl}) { 
-    $player->{sel_y}=$zahl;
-    $player->{mult_y}=$mult;
-    &magic_for($self,undef,undef,$zahl,$mult,\&set_highlight_selected);
-  }
-  $self->shout_last_shoot();
-  if ($player->{sel_x} && $player->{sel_y})
-  {
-    $player->{highlight}{selected}=Clone::clone($self->{empty_matrix});
-    my $x_middle = $player->{sel_x};
-    my $y_middle = $player->{sel_y};
-    my $mult_x = $player->{mult_x};
-    my $mult_y = $player->{mult_y};
-    $player->{last_hit}={sel_x=>$x_middle, sel_y=>$y_middle, mult_x=>$mult_x, mult_y=>$mult_y};
-    $player->{sel_x}=0;
-    $player->{sel_y}=0;
-    $player->{mult_x}=0;
-    $player->{mult_y}=0;
-    my @sound_refs = &magic_for($self,$x_middle,$mult_x,$y_middle,$mult_y,\&set_shoot);
-    my %sound;
-    map {$sound{$_}++}  @sound_refs;
-    if ($sound{scored})
-    {
-      $self->shout("scored");
-    } elsif ($sound{miss}) {
-      $self->shout("miss");
-    } elsif ($sound{scho}) {
-      $self->shout("scho");
-    }
-
-  }
-  $self->win() if &win_condition($self);
-}
-
-
-# print with color
-sub prcl
-{
-  my $self = shift;
-  my ($color,@what)=@_;
-  print color($color) if defined $color;
-  print @what;
-  print color('reset');
-}
-
-sub get_color
-{
-  my $self = shift;
-  my ($x,$y)=@_;
-  my $player = $self->get_current_player();
-  if ($player->{highlight}{shoot}{$x}{$y})
-  {
-    return 'bold red';
-  } elsif ($player->{highlight}{selected}{$x}{$y}) {
-    return 'black on_green';
-  } elsif ($player->{score}{$x}{$y} eq 'o') {
-    return 'blue';
-  } elsif ($player->{score}{$x}{$y} eq 'X') {
-    return 'bold yellow';
-  }
-  return 'white';
-}
-
-sub prxy
-{
-  my $self = shift;
-  my ($x,$y,@what)=@_;
-  &prcl($self,&get_color($self,$x,$y),@what);
-}
-
-sub print_score
-{
-  my ($self)=@_;
-  my $player = $self->get_current_player();
-  my $sel_x= $player->{sel_x};
-  my $sel_y= $player->{sel_y};
-  my $mult_x=$player->{mult_x};
-  my $mult_y=$player->{mult_y};
-  printf "Runde\t%d\n\n",$self->{round};
-  printf "Player\t%s\t\tSchuss\t%d\n\n",$player->{name},$self->{current_shoot_count};
-  printf "x:  %dx%2d\n",$player->{mult_x},$player->{sel_x};
-  printf "y:  %dx%2d\n",$player->{mult_y},$player->{sel_y};
-
-  print "  ";
-  for my $y (@main::y)
-  {
-    printf " %2d",$y;
-  }
-  print "\n";
-  for my $x (@main::x)
-  {
-    printf "%2d",$x;
-    for my $y (@main::y)
-    {
-      my $field = $self->get_current_player()->{score}->{$x}{$y};
-      if ($field eq 'X' or $field eq 'o')
-      {
-        &prxy($self,$x,$y,"  $field");
-      } else {
-        &prxy($self,$x,$y,"  .");
-      }
-    }
-    printf "  %d",$x;
-    print "\n";
-  }
-  print "  ";
-  for my $y (@main::y)
-  {
-    printf " %2d",$y;
-  }
-  print "\n\n";
-}
diff --git a/dart/dart-template.pl b/dart/dart-template.pl
deleted file mode 100644 (file)
index f6a3e26..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/usr/bin/perl
-use strict;
-use Dart;
-
-$|=1;
-my (@player) = @ARGV;
-
-my $dart = new Dart(player_names=>\@player, 
-                    callbacks => {
-                      shoot=>\&shoot,   
-                      next_player=>\&next_player,
-                      before_shoot=>\&print_score,
-                      init=>\&init,
-                    }
-                  );
-exit $dart->run();
-
-### ===============================
-
-sub init
-{
-  my $self=shift;
-  # TODO
-}
-
-sub win_condition
-{
-  my ($self) = @_;
-  # TODO
-  return 0;
-}
-
-sub shoot
-{
-  my $self=shift;
-  my ($mult,$zahl)=@_;
-  # $self->get_current_player()->{score} = {} if not $self->get_current_player()->{score}; 
-
-  # if (not gueltig($zahl,$mult))
-  # {
-  #   $self->shout("miss");
-  #   return;
-  # }
-
-  # $self->shout_last_shoot() if ($scored || $self_scored);
-  # $self->shout("scored") if $scored;
-  # $self->shout("scho") if $scho && not $scored;
-  # $self->win() if &win_condition($self);
-}
-
-sub next_player
-{
-  my $self=shift;
-
-  # TODO
-}
-
-sub print_score
-{
-  my ($self)=@_;
-  printf STDERR "\n\n";
-  printf STDERR "Runde\t%d\n\n",$self->{round};
-  for my $player_idx (0..($self->{player_count}-1))
-  {
-    printf STDERR "%s\t", ($player_idx == $self->{current_player})?"(".$self->get_player($player_idx)->{name}.")":$self->get_player($player_idx)->{name};
-  }
-  print STDERR "\n";
-  
-  # TODO
-}
diff --git a/dart/dart-x01.pl b/dart/dart-x01.pl
deleted file mode 100755 (executable)
index de5a7f3..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/usr/bin/perl
-use strict;
-use Dart;
-
-$|=1;
-my $maxScore = $0;
-$maxScore =~ s/.*\-(\d+).pl$/\1/;
-my ($shout_fifo, @player) = @ARGV;
-
-my $dart = new Dart(player_names=>\@player, 
-                    shout_fifo=>$shout_fifo,
-                    callbacks => {
-                      shoot=>\&shoot,   
-                      next_player=>\&next_player,
-                      before_shoot=>\&print_score,
-                      init=>\&init,
-                    }
-                  );
-
-
-exit $dart->run();
-
-### ===============================
-
-sub init
-{
-  my $self=shift;
-
-  for my $player_idx (0..($self->{player_count}-1))
-  {
-    $self->get_player($player_idx)->{score} = $maxScore;
-  }
-}
-
-sub win_condition
-{
-  my ($self) = @_;
-  return $self->get_current_player()->{score} == 0;
-}
-
-sub shoot
-{
-  my $self=shift;
-  my ($mult,$zahl)=@_;
-  
-  if ($self->get_current_player()->{score} >= $mult * $zahl)
-  {
-    $self->get_current_player()->{score} -= $mult * $zahl;
-    $self->shout_last_shoot();
-    $self->win() if &win_condition($self);
-  }
-  else
-  {
-    $self->shout("miss");
-    $self->get_current_player()->{score} = $self->get_current_player()->{last_score};
-    $self->finish_player_round();
-  }
-}
-
-sub next_player
-{
-  my $self=shift;
-  $self->get_current_player()->{last_score} = $self->get_current_player()->{score};
-}
-
-sub print_score
-{
-  my ($self)=@_;
-  printf "\n\n";
-  printf "Runde\t%d\n\n",$self->{round};
-  for my $player_idx (0..($self->{player_count}-1))
-  {
-    printf "%s\t", ($player_idx == $self->{current_player})?"(".$self->get_player($player_idx)->{name}.")":$self->get_player($player_idx)->{name};
-  }
-  print "\n";
-  for my $player_idx (0..($self->{player_count}-1))
-  {
-    printf "%s\t", $self->get_player($player_idx)->{score};
-  }
-  print "\n";
-}
diff --git a/dart/dart.pde b/dart/dart.pde
deleted file mode 100644 (file)
index 6819665..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-#include <avr/io.h>
-#include <avr/interrupt.h>
-#include <inttypes.h>
-
-//Player+Handycap BTN analog 5
-#define PLAYER_SIG_PORTC B00100000
-//INPUT PINS digital 2-7 PIND
-#define PIND_MASK B11111100
-//INPUT PINS digitat 8-12 PINB
-#define PINB_MASK B00011111
-//INPUT PINS analog 0-4 PINC
-#define PINC_MASK B00011111
-
-#define INPUT_SIG_PORTD B11000000
-#define INPUT_SIG_PORTB B00011111
-#define INPUT_SIG_PORTC B00010000
-
-#define OUTPUT_SIG_PORTB ( PINB_MASK & ~INPUT_SIG_PORTB )
-// B00011111 & ! B00011111 = 0
-#define OUTPUT_SIG_PORTC ( PINC_MASK & ~INPUT_SIG_PORTC )
-// B00011111 & ! B00010000 = B00001111
-#define OUTPUT_SIG_PORTD ( PIND_MASK & ~INPUT_SIG_PORTD )
-// B11111100 & ! B11000000 = 00111100
-union union16 {
-  byte uint8[2];
-  uint16_t uint16;
-}; 
-
-uint8_t zahlen[] = {115,110,46,78,51,83,82,68,99,105,41,73,35,67,50,36,113,108,44,76,49,81,114,100,98,101,37,69,34,66,102,109,111,116,52,84,47,79,57,89,106,97,33,65,42,74,38,45,112,104,40,72,48,80,0,0,103,107,43,75,39,71,70,77} ;
-
-union union32 {
-  byte uint8[4];
-  uint16_t uint16[2];
-  uint32_t uint32;
-}; 
-
-typedef unsigned char byte;
-
-void start_timer()
-{
-  // timer 1: 2 ms
-  TCCR1A = 0;                    // prescaler 1:8, WGM = 4 (CTC)
-  TCCR1B = 1<<WGM12 | 1<<CS10  | 1<<CS11;    // 
-  OCR1A = 65000;        // (1+159)*8 = 1280 -> 0.08ms @ 16 MHz -> 1*alpha
-//  OCR1A = 207;        // (1+207)*8 = 1664 -> 0.104ms @ 16 MHz -> 1*alpha
-  TCNT1 = 0;          // reseting timer
-  TIMSK1 = 1<<OCIE1A; // enable Interrupt
-}
-
-void stop_timer() // stop the timer
-{
-  // timer1
-  TCCR1B = 0; // no clock source
-  TIMSK1 = 0; // disable timer interrupt
-}
-
-ISR(TIMER1_COMPA_vect)
-{
-  stop_timer();
-  PCICR|= B111;
-}
-
-static void send_dart(byte input,byte output)
-{
-  byte value=0;
-  while(input>>=1)
-    value++;
-  value<<=3;
-  while(output>>=1)
-    value++;
-  
-       uint8_t zahl = zahlen[value];
-  uint8_t multi = zahl >> 5;
-  uint8_t base = zahl & B11111;
-  Serial.print(0+multi);
-  Serial.print("\t");
-  Serial.println(0+base);
-}
-
-static void send_btn(byte btn)
-{
-  uint8_t value=0;
-  while(btn>>=1)
-    value++;
-  Serial.print("btn\t");
-  Serial.println(0+value);
-       
-}
-
-static void PCint() {
-  byte PINB_COPY = PINB;
-  byte PINC_COPY = PINC;
-  byte PIND_COPY = PIND;
-  byte output = ( OUTPUT_SIG_PORTC  & ~ PINC_COPY ) | (( OUTPUT_SIG_PORTD  & ~ PIND_COPY ) <<2 ); // no output on B 
-  byte input = ( INPUT_SIG_PORTB  & ~ PINB_COPY ) | ( ( INPUT_SIG_PORTC  & ~ PINC_COPY ) <<1 ) |( INPUT_SIG_PORTD  & ~ PIND_COPY );
-  byte btn = ( PLAYER_SIG_PORTC  & ~ PINC_COPY ); 
-
-  if ( input && output)
-   send_dart(input,output);
-  else if (btn)
-   send_btn(btn);
-       else
-   return;
-
-       //Timeout verhindert zu schnelle Wiederholungen
-  PCICR&=  ~ B111; // Disable Interrupt
-  start_timer();
-}
-
-
-
-SIGNAL(PCINT0_vect) {
-  PCint();
-}
-SIGNAL(PCINT1_vect) {
-  PCint();
-}
-SIGNAL(PCINT2_vect) {
-  PCint();
-}
-void setup()
-{
-//  pinMode(RF433_PIN, INPUT);      // set pin to input
-//  digitalWrite(RF433_PIN, LOW);  // turn of pullup resistors 
-  //Set Port as input
-  DDRB=0;
-// disable pull up
-  PORTB=0;
-  DDRD = DDRD & 3;
-  PORTD= PORTD & 3;
-
-  DDRC=0;
-  PORTC=0;
-  Serial.begin(57600);
-  PCMSK0=PINB_MASK & INPUT_SIG_PORTB;
-  PCMSK1=(PINC_MASK & INPUT_SIG_PORTC) |  PLAYER_SIG_PORTC;
-  PCMSK2=PIND_MASK & INPUT_SIG_PORTD;
-  PCICR|= B111;
-}
-
-
-void loop()
-{
-}
diff --git a/dart/eet.c b/dart/eet.c
deleted file mode 100644 (file)
index aaab7dd..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- *  eet
- *
- *
- *  Copyright (C) 2011 Christian Pointner <equinox@realraum.at>
- *
- *  This file is part of eet.
- *
- *  eet is free software: you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation, either version 3 of the License, or
- *  any later version.
- *
- *  eet is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with eet. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/select.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <stdio.h>
-
-int write_buf(char* buf, int len)
-{
-  int i;
-  for(i=0; i < len;) {
-    int w = write(1, &(buf[i]), len - i);
-    if(w < 0)
-      return w;
-
-    i+=w;
-  }
-  return 0;
-}
-
-int main(int argc, char* argv[])
-{
-  if(argc < 2) {
-    fprintf(stderr, "Please specify a path to the fifo\n");
-    return 1;
-  }
-  int fd = open(argv[1], O_RDONLY);
-  if(fd < 0) {
-    perror("open()");
-    return 2;
-  }
-
-  char buf[1024];
-  fd_set rfds;
-
-  for(;;) {
-    FD_ZERO(&rfds);
-    FD_SET(0, &rfds);
-    FD_SET(fd, &rfds);
-    int ret = select(fd+1, &rfds, NULL, NULL, NULL);
-
-    if (ret == -1) {
-      perror("select()");
-      return 3;
-    }
-    else {
-      int i;
-      for(i = 0; i < 2; i++) {
-        if(FD_ISSET((i ? fd : 0), &rfds)) {
-          int r = read((i ? fd : 0), buf, sizeof(buf));
-          if(r <=0 ) {
-            return r;
-          }
-
-          ret = write_buf(buf, r);
-          if(ret) return ret;
-        }
-      }
-    }
-  }
-
-  return 0;
-}
diff --git a/dart/html/index.html b/dart/html/index.html
deleted file mode 100644 (file)
index 693f7a8..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>\r
-<html>\r
-<head>\r
-<script type="text/javascript" src="jquery-1.6.1.min.js"></script>\r
-<script type="text/javascript" src="underscore-min.js"></script>\r
-<script type="text/javascript">\r
-$(document).ready(function() {\r
-  var queryDart = function() {\r
-    $.getJSON('/json', function(data) {\r
-      var items = [];\r
-\r
-      $.each(data, function(key, val) {\r
-        items.push('<li id="' + key + '">' + val + '</li>');\r
-      });\r
-\r
-      if(items.length > 0) {\r
-        $('<ul/>', {\r
-          html: items.join('')\r
-        }).appendTo('body');\r
-      }\r
-    })\r
-    .complete(function() {\r
-      _.defer(queryDart);\r
-    });\r
-  }\r
-  \r
-});\r
-</script>\r
-</head>\r
-<body>\r
-<h1>Received Blahs</h1>\r
-</body>\r
-</html>\r
diff --git a/dart/html/jquery-1.6.1.min.js b/dart/html/jquery-1.6.1.min.js
deleted file mode 100644 (file)
index b2ac174..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.6.1
- * http://jquery.com/
- *
- * Copyright 2011, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Thu May 12 15:04:36 2011 -0400
- */
-(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!cj[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),c.body.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write("<!doctype><html><body></body></html>");b=cl.createElement(a),cl.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ck)}cj[a]=d}return cj[a]}function cu(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function ct(){cq=b}function cs(){setTimeout(ct,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bF.test(a)?d(a,e):b_(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bU,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bQ),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bD(a,b,c){var d=b==="width"?bx:by,e=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return e;f.each(d,function(){c||(e-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?e+=parseFloat(f.css(a,"margin"+this))||0:e-=parseFloat(f.css(a,"border"+this+"Width"))||0});return e}function bn(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bm(a){f.nodeName(a,"input")?bl(a):a.getElementsByTagName&&f.grep(a.getElementsByTagName("input"),bl)}function bl(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bk(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bj(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bi(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bh(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function X(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(S.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function W(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function O(a,b){return(a&&a!=="*"?a+".":"")+b.replace(A,"`").replace(B,"&")}function N(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(y,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function L(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function F(){return!0}function E(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:E?function(a){return a==null?"":E.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?C.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(F)return F.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=D.call(arguments,2),g=function(){return a.apply(c,f.concat(D.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){G["[object "+b+"]"]=b.toLowerCase()}),x=e.uaMatch(w),x.browser&&(e.browser[x.browser]=!0,e.browser.version=x.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?z=function(){c.removeEventListener("DOMContentLoaded",z,!1),e.ready()}:c.attachEvent&&(z=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",z),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;a.setAttribute("className","t"),a.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};f=c.createElement("select"),g=f.appendChild(c.createElement("option")),h=a.getElementsByTagName("input")[0],j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},h.checked=!0,j.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,j.optDisabled=!g.disabled;try{delete a.test}catch(s){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function b(){j.noCloneEvent=!1,a.detachEvent("onclick",b)}),a.cloneNode(!0).fireEvent("onclick")),h=c.createElement("input"),h.value="t",h.setAttribute("type","radio"),j.radioValue=h.value==="t",h.setAttribute("checked","checked"),a.appendChild(h),k=c.createDocumentFragment(),k.appendChild(a.firstChild),j.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",l=c.createElement("body"),m={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(q in m)l.style[q]=m[q];l.appendChild(a),b.insertBefore(l,b.firstChild),j.appendChecked=h.checked,j.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",n=a.getElementsByTagName("td"),r=n[0].offsetHeight===0,n[0].style.display="",n[1].style.display="none",j.reliableHiddenOffsets=r&&n[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(i=c.createElement("div"),i.style.width="0",i.style.marginRight="0",a.appendChild(i),j.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(i,null)||{marginRight:0}).marginRight,10)||0)===0),l.innerHTML="",b.removeChild(l);if(a.attachEvent)for(q in{submit:1,change:1,focusin:1})p="on"+q,r=p in a,r||(a.setAttribute(p,"return;"),r=typeof a[p]=="function"),j[q+"Bubbles"]=r;return j}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u=/\:/,v,w;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.addClass(a.call(this,b,c.attr("class")||""))});if(a&&typeof a=="string"){var b=(a||"").split(o);for(var c=0,d=this.length;c<d;c++){var e=this[c];if(e.nodeType===1)if(!e.className)e.className=a;else{var g=" "+e.className+" ",h=e.className;for(var i=0,j=b.length;i<j;i++)g.indexOf(" "+b[i]+" ")<0&&(h+=" "+b[i]);e.className=f.trim(h)}}}return this},removeClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a=="string"||a===b){var c=(a||"").split(o);for(var d=0,e=this.length;d<e;d++){var g=this[d];if(g.nodeType===1&&g.className)if(a){var h=(" "+g.className+" ").replace(n," ");for(var i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){var d=f(this);d.toggleClass(a.call(this,c,d.attr("class"),b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c],i||(!t.test(c)||typeof d!="boolean"&&d!==b&&d.toLowerCase()!==c.toLowerCase()?v&&(f.nodeName(a,"form")||u.test(c))&&(i=v):i=w);if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return a[f.propFix[c]||c]?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=b),a.setAttribute(c,c.toLowerCase()));return c}},f.attrHooks.value={get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return a.value},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=Object.prototype.hasOwnProperty,y=/\.(.*)$/,z=/^(?:textarea|input|select)$/i,A=/\./g,B=/ /g,C=/[^\w\s.|`]/g,D=function(a){return a.replace(C,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),D).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem
-)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,O(a.origType,a.selector),f.extend({},a,{handler:N,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,O(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?F:E):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=F;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=F;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=F,this.stopPropagation()},isDefaultPrevented:E,isPropagationStopped:E,isImmediatePropagationStopped:E};var G=function(a){var b=a.relatedTarget;a.type=a.data;try{if(b&&b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&f.event.handle.apply(this,arguments)}catch(d){}},H=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?H:G,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?H:G)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&f(b).closest("form").length&&L("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&L("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var I,J=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},K=function(c){var d=c.target,e,g;if(!!z.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=J(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:K,beforedeactivate:K,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&K.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&K.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",J(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in I)f.event.add(this,c+".specialChange",I[c]);return z.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return z.test(this.nodeName)}},I=f.event.special.change.filters,I.focus=I.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var M={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||E,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=y.exec(h),k="",j&&(k=j[0],h=h.replace(y,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,M[h]?(a.push(M[h]+k),h=h+k):h=(M[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+O(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+O(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var P=/Until$/,Q=/^(?:parents|prevUntil|prevAll)/,R=/,/,S=/^.[^:#\[\.,]*$/,T=Array.prototype.slice,U=f.expr.match.POS,V={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(X(this,a,!1),"not",a)},filter:function(a){return this.pushStack(X(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=U.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=U.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(W(c[0])||W(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=T.call(arguments);P.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!V[a]?f.unique(e):e,(this.length>1||R.test(d))&&Q.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y=/ jQuery\d+="(?:\d+|null)"/g,Z=/^\s+/,$=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/<tbody/i,bb=/<|&#?\w+;/,bc=/<(?:script|object|embed|option|style)/i,bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Y,""):null;if(typeof a=="string"&&!bc.test(a)&&(f.support.leadingWhitespace||!Z.test(a))&&!bg[(_.exec(a)||["",""])[1].toLowerCase()]){a=a.replace($,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bh(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bn)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bc.test(a[0])&&(f.support.checkClone||!bd.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bj(a,d),e=bk(a),g=bk(d);for(h=0;e[h];++h)bj(e[h],g[h])}if(b){bi(a,d);if(c){e=bk(a),g=bk(d);for(h=0;e[h];++h)bi(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||
-b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bb.test(k))k=b.createTextNode(k);else{k=k.replace($,"<$1></$2>");var l=(_.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=ba.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Z.test(k)&&o.insertBefore(b.createTextNode(Z.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bm(k[i]);else bm(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bo=/alpha\([^)]*\)/i,bp=/opacity=([^)]*)/,bq=/-([a-z])/ig,br=/([A-Z]|^ms)/g,bs=/^-?\d+(?:px)?$/i,bt=/^-?\d/,bu=/^[+\-]=/,bv=/[^+\-\.\de]+/g,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB,bC=function(a,b){return b.toUpperCase()};f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0,widows:!0,orphans:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d;if(h==="number"&&isNaN(d)||d==null)return;h==="string"&&bu.test(d)&&(d=+d.replace(bv,"")+parseFloat(f.css(a,c))),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bq,bC)}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){a.offsetWidth!==0?e=bD(a,b,d):f.swap(a,bw,function(){e=bD(a,b,d)});if(e<=0){e=bz(a,b,b),e==="0px"&&bB&&(e=bB(a,b,b));if(e!=null)return e===""||e==="auto"?"0px":e}if(e<0||e==null){e=a.style[b];return e===""||e==="auto"?"0px":e}return typeof e=="string"?e:e+"px"}},set:function(a,b){if(!bs.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bp.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bo.test(g)?g.replace(bo,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,c){var d,e,g;c=c.replace(br,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bs.test(d)&&bt.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bP=/^(?:select|textarea)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=f.fn.load,bU={},bV={},bW,bX;try{bW=e.href}catch(bY){bW=c.createElement("a"),bW.href="",bW=bW.href}bX=bS.exec(bW.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bT)return bT.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bO,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bP.test(this.nodeName)||bJ.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bG,"\r\n")}}):{name:b.name,value:c.replace(bG,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bW,isLocal:bK.test(bX[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bZ(bU),ajaxTransport:bZ(bV),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?ca(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=cb(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bH,"").replace(bM,bX[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bQ),d.crossDomain==null&&(r=bS.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bX[1]&&r[2]==bX[2]&&(r[3]||(r[1]==="http:"?80:443))==(bX[3]||(bX[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bU,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bL.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bN.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bR,"$1_="+x);d.url=y+(y===d.url?(bN.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bV,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bE,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq,cr=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cv(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cm.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=cn.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this),f.isFunction(d.old)&&d.old.call(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function h(a){return d.step(a)}var d=this,e=f.fx,g;this.startTime=cq||cs(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!co&&(cr?(co=1,g=function(){co&&(cr(g),e.tick())},cr(g)):co=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cq||cs(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
\ No newline at end of file
diff --git a/dart/html/underscore-min.js b/dart/html/underscore-min.js
deleted file mode 100644 (file)
index f502cf9..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-// Underscore.js 1.1.6
-// (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.
-// Underscore is freely distributable under the MIT license.
-// Portions of Underscore are inspired or borrowed from Prototype,
-// Oliver Steele's Functional, and John Resig's Micro-Templating.
-// For all details and documentation:
-// http://documentcloud.github.com/underscore
-(function(){var p=this,C=p._,m={},i=Array.prototype,n=Object.prototype,f=i.slice,D=i.unshift,E=n.toString,l=n.hasOwnProperty,s=i.forEach,t=i.map,u=i.reduce,v=i.reduceRight,w=i.filter,x=i.every,y=i.some,o=i.indexOf,z=i.lastIndexOf;n=Array.isArray;var F=Object.keys,q=Function.prototype.bind,b=function(a){return new j(a)};typeof module!=="undefined"&&module.exports?(module.exports=b,b._=b):p._=b;b.VERSION="1.1.6";var h=b.each=b.forEach=function(a,c,d){if(a!=null)if(s&&a.forEach===s)a.forEach(c,d);else if(b.isNumber(a.length))for(var e=
-0,k=a.length;e<k;e++){if(c.call(d,a[e],e,a)===m)break}else for(e in a)if(l.call(a,e)&&c.call(d,a[e],e,a)===m)break};b.map=function(a,c,b){var e=[];if(a==null)return e;if(t&&a.map===t)return a.map(c,b);h(a,function(a,g,G){e[e.length]=c.call(b,a,g,G)});return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var k=d!==void 0;a==null&&(a=[]);if(u&&a.reduce===u)return e&&(c=b.bind(c,e)),k?a.reduce(c,d):a.reduce(c);h(a,function(a,b,f){!k&&b===0?(d=a,k=!0):d=c.call(e,d,a,b,f)});if(!k)throw new TypeError("Reduce of empty array with no initial value");
-return d};b.reduceRight=b.foldr=function(a,c,d,e){a==null&&(a=[]);if(v&&a.reduceRight===v)return e&&(c=b.bind(c,e)),d!==void 0?a.reduceRight(c,d):a.reduceRight(c);a=(b.isArray(a)?a.slice():b.toArray(a)).reverse();return b.reduce(a,c,d,e)};b.find=b.detect=function(a,c,b){var e;A(a,function(a,g,f){if(c.call(b,a,g,f))return e=a,!0});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(w&&a.filter===w)return a.filter(c,b);h(a,function(a,g,f){c.call(b,a,g,f)&&(e[e.length]=a)});return e};
-b.reject=function(a,c,b){var e=[];if(a==null)return e;h(a,function(a,g,f){c.call(b,a,g,f)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=!0;if(a==null)return e;if(x&&a.every===x)return a.every(c,b);h(a,function(a,g,f){if(!(e=e&&c.call(b,a,g,f)))return m});return e};var A=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=!1;if(a==null)return e;if(y&&a.some===y)return a.some(c,d);h(a,function(a,b,f){if(e=c.call(d,a,b,f))return m});return e};b.include=b.contains=function(a,c){var b=
-!1;if(a==null)return b;if(o&&a.indexOf===o)return a.indexOf(c)!=-1;A(a,function(a){if(b=a===c)return!0});return b};b.invoke=function(a,c){var d=f.call(arguments,2);return b.map(a,function(a){return(c.call?c||a:a[c]).apply(a,d)})};b.pluck=function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);var e={computed:-Infinity};h(a,function(a,b,f){b=c?c.call(d,a,b,f):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,
-c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);var e={computed:Infinity};h(a,function(a,b,f){b=c?c.call(d,a,b,f):a;b<e.computed&&(e={value:a,computed:b})});return e.value};b.sortBy=function(a,c,d){return b.pluck(b.map(a,function(a,b,f){return{value:a,criteria:c.call(d,a,b,f)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")};b.sortedIndex=function(a,c,d){d||(d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=
-function(a){if(!a)return[];if(a.toArray)return a.toArray();if(b.isArray(a))return a;if(b.isArguments(a))return f.call(a);return b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=b.head=function(a,b,d){return b!=null&&!d?f.call(a,0,b):a[0]};b.rest=b.tail=function(a,b,d){return f.call(a,b==null||d?1:b)};b.last=function(a){return a[a.length-1]};b.compact=function(a){return b.filter(a,function(a){return!!a})};b.flatten=function(a){return b.reduce(a,function(a,d){if(b.isArray(d))return a.concat(b.flatten(d));
-a[a.length]=d;return a},[])};b.without=function(a){var c=f.call(arguments,1);return b.filter(a,function(a){return!b.include(c,a)})};b.uniq=b.unique=function(a,c){return b.reduce(a,function(a,e,f){if(0==f||(c===!0?b.last(a)!=e:!b.include(a,e)))a[a.length]=e;return a},[])};b.intersect=function(a){var c=f.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.zip=function(){for(var a=f.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),
-e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=function(a,c,d){if(a==null)return-1;var e;if(d)return d=b.sortedIndex(a,c),a[d]===c?d:-1;if(o&&a.indexOf===o)return a.indexOf(c);d=0;for(e=a.length;d<e;d++)if(a[d]===c)return d;return-1};b.lastIndexOf=function(a,b){if(a==null)return-1;if(z&&a.lastIndexOf===z)return a.lastIndexOf(b);for(var d=a.length;d--;)if(a[d]===b)return d;return-1};b.range=function(a,b,d){arguments.length<=1&&(b=a||0,a=0);d=arguments[2]||1;for(var e=Math.max(Math.ceil((b-a)/
-d),0),f=0,g=Array(e);f<e;)g[f++]=a,a+=d;return g};b.bind=function(a,b){if(a.bind===q&&q)return q.apply(a,f.call(arguments,1));var d=f.call(arguments,2);return function(){return a.apply(b,d.concat(f.call(arguments)))}};b.bindAll=function(a){var c=f.call(arguments,1);c.length==0&&(c=b.functions(a));h(c,function(c){a[c]=b.bind(a[c],a)});return a};b.memoize=function(a,c){var d={};c||(c=b.identity);return function(){var b=c.apply(this,arguments);return l.call(d,b)?d[b]:d[b]=a.apply(this,arguments)}};b.delay=
-function(a,b){var d=f.call(arguments,2);return setTimeout(function(){return a.apply(a,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(f.call(arguments,1)))};var B=function(a,b,d){var e;return function(){var f=this,g=arguments,h=function(){e=null;a.apply(f,g)};d&&clearTimeout(e);if(d||!e)e=setTimeout(h,b)}};b.throttle=function(a,b){return B(a,b,!1)};b.debounce=function(a,b){return B(a,b,!0)};b.once=function(a){var b=!1,d;return function(){if(b)return d;b=!0;return d=a.apply(this,arguments)}};
-b.wrap=function(a,b){return function(){var d=[a].concat(f.call(arguments));return b.apply(this,d)}};b.compose=function(){var a=f.call(arguments);return function(){for(var b=f.call(arguments),d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)];return b[0]}};b.after=function(a,b){return function(){if(--a<1)return b.apply(this,arguments)}};b.keys=F||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var b=[],d;for(d in a)l.call(a,d)&&(b[b.length]=d);return b};b.values=function(a){return b.map(a,
-b.identity)};b.functions=b.methods=function(a){return b.filter(b.keys(a),function(c){return b.isFunction(a[c])}).sort()};b.extend=function(a){h(f.call(arguments,1),function(b){for(var d in b)b[d]!==void 0&&(a[d]=b[d])});return a};b.defaults=function(a){h(f.call(arguments,1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,c){if(a===c)return!0;var d=typeof a;if(d!=
-typeof c)return!1;if(a==c)return!0;if(!a&&c||a&&!c)return!1;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual)return a.isEqual(c);if(b.isDate(a)&&b.isDate(c))return a.getTime()===c.getTime();if(b.isNaN(a)&&b.isNaN(c))return!1;if(b.isRegExp(a)&&b.isRegExp(c))return a.source===c.source&&a.global===c.global&&a.ignoreCase===c.ignoreCase&&a.multiline===c.multiline;if(d!=="object")return!1;if(a.length&&a.length!==c.length)return!1;d=b.keys(a);var e=b.keys(c);if(d.length!=e.length)return!1;
-for(var f in a)if(!(f in c)||!b.isEqual(a[f],c[f]))return!1;return!0};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(l.call(a,c))return!1;return!0};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=n||function(a){return E.call(a)==="[object Array]"};b.isArguments=function(a){return!(!a||!l.call(a,"callee"))};b.isFunction=function(a){return!(!a||!a.constructor||!a.call||!a.apply)};b.isString=function(a){return!!(a===""||a&&a.charCodeAt&&a.substr)};
-b.isNumber=function(a){return!!(a===0||a&&a.toExponential&&a.toFixed)};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===!0||a===!1};b.isDate=function(a){return!(!a||!a.getTimezoneOffset||!a.setUTCFullYear)};b.isRegExp=function(a){return!(!a||!a.test||!a.exec||!(a.ignoreCase||a.ignoreCase===!1))};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.noConflict=function(){p._=C;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=
-0;e<a;e++)b.call(d,e)};b.mixin=function(a){h(b.functions(a),function(c){H(c,b[c]=a[c])})};var I=0;b.uniqueId=function(a){var b=I++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g};b.template=function(a,c){var d=b.templateSettings;d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.interpolate,function(a,b){return"',"+b.replace(/\\'/g,"'")+",'"}).replace(d.evaluate||
-null,function(a,b){return"');"+b.replace(/\\'/g,"'").replace(/[\r\n\t]/g," ")+"__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');";d=new Function("obj",d);return c?d(c):d};var j=function(a){this._wrapped=a};b.prototype=j.prototype;var r=function(a,c){return c?b(a).chain():a},H=function(a,c){j.prototype[a]=function(){var a=f.call(arguments);D.call(a,this._wrapped);return r(c.apply(b,a),this._chain)}};b.mixin(b);h(["pop","push","reverse","shift","sort",
-"splice","unshift"],function(a){var b=i[a];j.prototype[a]=function(){b.apply(this._wrapped,arguments);return r(this._wrapped,this._chain)}});h(["concat","join","slice"],function(a){var b=i[a];j.prototype[a]=function(){return r(b.apply(this._wrapped,arguments),this._chain)}});j.prototype.chain=function(){this._chain=!0;return this};j.prototype.value=function(){return this._wrapped}})();
diff --git a/dart/lookuptable b/dart/lookuptable
deleted file mode 100644 (file)
index 6ed1c8b..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-2A\r
-2B\r
-29\r
-1C\r
-1D\r
-18\r
-C\r
-D\r
-8\r
-F\r
-7\r
-17\r
-1A\r
-1B\r
-19\r
-2E\r
-3E\r
-1E\r
-3C\r
-3D\r
-38\r
-32\r
-33\r
-31\r
-A\r
-B\r
-9\r
-2C\r
-2D\r
-28\r
-3A\r
-3B\r
-39\r
-12\r
-13\r
-11\r
-2F\r
-3F\r
-1F\r
-2\r
-3\r
-1\r
-24\r
-25\r
-20\r
-34\r
-35\r
-30\r
-14\r
-15\r
-10\r
-E\r
-6\r
-16\r
-4\r
-5\r
-0\r
-22\r
-23\r
-21\r
-26\r
-27\r
diff --git a/dart/pc.cpp b/dart/pc.cpp
deleted file mode 100644 (file)
index 6f43deb..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <iostream>
-
-int main()
-{
-  unsigned char c =0;
-  unsigned char sym =0;
-  int counter = 1000;
-  while( counter--)
-  {
-    std::cin >> c;
-    for(int i = 0; i<8; i++)
-    {
-      sym = c & (1<<7);
-      if( sym)
-      {
-        std::cout << "1,";
-      } else {
-        std::cout << "0,";
-      }
-      c<<=1;
-    }
-  }
-}
diff --git a/dart/perl_shit.pl b/dart/perl_shit.pl
deleted file mode 100755 (executable)
index 213d949..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/perl
-my $pos=0;
-my %shit;
-for (0..63)
-{
-  $shit{$_}=['nc','nc'];
-}
-print "Reading ".$ARGV[0]."\n";
-open(my $fh, '<', $ARGV[0]) ;
-
-while( my $line =<$fh>)
-{
- chomp $line;
- my $zahl = (int($pos / 3)) +1 ;
- my $mult =( $pos % 3 )+1;
- $zahl = 25 if $zahl == 21;
- $shit{hex $line} = [ $mult, $zahl]; 
- $pos++;
-}
-close ($fh);
-
-for my $foobar ( sort { $a <=> $b } keys %shit)
-{
-  
-  print sprintf "%d,", $shit{$foobar}[0]<<5|$shit{$foobar}[1];
-}
-
-while(my $foobar = <STDIN>)
-{
-  chomp $foobar;
-  print join "\t",$foobar , $shit{hex $foobar}[0],$shit{hex $foobar}[1],"\n";
-
-}
diff --git a/dart/plot.py b/dart/plot.py
deleted file mode 100755 (executable)
index d427488..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/env python
-
-import fileinput
-import numpy
-import pylab
-labels=[];
-for line in fileinput.input():
-  (label,foo,datastr)=line.partition(":")
-  labels.append(label)
-  data = numpy.array(datastr.split(","))
-  pylab.plot(range(len(data)),data,label=label)
-  pylab.hold(True)
-
-pylab.legend()
-pylab.show()
-          
diff --git a/dart/start-dart.sh b/dart/start-dart.sh
deleted file mode 100755 (executable)
index db7a080..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-
-if [ -z "$1" ]; then
-  echo "Usage $0 <mode> [<param1> [<param2> ...]]"
-  exit 1
-fi
-
-MYSELF=`readlink -f "$0"`
-MYPATH=`dirname "$MYSELF"`
-mode=$1
-shift
-
-FIFO_D=`mktemp -d`
-FIFO_IN=$FIFO_D/dart-in.fifo
-FIFO_SHOUT=$FIFO_D/dart-out.fifo
-mkfifo $FIFO_IN
-mkfifo $FIFO_SHOUT
-
-trap signal_handler INT TERM
-
-signal_handler()
-{
-  rm -rf $FIFO_D
-}
-
-stty -echo
-ssh dart killall ttyread 2>&1
-ssh dart ttyread /dev/ttyDart  >$FIFO_IN &
-cd $MYPATH
-$MYPATH/../dart-sounds/src/dart-sounds $MYPATH/../dart-sounds/media > /dev/null <$FIFO_SHOUT &
-$MYPATH/eet $FIFO_IN | perl -I $MYPATH $MYPATH/dart-$mode.pl $FIFO_SHOUT $*
-rm -rf $FIFO_D
-
-exit 0
diff --git a/dart/ttyread.c b/dart/ttyread.c
deleted file mode 100644 (file)
index 65f0203..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- *  ttyread
- *
- *
- *  Copyright (C) 2011 Christian Pointner <equinox@realraum.at>
- *
- *  This file is part of ttyread.
- *
- *  ttyread is free software: you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation, either version 3 of the License, or
- *  any later version.
- *
- *  ttyread is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with ttyread. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <sys/select.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#include <termios.h>
-#include <unistd.h>
-#include <stdio.h>
-
-int setup_tty(int fd)
-{
-  struct termios tmio;
-
-  int ret = tcgetattr(fd, &tmio);
-  if(ret) {
-    perror("tcgetattr()");
-    return ret;
-  }
-
-  ret = cfsetospeed(&tmio, B57600);
-  if(ret) {
-    perror("cfsetospeed()");
-    return ret;
-  }
-
-  ret = cfsetispeed(&tmio, B57600);
-  if(ret) {
-    perror("cfsetispeed()");
-    return ret;
-  }
-
-  tmio.c_lflag &= ~ECHO;
-  tmio.c_lflag |= CLOCAL;
-
-  tmio.c_iflag &= ~ICRNL;
-  tmio.c_iflag &= ~IGNCR;
-  tmio.c_iflag |= IGNBRK | BRKINT;
-
-  tmio.c_cflag |= CLOCAL;
-
-  ret = tcsetattr(fd, TCSANOW, &tmio);
-  if(ret) {
-    perror("tcsetattr()");
-    return ret;
-  }
-
-  ret = tcflush(fd, TCIFLUSH);
-  if(ret) {
-    perror("tcflush()");
-    return ret;
-  }
-
-  fd_set fds;
-  struct timeval tv;
-  FD_ZERO(&fds);
-  FD_SET(fd, &fds);
-  tv.tv_sec = 0;
-  tv.tv_usec = 50000;
-  for(;;) {
-    ret = select(fd+1, &fds, NULL, NULL, &tv);
-    if(ret > 0) {
-      char buffer[100];
-      ret = read(fd, buffer, sizeof(buffer));
-    }
-    else
-      break;
-  }
-
-  return 0;
-}
-
-int main(int argc, char* argv[])
-{
-  if(argc < 2) {
-    fprintf(stderr, "Please specify a path to the tty\n");
-    return 1;
-  }
-
-  int fd = open(argv[1], O_RDONLY | O_NONBLOCK | O_NOCTTY);
-  if(fd < 0) {
-    perror("open()");
-    return 2;
-  }
-
-  if(setup_tty(fd)) return 3;
-
-  fd_set rfds, efds;
-  char buf[100];
-  for(;;) {
-    FD_ZERO(&rfds);
-    FD_SET(fd, &rfds);
-    FD_ZERO(&efds);
-    FD_SET(1, &efds);
-
-    int s = select(fd+1, &rfds, NULL, &efds, NULL);
-    if(s < 0) {
-      perror("select()");
-      return s;
-    }
-    if(FD_ISSET(1, &efds)) return 0;
-    if(!FD_ISSET(fd, &rfds)) continue;
-
-    ssize_t r = read(fd, buf, sizeof(buf));
-    if(r <= 0) {
-      perror("read()");
-      return r;
-    }
-
-    ssize_t i;
-    for(i=0; i < r;) {
-      ssize_t w = write(1, &(buf[i]), r - i);
-      if(w < 0) {
-        perror("write()");
-        return w;
-      }
-      i+=w;
-    }
-  }
-
-  return 0;
-}