checkpoint
authoradam <adam@megacz.com>
Wed, 20 Sep 2006 10:05:55 +0000 (11:05 +0100)
committeradam <adam@megacz.com>
Wed, 20 Sep 2006 10:05:55 +0000 (11:05 +0100)
Makefile
bitstreams/slipway_drone.bst [new file with mode: 0644]
src/com/ftdi/usb/FtdiUart.java
src/edu/berkeley/slipway/FtdiBoard.java
src/edu/berkeley/slipway/slipway_drone.c [new file with mode: 0644]

index fbe196b..270b0ec 100644 (file)
--- a/Makefile
+++ b/Makefile
+ifeq ($(shell uname),Darwin)
+linkerflags = -Wl,-framework -Wl,IOKit -Wl,-framework -Wl,CoreFoundation
+jnilib      = libFtdiUartNative.jnilib
+else
+linkerflags =
+jnilib      = libFtdiUartNative.so
+endif
 
-java = java -Djava.library.path=$(shell pwd)/lib/ -cp lib/RXTXcomm.jar:obits.jar
+## slipway ############################################################################
 
-led0: obits.jar 
-       $(java) edu.berkeley.obits.AtmelSerial < bitstreams/led0.md4
+run: slipway.jar 
+       java -cp slipway.jar edu.berkeley.obits.AtmelSerial < bitstreams/led0.md4
 
-led1: obits.jar
-       $(java) edu.berkeley.obits.AtmelSerial < bitstreams/led1.md4
+build/src/com/ftdi/usb/FtdiUart.c: src/com/ftdi/usb/FtdiUart.i
+       mkdir -p `dirname $@`
+       mkdir -p src/com/ftdi/usb
+       swig -module FtdiUartNative -noproxy -package com.ftdi.usb -o $@ -outdir `dirname $@` -java $<
 
-run: obits.jar
-       $(java) edu.berkeley.obits.AtmelSerial < stupid.md4
+build/$(jnilib): build/src/com/ftdi/usb/FtdiUart.c
+       gcc -I. -Iupstream/libftdi -Iupstream/usb \
+               -I$(JAVA_HOME)/include \
+               $< \
+               upstream/libftdi/ftdi.c \
+               upstream/libusb/.libs/libusb.a \
+               $(linkerflags) \
+               -o $@ -dynamiclib -framework JavaVM
 
-obits.jar: $(shell find src -name \*.java)
-       javac -cp lib/RXTXcomm.jar -d build $(shell find src -name \*.java)
+slipway.jar: build/$(jnilib) $(shell find src build/src -name \*.java) bitstreams/slipway_drone.bst
+       mkdir -p build
+       javac -d build $(shell find src build/src -name \*.java)
+       cp bitstreams/slipway_drone.bst build/edu/berkeley/slipway/
        cd build; jar cvf ../$@ .
 
-# -O3 is required; otherwise the poor AVR can't keep up with us!
-avrdrone.hex: src/edu/berkeley/obits/device/atmel/AvrDrone.c
-       avr-gcc -O3 -mmcu=at94k $<
-       avr-objcopy -O ihex a.out $@
 
-demo: ftdi.jar
-       java -cp ftdi.jar edu.berkeley.obits.device.atmel.Demo
 
-build/src/com/ftdi/usb/FtdiUart.c: src/com/ftdi/usb/FtdiUart.i
+## libusb ##############################################################################
+
+upstream/libusb:
        mkdir -p `dirname $@`
-       mkdir -p src/com/ftdi/usb
-       swig -noproxy -package com.ftdi.usb -outdir `dirname $@` -java $<
+       cd upstream; curl http://umn.dl.sourceforge.net/sourceforge/libusb/libusb-0.1.12.tar.gz | tar -xvzf -
+       cd upstream; mv libusb-0.1.12 libusb
 
-build/libFtdi.jnilib: build/src/com/ftdi/usb/FtdiUart.c
-       gcc -I. -I/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Headers/ \
-               $< -o $@ -lftdi -dynamiclib -framework JavaVM
+upstream/libusb/.built: upstream/libusb
+       cd upstream/libusb; \
+               ./configure &&
+               make
+       touch $@
+
+#java = java -Djava.library.path=$(shell pwd)/lib/ -cp lib/RXTXcomm.jar:slipway.jar
 
-javafiles := $(shell find src build/src -name \*.java)
 
-ftdi.jar: $(javafiles) build/libFtdi.jnilib
-       mkdir -p build
-       javac -d build $(javafiles)
-       cd build; jar cvf ../$@ .
 
-drone.hex: src/drone.c
-       avr-gcc -mmcu=at94k -O3 $<
-       avr-objcopy -O ihex a.out $@
+## for rebuilding usbdrone.hex ###########################################################
 
-rcompile:
-       cp src/edu/berkeley/obits/device/atmel/usbdrone.c /afs/megacz.com/goliath/work/tmp/
-       ssh research.cs.berkeley.edu 'cd /afs/megacz.com/goliath/work/tmp; avr-gcc -O3 -mmcu=at94k usbdrone.c; avr-objcopy -O ihex a.out usbdrone.hex'
-       cp /afs/megacz.com/goliath/work/tmp/usbdrone.hex /afs/research.cs.berkeley.edu/user/megacz/edu.berkeley.obits/usbdrone.hex
+build/slipway_drone.hex: src/edu/berkeley/slipway/slipway_drone.c  upstream/avr-libc/.built
+       upstream/prefix/bin/avr-gcc -O3 -mmcu=at94k $< -o $@.o
+       upstream/prefix/bin/avr-objcopy -O ihex $@.o $@
+
+# this only works on my personal setup [adam]
+bitstreams/slipway_drone.bst: build/slipway_drone.hex
+       cp $< /afs/research.cs.berkeley.edu/user/megacz/edu.berkeley.obits/usbdrone.hex
        fs flush /afs/research.cs.berkeley.edu/user/megacz/edu.berkeley.obits/usbdrone.hex
        echo okay...
        read
        rm /afs/research.cs.berkeley.edu/user/megacz/edu.berkeley.obits/usbdrone.hex
-       diff -u /afs/research.cs.berkeley.edu/user/megacz/stupid/fpslic_stupid.bst bitstreams/usbdrone.bst && exit -1; true
-       mv /afs/research.cs.berkeley.edu/user/megacz/stupid/fpslic_stupid.bst bitstreams/usbdrone.bst
-       make demo
\ No newline at end of file
+       diff -u /afs/research.cs.berkeley.edu/user/megacz/stupid/fpslic_stupid.bst $@ && exit -1; true
+       mv /afs/research.cs.berkeley.edu/user/megacz/stupid/fpslic_stupid.bst $@
+
+
+
+## avr-gcc toolchain and libc ################################################################
+
+upstream/binutils:
+       cd upstream; curl http://ftp.gnu.org/pub/pub/pub/gnu/binutils/binutils-2.16.1.tar.bz2 | tar -xvjf -
+       cd upstream; mv binutils-2.16.1 binutils
+
+upstream/binutils/.built: upstream/binutils
+       mkdir -p upstream/prefix
+       cd upstream/binutils; \
+               PATH=$$PATH:$(shell pwd)/upstream/prefix/bin \
+               ./configure --prefix=$(shell pwd)/upstream/prefix --target=avr && \
+               make && \
+               make install
+       touch $@
+
+upstream/gcc:
+       cd upstream; curl http://ftp.gnu.org/pub/gnu/gcc/gcc-4.0.3/gcc-core-4.0.3.tar.bz2 | tar -xvjf -
+       cd upstream; mv gcc-4.0.3 gcc
+
+upstream/gcc/.built: upstream/gcc upstream/binutils/.built
+       mkdir -p upstream/prefix
+       mkdir -p upstream/gcc-build
+       cd upstream/gcc-build; \
+               PATH=$$PATH:$(shell pwd)/upstream/prefix/bin \
+               ../gcc/configure --prefix=$(shell pwd)/upstream/prefix --target=avr && \
+               PATH=$$PATH:$(shell pwd)/upstream/prefix/bin make && \
+               PATH=$$PATH:$(shell pwd)/upstream/prefix/bin make install
+       touch $@
+
+upstream/avr-libc:
+       cd upstream; curl http://download.savannah.gnu.org/releases/avr-libc/avr-libc-1.4.3.tar.bz2 | tar -xvjf -
+       cd upstream; mv avr-libc-1.4.3 avr-libc
+
+upstream/avr-libc/.built: upstream/avr-libc upstream/gcc/.built
+       cd upstream/avr-libc; \
+               PATH=$$PATH:$(shell pwd)/upstream/prefix/bin \
+               ./configure --prefix=$(shell pwd)/upstream/prefix --host=avr && \
+               PATH=$$PATH:$(shell pwd)/upstream/prefix/bin make && \
+               PATH=$$PATH:$(shell pwd)/upstream/prefix/bin make install
+       touch $@
\ No newline at end of file
diff --git a/bitstreams/slipway_drone.bst b/bitstreams/slipway_drone.bst
new file mode 100644 (file)
index 0000000..86eacbf
--- /dev/null
@@ -0,0 +1,7691 @@
+00000000\r
+10110111\r
+11001100\r
+00000000\r
+10000000\r
+00001101\r
+00000010\r
+00100101\r
+00000000\r
+00000000\r
+11010100\r
+00000000\r
+00000000\r
+11010111\r
+01010001\r
+11101111\r
+00000000\r
+00001001\r
+00000000\r
+00001000\r
+10000000\r
+00000000\r
+00001000\r
+10000111\r
+00001100\r
+01001000\r
+00001100\r
+01100011\r
+00001100\r
+01001101\r
+00001100\r
+01100011\r
+00000000\r
+00001000\r
+10001000\r
+00000000\r
+00001000\r
+10001111\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00000001\r
+00001000\r
+10000000\r
+00000001\r
+00001000\r
+10000111\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00000001\r
+00001000\r
+10001000\r
+00000001\r
+00001000\r
+10001111\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00000010\r
+00001000\r
+10000000\r
+00000010\r
+00001000\r
+10000111\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00000010\r
+00001000\r
+10001000\r
+00000010\r
+00001000\r
+10001111\r
+00001100\r
+01100011\r
+00001100\r
+00010000\r
+00001100\r
+10011100\r
+00001100\r
+01100011\r
+00000011\r
+00001000\r
+10000000\r
+00000011\r
+00001000\r
+10000111\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00000011\r
+00001000\r
+10001000\r
+00000011\r
+00001000\r
+10001111\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00000100\r
+00001000\r
+10000000\r
+00000100\r
+00001000\r
+10000111\r
+00001100\r
+01100011\r
+00001100\r
+01100011\r
+00001100\r
+10111000\r
+00001100\r
+01100011\r
+00000100\r
+00001000\r
+10001000\r
+00000100\r
+00001000\r
+10001111\r
+00010001\r
+00011111\r
+11001111\r
+11011111\r
+11011110\r
+11001101\r
+00010000\r
+10100000\r
+00000101\r
+00001000\r
+10000000\r
+00000101\r
+00001000\r
+10000111\r
+10110000\r
+11100000\r
+11110001\r
+00000010\r
+00000101\r
+00001101\r
+10100000\r
+10110001\r
+00000101\r
+00001000\r
+10001000\r
+00000101\r
+00001000\r
+10001111\r
+11011001\r
+00011000\r
+10100000\r
+10110000\r
+00000001\r
+00011101\r
+10100100\r
+10110001\r
+00000110\r
+00001000\r
+10000000\r
+00000110\r
+00001000\r
+10000111\r
+11100001\r
+00001100\r
+00000010\r
+00001100\r
+00000000\r
+00101001\r
+00110011\r
+00101111\r
+00000110\r
+00001000\r
+10001000\r
+00000110\r
+00001000\r
+10001111\r
+00100000\r
+10001001\r
+10001010\r
+10001000\r
+10001010\r
+01100111\r
+00010001\r
+01011001\r
+00000111\r
+00001000\r
+10000000\r
+00000111\r
+00001000\r
+10000111\r
+00001000\r
+01011001\r
+00001000\r
+00001000\r
+00000001\r
+00100100\r
+10000000\r
+10010010\r
+00000111\r
+00001000\r
+10001000\r
+00000111\r
+00001000\r
+10001111\r
+00010100\r
+10000000\r
+10010000\r
+00001000\r
+10010111\r
+00001000\r
+10010000\r
+10000001\r
+00001000\r
+00001000\r
+10000000\r
+00001000\r
+00001000\r
+10000111\r
+10011111\r
+00001000\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+10000000\r
+01101100\r
+00001000\r
+00001000\r
+10001000\r
+00001000\r
+00001000\r
+10001111\r
+10010000\r
+01101101\r
+00101000\r
+00111001\r
+01011100\r
+00100000\r
+01101100\r
+00110000\r
+00001001\r
+00001000\r
+10000000\r
+00001001\r
+00001000\r
+10000111\r
+01101101\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+00101000\r
+00111001\r
+00001010\r
+00001001\r
+00001000\r
+10001000\r
+00001001\r
+00001000\r
+10001111\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00001010\r
+00001000\r
+10000000\r
+00001010\r
+00001000\r
+10000111\r
+00101000\r
+00111001\r
+11001001\r
+00001000\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+00001010\r
+00001000\r
+10001000\r
+00001010\r
+00001000\r
+10001111\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+01000000\r
+01010000\r
+00101000\r
+00111001\r
+00001011\r
+00001000\r
+10000000\r
+00001011\r
+00001000\r
+10000111\r
+00010001\r
+01000001\r
+01010000\r
+11001010\r
+00001000\r
+00100000\r
+01110000\r
+00110000\r
+00001011\r
+00001000\r
+10001000\r
+00001011\r
+00001000\r
+10001111\r
+01110001\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00101000\r
+00111001\r
+01101001\r
+00001100\r
+00001000\r
+10000000\r
+00001100\r
+00001000\r
+10000111\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00001100\r
+00001000\r
+10001000\r
+00001100\r
+00001000\r
+10001111\r
+00101000\r
+00111001\r
+10000100\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00100000\r
+00001101\r
+00001000\r
+10000000\r
+00001101\r
+00001000\r
+10000111\r
+01110000\r
+00110000\r
+01110001\r
+01000000\r
+01010000\r
+10000010\r
+10010011\r
+10000000\r
+00001101\r
+00001000\r
+10001000\r
+00001101\r
+00001000\r
+10001111\r
+10010010\r
+10101100\r
+00001111\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+00100000\r
+00001110\r
+00001000\r
+10000000\r
+00001110\r
+00001000\r
+10000111\r
+01101100\r
+00110000\r
+01101101\r
+01000000\r
+01010000\r
+10000010\r
+10010011\r
+10000001\r
+00001110\r
+00001000\r
+10001000\r
+00001110\r
+00001000\r
+10001111\r
+10010010\r
+00101100\r
+01000001\r
+01010000\r
+00000010\r
+01000000\r
+01010000\r
+11001010\r
+00001111\r
+00001000\r
+10000000\r
+00001111\r
+00001000\r
+10000111\r
+00001000\r
+00100000\r
+01110010\r
+00110000\r
+01110011\r
+10000000\r
+01101110\r
+10010000\r
+00001111\r
+00001000\r
+10001000\r
+00001111\r
+00001000\r
+10001111\r
+01101111\r
+01000000\r
+01010000\r
+00101000\r
+00111001\r
+00010001\r
+01000001\r
+01010000\r
+00010000\r
+00001000\r
+10000000\r
+00010000\r
+00001000\r
+10000111\r
+11001010\r
+00001000\r
+00100000\r
+01101110\r
+00110000\r
+01101111\r
+10000000\r
+01110010\r
+00010000\r
+00001000\r
+10001000\r
+00010000\r
+00001000\r
+10001111\r
+10010000\r
+01110011\r
+00101000\r
+00111001\r
+01101001\r
+00100000\r
+01101110\r
+00110000\r
+00010001\r
+00001000\r
+10000000\r
+00010001\r
+00001000\r
+10000111\r
+01101111\r
+10000000\r
+01110010\r
+10010000\r
+01110011\r
+00101000\r
+00111001\r
+10000100\r
+00010001\r
+00001000\r
+10001000\r
+00010001\r
+00001000\r
+10001111\r
+10000000\r
+01110010\r
+10010000\r
+01110011\r
+00100000\r
+01101110\r
+00110000\r
+01101111\r
+00010010\r
+00001000\r
+10000000\r
+00010010\r
+00001000\r
+10000111\r
+01000000\r
+01010000\r
+10000010\r
+10010011\r
+10000000\r
+10010010\r
+10101100\r
+00001111\r
+00010010\r
+00001000\r
+10001000\r
+00010010\r
+00001000\r
+10001111\r
+10000000\r
+01101110\r
+10010000\r
+01101111\r
+00100000\r
+01110010\r
+00110000\r
+01110011\r
+00010011\r
+00001000\r
+10000000\r
+00010011\r
+00001000\r
+10000111\r
+01000000\r
+01010000\r
+10000010\r
+10010011\r
+10000001\r
+10010010\r
+00101100\r
+01000001\r
+00010011\r
+00001000\r
+10001000\r
+00010011\r
+00001000\r
+10001111\r
+01010000\r
+00000010\r
+01000000\r
+01010000\r
+11001010\r
+00001000\r
+10001001\r
+00101001\r
+00010100\r
+00001000\r
+10000000\r
+00010100\r
+00001000\r
+10000111\r
+10000000\r
+10000011\r
+10001000\r
+10000111\r
+00001000\r
+00010111\r
+00010011\r
+00001000\r
+00010100\r
+00001000\r
+10001000\r
+00010100\r
+00001000\r
+10001111\r
+01001000\r
+01101001\r
+10001010\r
+00101011\r
+00001000\r
+00011111\r
+00001111\r
+00001111\r
+00010101\r
+00001000\r
+10000000\r
+00010101\r
+00001000\r
+10000111\r
+00001111\r
+00010001\r
+00011111\r
+01111000\r
+00001111\r
+00001111\r
+00001111\r
+00011111\r
+00010101\r
+00001000\r
+10001000\r
+00010101\r
+00001000\r
+10001111\r
+00011000\r
+10011000\r
+10000000\r
+10001010\r
+00110000\r
+10001001\r
+10011001\r
+10000111\r
+00010110\r
+00001000\r
+10000000\r
+00010110\r
+00001000\r
+10000111\r
+10010000\r
+11000000\r
+00001000\r
+10001001\r
+10000001\r
+10000110\r
+00111000\r
+10001001\r
+00010110\r
+00001000\r
+10001000\r
+00010110\r
+00001000\r
+10001111\r
+10011001\r
+10000111\r
+10010000\r
+10000111\r
+10010000\r
+00001000\r
+10001001\r
+10000001\r
+00010111\r
+00001000\r
+10000000\r
+00010111\r
+00001000\r
+10000111\r
+10000110\r
+00110000\r
+10001001\r
+10011001\r
+10000111\r
+10010000\r
+11000111\r
+00001000\r
+00010111\r
+00001000\r
+10001000\r
+00010111\r
+00001000\r
+10001111\r
+10001111\r
+10011111\r
+00001000\r
+00100101\r
+00110000\r
+01001110\r
+11100000\r
+11110000\r
+00011000\r
+00001000\r
+10000000\r
+00011000\r
+00001000\r
+10000111\r
+01011101\r
+01101011\r
+01110111\r
+01000010\r
+11001111\r
+00000001\r
+11110001\r
+01010010\r
+00011000\r
+00001000\r
+10001000\r
+00011000\r
+00001000\r
+10001111\r
+11001111\r
+00000001\r
+11110001\r
+01100010\r
+11001111\r
+00000001\r
+11110001\r
+01110010\r
+00011001\r
+00001000\r
+10000000\r
+00011001\r
+00001000\r
+10000111\r
+11001111\r
+00000001\r
+11110001\r
+00100001\r
+00110000\r
+01101001\r
+10001111\r
+10000010\r
+00011001\r
+00001000\r
+10001000\r
+00011001\r
+00001000\r
+10001111\r
+10001000\r
+10010000\r
+00101100\r
+00001111\r
+11111000\r
+10101000\r
+10000001\r
+00001111\r
+00011010\r
+00001000\r
+10000000\r
+00011010\r
+00001000\r
+10000111\r
+00100001\r
+11111111\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+00101111\r
+00111111\r
+00011010\r
+00001000\r
+10001000\r
+00011010\r
+00001000\r
+10001111\r
+10000100\r
+00100000\r
+00111000\r
+00010100\r
+00100000\r
+00110000\r
+10000000\r
+01101100\r
+00011011\r
+00001000\r
+10000000\r
+00011011\r
+00001000\r
+10000111\r
+10010000\r
+01101101\r
+01000000\r
+01010000\r
+00101000\r
+00111001\r
+00010001\r
+01000001\r
+00011011\r
+00001000\r
+10001000\r
+00011011\r
+00001000\r
+10001111\r
+01010000\r
+11001010\r
+00001000\r
+00100000\r
+01101110\r
+00110000\r
+01101111\r
+00101111\r
+00011100\r
+00001000\r
+10000000\r
+00011100\r
+00001000\r
+10000111\r
+00111111\r
+10000100\r
+00100000\r
+00111000\r
+00010100\r
+00100000\r
+00110000\r
+10000000\r
+00011100\r
+00001000\r
+10001000\r
+00011100\r
+00001000\r
+10001111\r
+01110010\r
+10010000\r
+01110011\r
+01000000\r
+01010000\r
+00101000\r
+00111001\r
+00010001\r
+00011101\r
+00001000\r
+10000000\r
+00011101\r
+00001000\r
+10000111\r
+01000001\r
+01010000\r
+11001010\r
+00001000\r
+00100000\r
+01100010\r
+00110000\r
+01100011\r
+00011101\r
+00001000\r
+10001000\r
+00011101\r
+00001000\r
+10001111\r
+01000000\r
+01100100\r
+01010000\r
+01100101\r
+00101111\r
+00111111\r
+01001111\r
+01011111\r
+00011110\r
+00001000\r
+10000000\r
+00011110\r
+00001000\r
+10000111\r
+00100000\r
+01100010\r
+00110000\r
+01100011\r
+01000000\r
+01100100\r
+01010000\r
+01100101\r
+00011110\r
+00001000\r
+10001000\r
+00011110\r
+00001000\r
+10001111\r
+10001001\r
+00011001\r
+00111100\r
+00111010\r
+00001000\r
+00111100\r
+00111010\r
+00001000\r
+00011111\r
+00001000\r
+10000000\r
+00011111\r
+00001000\r
+10000111\r
+11111000\r
+10000000\r
+01100010\r
+10010000\r
+01100011\r
+10100000\r
+01100100\r
+10110000\r
+00011111\r
+00001000\r
+10001000\r
+00011111\r
+00001000\r
+10001111\r
+01100101\r
+00000001\r
+10100001\r
+10110001\r
+10000000\r
+01100010\r
+10010000\r
+01100011\r
+00100000\r
+00001000\r
+10000000\r
+00100000\r
+00001000\r
+10000111\r
+10100000\r
+01100100\r
+10110000\r
+01100101\r
+00111100\r
+00111010\r
+10000000\r
+10010000\r
+00100000\r
+00001000\r
+10001000\r
+00100000\r
+00001000\r
+10001111\r
+00000001\r
+11110001\r
+11111111\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+10000000\r
+00100001\r
+00001000\r
+10000000\r
+00100001\r
+00001000\r
+10000111\r
+01110000\r
+10010000\r
+01110001\r
+00101000\r
+00111001\r
+00001001\r
+01011110\r
+11100000\r
+00100001\r
+00001000\r
+10001000\r
+00100001\r
+00001000\r
+10001111\r
+01101100\r
+11110000\r
+01101101\r
+11101110\r
+11111011\r
+11100000\r
+10000000\r
+01101100\r
+00100010\r
+00001000\r
+10000000\r
+00100010\r
+00001000\r
+10000111\r
+10010000\r
+01101101\r
+00000001\r
+00100100\r
+10000000\r
+10010010\r
+00010100\r
+10000000\r
+00100010\r
+00001000\r
+10001000\r
+00100010\r
+00001000\r
+10001111\r
+10010000\r
+10010000\r
+01101101\r
+10000000\r
+01101100\r
+00100000\r
+01110000\r
+00110000\r
+00100011\r
+00001000\r
+10000000\r
+00100011\r
+00001000\r
+10000111\r
+01110001\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00101000\r
+00111001\r
+11001001\r
+00100011\r
+00001000\r
+10001000\r
+00100011\r
+00001000\r
+10001111\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00100100\r
+00001000\r
+10000000\r
+00100100\r
+00001000\r
+10000111\r
+00101000\r
+00111001\r
+00100100\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+00100000\r
+00100100\r
+00001000\r
+10001000\r
+00100100\r
+00001000\r
+10001111\r
+01101100\r
+00110000\r
+01101101\r
+10000010\r
+10010011\r
+10000001\r
+10010010\r
+00001100\r
+00100101\r
+00001000\r
+10000000\r
+00100101\r
+00001000\r
+10000111\r
+01000110\r
+10000000\r
+01100010\r
+10010000\r
+01100011\r
+10100000\r
+01100100\r
+10110000\r
+00100101\r
+00001000\r
+10001000\r
+00100101\r
+00001000\r
+10001111\r
+01100101\r
+00000001\r
+10100001\r
+10110001\r
+10000000\r
+01100010\r
+10010000\r
+01100011\r
+00100110\r
+00001000\r
+10000000\r
+00100110\r
+00001000\r
+10000111\r
+10100000\r
+01100100\r
+10110000\r
+01100101\r
+00111100\r
+00111010\r
+00110000\r
+10000000\r
+00100110\r
+00001000\r
+10001000\r
+00100110\r
+00001000\r
+10001111\r
+01101100\r
+10010000\r
+01101101\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+10000010\r
+00100111\r
+00001000\r
+10000000\r
+00100111\r
+00001000\r
+10000111\r
+10010011\r
+10000000\r
+10010010\r
+11101100\r
+00100010\r
+01000000\r
+01100010\r
+01010000\r
+00100111\r
+00001000\r
+10001000\r
+00100111\r
+00001000\r
+10001111\r
+01100011\r
+01100000\r
+01100100\r
+01110000\r
+01100101\r
+01001111\r
+01011111\r
+01101111\r
+00101000\r
+00001000\r
+10000000\r
+00101000\r
+00001000\r
+10000111\r
+01111111\r
+00111100\r
+00111010\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+10000000\r
+00101000\r
+00001000\r
+10001000\r
+00101000\r
+00001000\r
+10001111\r
+01110000\r
+10010000\r
+01110001\r
+00101000\r
+00111001\r
+01111001\r
+01000000\r
+01100010\r
+00101001\r
+00001000\r
+10000000\r
+00101001\r
+00001000\r
+10000111\r
+01010000\r
+01100011\r
+01100000\r
+01100100\r
+01110000\r
+01100101\r
+10000000\r
+10001110\r
+00101001\r
+00001000\r
+10001000\r
+00101001\r
+00001000\r
+10001111\r
+10011001\r
+10000111\r
+10010000\r
+00001000\r
+00011111\r
+00001111\r
+00001111\r
+00001111\r
+00101010\r
+00001000\r
+10000000\r
+00101010\r
+00001000\r
+10000111\r
+00010001\r
+00101111\r
+00111111\r
+10001111\r
+10011111\r
+11101111\r
+11111111\r
+00100000\r
+00101010\r
+00001000\r
+10001000\r
+00101010\r
+00001000\r
+10001111\r
+01110010\r
+00110000\r
+01110011\r
+10000000\r
+01101110\r
+10010000\r
+01101111\r
+00101000\r
+00101011\r
+00001000\r
+10000000\r
+00101011\r
+00001000\r
+10000111\r
+00111001\r
+11010001\r
+11100000\r
+01110010\r
+11110000\r
+01110011\r
+11100000\r
+11111111\r
+00101011\r
+00001000\r
+10001000\r
+00101011\r
+00001000\r
+10001111\r
+11100000\r
+10000000\r
+01110010\r
+10010000\r
+01110011\r
+00000001\r
+00100100\r
+10000000\r
+00101100\r
+00001000\r
+10000000\r
+00101100\r
+00001000\r
+10000111\r
+10010010\r
+00111100\r
+10010000\r
+01110011\r
+10000000\r
+01110010\r
+11101100\r
+01111000\r
+00101100\r
+00001000\r
+10001000\r
+00101100\r
+00001000\r
+10001111\r
+00000100\r
+10000000\r
+10010000\r
+11110110\r
+01010101\r
+11111111\r
+11101111\r
+10011111\r
+00101101\r
+00001000\r
+10000000\r
+00101101\r
+00001000\r
+10000111\r
+10001111\r
+00111111\r
+00101111\r
+00001111\r
+00001111\r
+00001111\r
+00011111\r
+00011000\r
+00101101\r
+00001000\r
+10001000\r
+00101101\r
+00001000\r
+10001111\r
+01001000\r
+00100000\r
+01101110\r
+00110000\r
+01101111\r
+00101111\r
+00111111\r
+10000100\r
+00101110\r
+00001000\r
+10000000\r
+00101110\r
+00001000\r
+10000111\r
+00100000\r
+00111000\r
+00010100\r
+00100000\r
+00110000\r
+10000000\r
+01110010\r
+10010000\r
+00101110\r
+00001000\r
+10001000\r
+00101110\r
+00001000\r
+10001111\r
+01110011\r
+00101000\r
+00111001\r
+01101001\r
+11100000\r
+01101110\r
+11110000\r
+01101111\r
+00101111\r
+00001000\r
+10000000\r
+00101111\r
+00001000\r
+10000111\r
+11100000\r
+11111111\r
+01000000\r
+10000000\r
+01101110\r
+10010000\r
+01101111\r
+00000001\r
+00101111\r
+00001000\r
+10001000\r
+00101111\r
+00001000\r
+10001111\r
+00100100\r
+10000000\r
+10010010\r
+00010100\r
+10000000\r
+10010000\r
+10010000\r
+01101111\r
+00110000\r
+00001000\r
+10000000\r
+00110000\r
+00001000\r
+10000111\r
+10000000\r
+01101110\r
+00111010\r
+00000110\r
+00111010\r
+01010101\r
+00111011\r
+00000110\r
+00110000\r
+00001000\r
+10001000\r
+00110000\r
+00001000\r
+10001111\r
+00111011\r
+00001000\r
+00111010\r
+01010101\r
+00111011\r
+11111010\r
+00111011\r
+00001000\r
+00110001\r
+00001000\r
+10000000\r
+00110001\r
+00001000\r
+10000111\r
+00011111\r
+00001111\r
+00001111\r
+00001111\r
+00010001\r
+00101111\r
+00111111\r
+10001111\r
+00110001\r
+00001000\r
+10001000\r
+00110001\r
+00001000\r
+10001111\r
+10011111\r
+10101111\r
+10111111\r
+11101111\r
+11111111\r
+01011100\r
+00000110\r
+10001001\r
+00110010\r
+00001000\r
+10000000\r
+00110010\r
+00001000\r
+10000111\r
+10010000\r
+10010000\r
+01100111\r
+10000000\r
+01100110\r
+01011011\r
+00000110\r
+10001010\r
+00110010\r
+00001000\r
+10001000\r
+00110010\r
+00001000\r
+10001111\r
+10010000\r
+10010000\r
+01100111\r
+10000000\r
+01100110\r
+00100000\r
+01110000\r
+00110000\r
+00110011\r
+00001000\r
+10000000\r
+00110011\r
+00001000\r
+10000111\r
+01110001\r
+00101111\r
+00111111\r
+10000100\r
+00100000\r
+00111000\r
+00010100\r
+00100000\r
+00110011\r
+00001000\r
+10001000\r
+00110011\r
+00001000\r
+10001111\r
+00110000\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00101000\r
+00111001\r
+00001001\r
+00110100\r
+00001000\r
+10000000\r
+00110100\r
+00001000\r
+10000111\r
+01011111\r
+11100000\r
+01110000\r
+11110000\r
+01110001\r
+10001100\r
+11101110\r
+11111011\r
+00110100\r
+00001000\r
+10001000\r
+00110100\r
+00001000\r
+10001111\r
+10000000\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+00000001\r
+00100100\r
+10000000\r
+00110101\r
+00001000\r
+10000000\r
+00110101\r
+00001000\r
+10000111\r
+10010010\r
+00010100\r
+10000000\r
+10010000\r
+10010000\r
+01110001\r
+10000000\r
+01110000\r
+00110101\r
+00001000\r
+10001000\r
+00110101\r
+00001000\r
+10001111\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00110110\r
+00001000\r
+10000000\r
+00110110\r
+00001000\r
+10000111\r
+00101000\r
+00111001\r
+00001001\r
+01000011\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+00110110\r
+00001000\r
+10001000\r
+00110110\r
+00001000\r
+10001111\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00101000\r
+00111001\r
+00011100\r
+10000000\r
+00110111\r
+00001000\r
+10000000\r
+00110111\r
+00001000\r
+10000111\r
+01101100\r
+10010000\r
+01101101\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+10000010\r
+00110111\r
+00001000\r
+10001000\r
+00110111\r
+00001000\r
+10001111\r
+10010011\r
+10000000\r
+10010010\r
+01011100\r
+10000000\r
+01100010\r
+10010000\r
+01100011\r
+00111000\r
+00001000\r
+10000000\r
+00111000\r
+00001000\r
+10000111\r
+10100000\r
+01100100\r
+10110000\r
+01100101\r
+00000001\r
+10100001\r
+10110001\r
+10000000\r
+00111000\r
+00001000\r
+10001000\r
+00111000\r
+00001000\r
+10001111\r
+01100010\r
+10010000\r
+01100011\r
+10100000\r
+01100100\r
+10110000\r
+01100101\r
+00111100\r
+00111001\r
+00001000\r
+10000000\r
+00111001\r
+00001000\r
+10000111\r
+00111010\r
+00010101\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+00100000\r
+01101100\r
+00111001\r
+00001000\r
+10001000\r
+00111001\r
+00001000\r
+10001111\r
+00110000\r
+01101101\r
+10000010\r
+10010011\r
+10000001\r
+10010010\r
+01000100\r
+11011100\r
+00111010\r
+00001000\r
+10000000\r
+00111010\r
+00001000\r
+10000111\r
+10001011\r
+10010000\r
+10010000\r
+01100111\r
+10000000\r
+01100110\r
+10011010\r
+10001111\r
+00111010\r
+00001000\r
+10001000\r
+00111010\r
+00001000\r
+10001111\r
+10000000\r
+10001111\r
+01111000\r
+11111111\r
+11101111\r
+10111111\r
+10101111\r
+10011111\r
+00111011\r
+00001000\r
+10000000\r
+00111011\r
+00001000\r
+10000111\r
+10001111\r
+00111111\r
+00101111\r
+00001111\r
+00001111\r
+00001111\r
+00011111\r
+00011000\r
+00111011\r
+00001000\r
+10001000\r
+00111011\r
+00001000\r
+10001111\r
+00011111\r
+00001111\r
+00001111\r
+00001111\r
+00010001\r
+10001111\r
+10011111\r
+10101111\r
+00111100\r
+00001000\r
+10000000\r
+00111100\r
+00001000\r
+10000111\r
+10111111\r
+10000000\r
+01100000\r
+10010000\r
+01100001\r
+10000010\r
+00000001\r
+10010000\r
+00111100\r
+00001000\r
+10001000\r
+00111100\r
+00001000\r
+10001111\r
+01100001\r
+10000000\r
+01100000\r
+10000000\r
+01101000\r
+10010000\r
+01101001\r
+10100000\r
+00111101\r
+00001000\r
+10000000\r
+00111101\r
+00001000\r
+10000111\r
+01101010\r
+10110000\r
+01101011\r
+00000001\r
+10100001\r
+10110001\r
+10000000\r
+01101000\r
+00111101\r
+00001000\r
+10001000\r
+00111101\r
+00001000\r
+10001111\r
+10010000\r
+01101001\r
+10100000\r
+01101010\r
+10110000\r
+01101011\r
+10000000\r
+10000011\r
+00111110\r
+00001000\r
+10000000\r
+00111110\r
+00001000\r
+10000111\r
+10001000\r
+10000111\r
+10111111\r
+10101111\r
+10011111\r
+10001111\r
+00001111\r
+00001111\r
+00111110\r
+00001000\r
+10001000\r
+00111110\r
+00001000\r
+10001111\r
+00001111\r
+00011111\r
+00011000\r
+00010000\r
+01101101\r
+00010000\r
+01101100\r
+00010000\r
+00111111\r
+00001000\r
+10000000\r
+00111111\r
+00001000\r
+10000111\r
+01110001\r
+00010000\r
+01110000\r
+00010000\r
+01110011\r
+00010000\r
+01110010\r
+00010000\r
+00111111\r
+00001000\r
+10001000\r
+00111111\r
+00001000\r
+10001111\r
+01101111\r
+00010000\r
+01101110\r
+00010000\r
+00011001\r
+10001010\r
+10001000\r
+10001010\r
+01000000\r
+00001000\r
+10000000\r
+01000000\r
+00001000\r
+10000111\r
+01011001\r
+00001000\r
+11001111\r
+11011111\r
+11011110\r
+11001101\r
+10001100\r
+10000110\r
+01000000\r
+00001000\r
+10001000\r
+01000000\r
+00001000\r
+10001111\r
+00010111\r
+00010000\r
+01101101\r
+00010000\r
+01101100\r
+00010000\r
+01110001\r
+00010000\r
+01000001\r
+00001000\r
+10000000\r
+01000001\r
+00001000\r
+10000111\r
+01110000\r
+00010000\r
+01110011\r
+00010000\r
+01110010\r
+00010000\r
+01101111\r
+00010000\r
+01000001\r
+00001000\r
+10001000\r
+01000001\r
+00001000\r
+10001111\r
+01101110\r
+00010000\r
+00011001\r
+10001010\r
+10001000\r
+10001010\r
+01011001\r
+10001111\r
+01000010\r
+00001000\r
+10000000\r
+01000010\r
+00001000\r
+10000111\r
+10001011\r
+00011111\r
+01111000\r
+00111111\r
+01000000\r
+01100010\r
+01010000\r
+01100011\r
+01000010\r
+00001000\r
+10001000\r
+01000010\r
+00001000\r
+10001111\r
+01100000\r
+01100100\r
+01110000\r
+01100101\r
+00111100\r
+00111010\r
+01001110\r
+01011111\r
+01000011\r
+00001000\r
+10000000\r
+01000011\r
+00001000\r
+10000111\r
+01101111\r
+01111111\r
+01111010\r
+10001011\r
+01000000\r
+01100010\r
+01010000\r
+01100011\r
+01000011\r
+00001000\r
+10001000\r
+01000011\r
+00001000\r
+10001111\r
+01100000\r
+01100100\r
+01110000\r
+01100101\r
+00111100\r
+00111010\r
+00111011\r
+00111101\r
+01000100\r
+00001000\r
+10000000\r
+01000100\r
+00001000\r
+10000111\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+01000100\r
+00001000\r
+10001000\r
+01000100\r
+00001000\r
+10001111\r
+10000010\r
+10010011\r
+00001001\r
+00010101\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+01000101\r
+00001000\r
+10000000\r
+01000101\r
+00001000\r
+10000111\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00000001\r
+00100100\r
+10000000\r
+10010010\r
+01000101\r
+00001000\r
+10001000\r
+01000101\r
+00001000\r
+10001111\r
+00010100\r
+10000000\r
+10010000\r
+10010000\r
+01101101\r
+10000000\r
+01101100\r
+00100000\r
+01000110\r
+00001000\r
+10000000\r
+01000110\r
+00001000\r
+10000111\r
+01110000\r
+00110000\r
+01110001\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00101000\r
+01000110\r
+00001000\r
+10001000\r
+01000110\r
+00001000\r
+10001111\r
+00111001\r
+11001001\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+10000000\r
+01101100\r
+01000111\r
+00001000\r
+10000000\r
+01000111\r
+00001000\r
+10000111\r
+10010000\r
+01101101\r
+00101000\r
+00111001\r
+00001100\r
+00001000\r
+10000000\r
+01101100\r
+01000111\r
+00001000\r
+10001000\r
+01000111\r
+00001000\r
+10001111\r
+10010000\r
+01101101\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+10000010\r
+10010011\r
+01001000\r
+00001000\r
+10000000\r
+01001000\r
+00001000\r
+10000111\r
+10000000\r
+10010010\r
+01110100\r
+01001111\r
+01011111\r
+01101111\r
+01111111\r
+01000000\r
+01001000\r
+00001000\r
+10001000\r
+01001000\r
+00001000\r
+10001111\r
+01100010\r
+01010000\r
+01100011\r
+01100000\r
+01100100\r
+01110000\r
+01100101\r
+00111100\r
+01001001\r
+00001000\r
+10000000\r
+01001001\r
+00001000\r
+10000111\r
+00111010\r
+00100000\r
+01101110\r
+00110000\r
+01101111\r
+00101111\r
+00111111\r
+10000100\r
+01001001\r
+00001000\r
+10001000\r
+01001001\r
+00001000\r
+10001111\r
+00100000\r
+00111000\r
+00010100\r
+00100000\r
+00110000\r
+10000000\r
+01110010\r
+10010000\r
+01001010\r
+00001000\r
+10000000\r
+01001010\r
+00001000\r
+10000111\r
+01110011\r
+00101000\r
+00111001\r
+01101001\r
+11100000\r
+01101110\r
+11110000\r
+01101111\r
+01001010\r
+00001000\r
+10001000\r
+01001010\r
+00001000\r
+10001111\r
+11100000\r
+11111111\r
+10001111\r
+10000000\r
+10000000\r
+01101110\r
+10010000\r
+01101111\r
+01001011\r
+00001000\r
+10000000\r
+01001011\r
+00001000\r
+10000111\r
+00000001\r
+00100100\r
+10000000\r
+10010010\r
+00010100\r
+10000000\r
+10010000\r
+10010000\r
+01001011\r
+00001000\r
+10001000\r
+01001011\r
+00001000\r
+10001111\r
+01101111\r
+10000000\r
+01101110\r
+00111010\r
+11010100\r
+00111010\r
+01010101\r
+00111011\r
+01001100\r
+00001000\r
+10000000\r
+01001100\r
+00001000\r
+10000111\r
+11001100\r
+00111011\r
+00100000\r
+01101110\r
+00110000\r
+01101111\r
+00101111\r
+00111111\r
+01001100\r
+00001000\r
+10001000\r
+01001100\r
+00001000\r
+10001111\r
+10000100\r
+00100000\r
+00111000\r
+00010100\r
+00100000\r
+00110000\r
+10000000\r
+01110010\r
+01001101\r
+00001000\r
+10000000\r
+01001101\r
+00001000\r
+10000111\r
+10010000\r
+01110011\r
+00101000\r
+00111001\r
+01101001\r
+11100000\r
+01101110\r
+11110000\r
+01001101\r
+00001000\r
+10001000\r
+01001101\r
+00001000\r
+10001111\r
+01101111\r
+11100000\r
+11111111\r
+10000010\r
+10000000\r
+10000000\r
+01101110\r
+10010000\r
+01001110\r
+00001000\r
+10000000\r
+01001110\r
+00001000\r
+10000111\r
+01101111\r
+00000001\r
+00100100\r
+10000000\r
+10010010\r
+00010100\r
+10000000\r
+10010000\r
+01001110\r
+00001000\r
+10001000\r
+01001110\r
+00001000\r
+10001111\r
+10010000\r
+01101111\r
+10000000\r
+01101110\r
+00111010\r
+10100101\r
+00111010\r
+01010101\r
+01001111\r
+00001000\r
+10000000\r
+01001111\r
+00001000\r
+10000111\r
+00111011\r
+10011101\r
+00111011\r
+00100000\r
+01101110\r
+00110000\r
+01101111\r
+00101111\r
+01001111\r
+00001000\r
+10001000\r
+01001111\r
+00001000\r
+10001111\r
+00111111\r
+10000100\r
+00100000\r
+00111000\r
+00010100\r
+00100000\r
+00110000\r
+10000000\r
+01010000\r
+00001000\r
+10000000\r
+01010000\r
+00001000\r
+10000111\r
+01110010\r
+10010000\r
+01110011\r
+00101000\r
+00111001\r
+01101001\r
+11100000\r
+01101110\r
+01010000\r
+00001000\r
+10001000\r
+01010000\r
+00001000\r
+10001111\r
+11110000\r
+01101111\r
+11100000\r
+11111111\r
+10001001\r
+10000000\r
+10000000\r
+01101110\r
+01010001\r
+00001000\r
+10000000\r
+01010001\r
+00001000\r
+10000111\r
+10010000\r
+01101111\r
+00000001\r
+00100100\r
+10000000\r
+10010010\r
+00010100\r
+10000000\r
+01010001\r
+00001000\r
+10001000\r
+01010001\r
+00001000\r
+10001111\r
+10010000\r
+10010000\r
+01101111\r
+10000000\r
+01101110\r
+00111010\r
+01111000\r
+00111010\r
+01010010\r
+00001000\r
+10000000\r
+01010010\r
+00001000\r
+10000111\r
+01010101\r
+00111011\r
+01110010\r
+00111011\r
+00100000\r
+01101110\r
+00110000\r
+01101111\r
+01010010\r
+00001000\r
+10001000\r
+01010010\r
+00001000\r
+10001111\r
+00101111\r
+00111111\r
+10000100\r
+00100000\r
+00111000\r
+00010100\r
+00100000\r
+00110000\r
+01010011\r
+00001000\r
+10000000\r
+01010011\r
+00001000\r
+10000111\r
+10000000\r
+01110010\r
+10010000\r
+01110011\r
+00101000\r
+00111001\r
+01101001\r
+11100000\r
+01010011\r
+00001000\r
+10001000\r
+01010011\r
+00001000\r
+10001111\r
+01101110\r
+11110000\r
+01101111\r
+11100000\r
+11111111\r
+10000100\r
+10000000\r
+10000000\r
+01010100\r
+00001000\r
+10000000\r
+01010100\r
+00001000\r
+10000111\r
+01101110\r
+10010000\r
+01101111\r
+00000001\r
+00100100\r
+10000000\r
+10010010\r
+00010100\r
+01010100\r
+00001000\r
+10001000\r
+01010100\r
+00001000\r
+10001111\r
+10000000\r
+10010000\r
+10010000\r
+01101111\r
+10000000\r
+01101110\r
+00111010\r
+01001011\r
+01010101\r
+00001000\r
+10000000\r
+01010101\r
+00001000\r
+10000111\r
+00111010\r
+01010101\r
+00111011\r
+01000101\r
+00111011\r
+00100000\r
+01101110\r
+00110000\r
+01010101\r
+00001000\r
+10001000\r
+01010101\r
+00001000\r
+10001111\r
+01101111\r
+00101111\r
+00111111\r
+10000100\r
+00100000\r
+00111000\r
+00010100\r
+00100000\r
+01010110\r
+00001000\r
+10000000\r
+01010110\r
+00001000\r
+10000111\r
+00110000\r
+10000000\r
+01110010\r
+10010000\r
+01110011\r
+00101000\r
+00111001\r
+01101001\r
+01010110\r
+00001000\r
+10001000\r
+01010110\r
+00001000\r
+10001111\r
+11100000\r
+01101110\r
+11110000\r
+01101111\r
+11100000\r
+11111111\r
+10000011\r
+10000000\r
+01010111\r
+00001000\r
+10000000\r
+01010111\r
+00001000\r
+10000111\r
+10000000\r
+01101110\r
+10010000\r
+01101111\r
+00000001\r
+00100100\r
+10000000\r
+10010010\r
+01010111\r
+00001000\r
+10001000\r
+01010111\r
+00001000\r
+10001111\r
+00010100\r
+10000000\r
+10010000\r
+10010000\r
+01101111\r
+10000000\r
+01101110\r
+00111010\r
+01011000\r
+00001000\r
+10000000\r
+01011000\r
+00001000\r
+10000111\r
+00011110\r
+00111010\r
+01010101\r
+00111011\r
+00011000\r
+00111011\r
+00100000\r
+01101110\r
+01011000\r
+00001000\r
+10001000\r
+01011000\r
+00001000\r
+10001111\r
+00110000\r
+01101111\r
+00101111\r
+00111111\r
+10000100\r
+00100000\r
+00111000\r
+00010100\r
+01011001\r
+00001000\r
+10000000\r
+01011001\r
+00001000\r
+10000111\r
+00100000\r
+00110000\r
+10000000\r
+01110010\r
+10010000\r
+01110011\r
+00101000\r
+00111001\r
+01011001\r
+00001000\r
+10001000\r
+01011001\r
+00001000\r
+10001111\r
+01101001\r
+11100000\r
+01101110\r
+11110000\r
+01101111\r
+11100000\r
+11111111\r
+10001010\r
+01011010\r
+00001000\r
+10000000\r
+01011010\r
+00001000\r
+10000111\r
+10000000\r
+10000000\r
+01101110\r
+10010000\r
+01101111\r
+00000001\r
+00100100\r
+10000000\r
+01011010\r
+00001000\r
+10001000\r
+01011010\r
+00001000\r
+10001111\r
+10010010\r
+00010100\r
+10000000\r
+10010000\r
+10010000\r
+01101111\r
+10000000\r
+01101110\r
+01011011\r
+00001000\r
+10000000\r
+01011011\r
+00001000\r
+10000111\r
+00111010\r
+10000010\r
+00111010\r
+01010101\r
+00111011\r
+10000010\r
+00111011\r
+00100000\r
+01011011\r
+00001000\r
+10001000\r
+01011011\r
+00001000\r
+10001111\r
+01101100\r
+00110000\r
+01101101\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+10000010\r
+01011100\r
+00001000\r
+10000000\r
+01011100\r
+00001000\r
+10000111\r
+10010011\r
+00001001\r
+10000010\r
+11100000\r
+01101100\r
+11110000\r
+01101101\r
+11101110\r
+01011100\r
+00001000\r
+10001000\r
+01011100\r
+00001000\r
+10001111\r
+11111011\r
+11100000\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00000001\r
+00100100\r
+01011101\r
+00001000\r
+10000000\r
+01011101\r
+00001000\r
+10000111\r
+10000000\r
+10010010\r
+00010100\r
+10000000\r
+10010000\r
+10010000\r
+01101101\r
+10000000\r
+01011101\r
+00001000\r
+10001000\r
+01011101\r
+00001000\r
+10001111\r
+01101100\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+10000000\r
+01101100\r
+10010000\r
+01011110\r
+00001000\r
+10000000\r
+01011110\r
+00001000\r
+10000111\r
+01101101\r
+00101000\r
+00111001\r
+00001001\r
+11001010\r
+00100000\r
+01110000\r
+00110000\r
+01011110\r
+00001000\r
+10001000\r
+01011110\r
+00001000\r
+10001111\r
+01110001\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00101000\r
+00111001\r
+00001100\r
+01011111\r
+00001000\r
+10000000\r
+01011111\r
+00001000\r
+10000111\r
+10110000\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00100000\r
+01110000\r
+00110000\r
+01011111\r
+00001000\r
+10001000\r
+01011111\r
+00001000\r
+10001111\r
+01110001\r
+10000010\r
+10010011\r
+10000000\r
+10010010\r
+00001100\r
+10110000\r
+11111111\r
+01100000\r
+00001000\r
+10000000\r
+01100000\r
+00001000\r
+10000111\r
+11100111\r
+11110000\r
+11100001\r
+00001001\r
+10110010\r
+11100010\r
+00001001\r
+10101111\r
+01100000\r
+00001000\r
+10001000\r
+01100000\r
+00001000\r
+10001111\r
+01000100\r
+00100000\r
+01101110\r
+00110000\r
+01101111\r
+00101111\r
+00111111\r
+10000100\r
+01100001\r
+00001000\r
+10000000\r
+01100001\r
+00001000\r
+10000111\r
+00100000\r
+00111000\r
+00010100\r
+00100000\r
+00110000\r
+10000000\r
+01110010\r
+10010000\r
+01100001\r
+00001000\r
+10001000\r
+01100001\r
+00001000\r
+10001111\r
+01110011\r
+00101000\r
+00111001\r
+01101001\r
+11100000\r
+01101110\r
+11110000\r
+01101111\r
+01100010\r
+00001000\r
+10000000\r
+01100010\r
+00001000\r
+10000111\r
+11100000\r
+11111111\r
+01000000\r
+10000000\r
+01101110\r
+10010000\r
+01101111\r
+00000001\r
+01100010\r
+00001000\r
+10001000\r
+01100010\r
+00001000\r
+10001111\r
+00100100\r
+10000000\r
+10010010\r
+00010100\r
+10000000\r
+10010000\r
+10010000\r
+01101111\r
+01100011\r
+00001000\r
+10000000\r
+01100011\r
+00001000\r
+10000111\r
+10000000\r
+01101110\r
+00111010\r
+01111110\r
+00111010\r
+01010101\r
+00111011\r
+01111110\r
+01100011\r
+00001000\r
+10001000\r
+01100011\r
+00001000\r
+10001111\r
+00111011\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+10000000\r
+01110000\r
+10010000\r
+01100100\r
+00001000\r
+10000000\r
+01100100\r
+00001000\r
+10000111\r
+01110001\r
+10000010\r
+10010011\r
+00001001\r
+01111110\r
+00111100\r
+00111010\r
+00100000\r
+01100100\r
+00001000\r
+10001000\r
+01100100\r
+00001000\r
+10001111\r
+01101100\r
+00110000\r
+01101101\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+00101000\r
+01100101\r
+00001000\r
+10000000\r
+01100101\r
+00001000\r
+10000111\r
+00111001\r
+00001001\r
+01110000\r
+00111100\r
+00111010\r
+00100000\r
+01101100\r
+00110000\r
+01100101\r
+00001000\r
+10001000\r
+01100101\r
+00001000\r
+10001111\r
+01101101\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+00101000\r
+00111001\r
+00101001\r
+01100110\r
+00001000\r
+10000000\r
+01100110\r
+00001000\r
+10000111\r
+01100010\r
+00001000\r
+11100001\r
+11110001\r
+00000001\r
+00010001\r
+00111100\r
+00111010\r
+01100110\r
+00001000\r
+10001000\r
+01100110\r
+00001000\r
+10001111\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+01100111\r
+00001000\r
+10000000\r
+01100111\r
+00001000\r
+10000111\r
+10000010\r
+10010011\r
+01110001\r
+10111000\r
+10100111\r
+11100000\r
+01100010\r
+11110000\r
+01100111\r
+00001000\r
+10001000\r
+01100111\r
+00001000\r
+10001111\r
+01100011\r
+00000000\r
+01100100\r
+00010000\r
+01100101\r
+11001110\r
+10000000\r
+01110000\r
+01101000\r
+00001000\r
+10000000\r
+01101000\r
+00001000\r
+10000111\r
+10010000\r
+01110001\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+10000010\r
+10010011\r
+01101000\r
+00001000\r
+10001000\r
+01101000\r
+00001000\r
+10001111\r
+10000001\r
+10010010\r
+00001100\r
+11110111\r
+00000100\r
+00111011\r
+00110011\r
+00111011\r
+01101001\r
+00001000\r
+10000000\r
+01101001\r
+00001000\r
+10000111\r
+01100010\r
+00111010\r
+00101011\r
+00111010\r
+01011010\r
+00111011\r
+10001101\r
+00111010\r
+01101001\r
+00001000\r
+10001000\r
+01101001\r
+00001000\r
+10001111\r
+10000111\r
+00111011\r
+10111010\r
+00111010\r
+10110100\r
+00111011\r
+11100111\r
+00111010\r
+01101010\r
+00001000\r
+10000000\r
+01101010\r
+00001000\r
+10000111\r
+11100001\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+00100000\r
+01101100\r
+00110000\r
+01101010\r
+00001000\r
+10001000\r
+01101010\r
+00001000\r
+10001111\r
+01101101\r
+10000010\r
+10010011\r
+10000001\r
+10010010\r
+00001100\r
+01010000\r
+00111100\r
+01101011\r
+00001000\r
+10000000\r
+01101011\r
+00001000\r
+10000111\r
+00111010\r
+11111111\r
+11100111\r
+11110000\r
+11100001\r
+00001001\r
+01001110\r
+00100000\r
+01101011\r
+00001000\r
+10001000\r
+01101011\r
+00001000\r
+10001111\r
+01101100\r
+00110000\r
+01101101\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+10000010\r
+01101100\r
+00001000\r
+10000000\r
+01101100\r
+00001000\r
+10000111\r
+10010011\r
+00001001\r
+00110101\r
+11100000\r
+01101100\r
+11110000\r
+01101101\r
+11101110\r
+01101100\r
+00001000\r
+10001000\r
+01101100\r
+00001000\r
+10001111\r
+11111011\r
+11100000\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00000001\r
+00100100\r
+01101101\r
+00001000\r
+10000000\r
+01101101\r
+00001000\r
+10000111\r
+10000000\r
+10010010\r
+00010100\r
+10000000\r
+10010000\r
+10010000\r
+01101101\r
+10000000\r
+01101101\r
+00001000\r
+10001000\r
+01101101\r
+00001000\r
+10001111\r
+01101100\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+10000000\r
+01101100\r
+10010000\r
+01101110\r
+00001000\r
+10000000\r
+01101110\r
+00001000\r
+10000111\r
+01101101\r
+00101000\r
+00111001\r
+00001001\r
+10000110\r
+00100000\r
+01110000\r
+00110000\r
+01101110\r
+00001000\r
+10001000\r
+01101110\r
+00001000\r
+10001111\r
+01110001\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00101000\r
+00111001\r
+00001100\r
+01101111\r
+00001000\r
+10000000\r
+01101111\r
+00001000\r
+10000111\r
+01101100\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00100000\r
+01110000\r
+00110000\r
+01101111\r
+00001000\r
+10001000\r
+01101111\r
+00001000\r
+10001111\r
+01110001\r
+10000010\r
+10010011\r
+10000000\r
+10010010\r
+00001100\r
+01101100\r
+10101110\r
+01110000\r
+00001000\r
+10000000\r
+01110000\r
+00001000\r
+10000111\r
+10111011\r
+10100111\r
+10110000\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+10000000\r
+01110000\r
+00001000\r
+10001000\r
+01110000\r
+00001000\r
+10001111\r
+01110000\r
+10010000\r
+01110001\r
+00101000\r
+00111001\r
+00001001\r
+00000101\r
+11100000\r
+01110001\r
+00001000\r
+10000000\r
+01110001\r
+00001000\r
+10000111\r
+01101100\r
+11110000\r
+01101101\r
+11101110\r
+11111011\r
+11100000\r
+10000000\r
+01101100\r
+01110001\r
+00001000\r
+10001000\r
+01110001\r
+00001000\r
+10001111\r
+10010000\r
+01101101\r
+00000001\r
+00100100\r
+10000000\r
+10010010\r
+00010100\r
+10000000\r
+01110010\r
+00001000\r
+10000000\r
+01110010\r
+00001000\r
+10000111\r
+10010000\r
+10010000\r
+01101101\r
+10000000\r
+01101100\r
+00100000\r
+01110000\r
+00110000\r
+01110010\r
+00001000\r
+10001000\r
+01110010\r
+00001000\r
+10001111\r
+01110001\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00101000\r
+00111001\r
+00001001\r
+01110011\r
+00001000\r
+10000000\r
+01110011\r
+00001000\r
+10000111\r
+01001011\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+10000000\r
+01101100\r
+10010000\r
+01110011\r
+00001000\r
+10001000\r
+01110011\r
+00001000\r
+10001111\r
+01101101\r
+00101000\r
+00111001\r
+00001100\r
+00110001\r
+10000000\r
+01101100\r
+10010000\r
+01110100\r
+00001000\r
+10000000\r
+01110100\r
+00001000\r
+10000111\r
+01101101\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+10000010\r
+10010011\r
+10000000\r
+01110100\r
+00001000\r
+10001000\r
+01110100\r
+00001000\r
+10001111\r
+10010010\r
+00001100\r
+00110001\r
+01101110\r
+01110111\r
+01100111\r
+01110000\r
+00100000\r
+01110101\r
+00001000\r
+10000000\r
+01110101\r
+00001000\r
+10000111\r
+01101100\r
+00110000\r
+01101101\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+10000010\r
+01110101\r
+00001000\r
+10001000\r
+01110101\r
+00001000\r
+10001111\r
+10010011\r
+00001001\r
+11010101\r
+11100000\r
+01101100\r
+11110000\r
+01101101\r
+11101110\r
+01110110\r
+00001000\r
+10000000\r
+01110110\r
+00001000\r
+10000111\r
+11111011\r
+11100000\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00000001\r
+00100100\r
+01110110\r
+00001000\r
+10001000\r
+01110110\r
+00001000\r
+10001111\r
+10000000\r
+10010010\r
+00010100\r
+10000000\r
+10010000\r
+10010000\r
+01101101\r
+10000000\r
+01110111\r
+00001000\r
+10000000\r
+01110111\r
+00001000\r
+10000111\r
+01101100\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+10000000\r
+01101100\r
+10010000\r
+01110111\r
+00001000\r
+10001000\r
+01110111\r
+00001000\r
+10001111\r
+01101101\r
+00101000\r
+00111001\r
+00001001\r
+11011101\r
+00100000\r
+01110000\r
+00110000\r
+01111000\r
+00001000\r
+10000000\r
+01111000\r
+00001000\r
+10000111\r
+01110001\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00101000\r
+00111001\r
+00001100\r
+01111000\r
+00001000\r
+10001000\r
+01111000\r
+00001000\r
+10001111\r
+11000011\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00100000\r
+01110000\r
+00110000\r
+01111001\r
+00001000\r
+10000000\r
+01111001\r
+00001000\r
+10000111\r
+01110001\r
+10000010\r
+10010011\r
+10000000\r
+10010010\r
+00001100\r
+11000011\r
+01001110\r
+01111001\r
+00001000\r
+10001000\r
+01111001\r
+00001000\r
+10001111\r
+01010101\r
+01000111\r
+01010000\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+10000000\r
+01111010\r
+00001000\r
+10000000\r
+01111010\r
+00001000\r
+10000111\r
+01110000\r
+10010000\r
+01110001\r
+10000010\r
+10010011\r
+01101001\r
+00111100\r
+00111010\r
+01111010\r
+00001000\r
+10001000\r
+01111010\r
+00001000\r
+10001111\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+01111011\r
+00001000\r
+10000000\r
+01111011\r
+00001000\r
+10000111\r
+00101000\r
+00111001\r
+10011001\r
+11100000\r
+01101100\r
+11110000\r
+01101101\r
+11101110\r
+01111011\r
+00001000\r
+10001000\r
+01111011\r
+00001000\r
+10001111\r
+11111011\r
+11100000\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00000001\r
+00100100\r
+01111100\r
+00001000\r
+10000000\r
+01111100\r
+00001000\r
+10000111\r
+10000000\r
+10010010\r
+00010100\r
+10000000\r
+10010000\r
+10010000\r
+01101101\r
+10000000\r
+01111100\r
+00001000\r
+10001000\r
+01111100\r
+00001000\r
+10001111\r
+01101100\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+10000000\r
+01101100\r
+10010000\r
+01111101\r
+00001000\r
+10000000\r
+01111101\r
+00001000\r
+10000111\r
+01101101\r
+00101000\r
+00111001\r
+11001001\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+01111101\r
+00001000\r
+10001000\r
+01111101\r
+00001000\r
+10001111\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00101000\r
+00111001\r
+00001100\r
+10011111\r
+01111110\r
+00001000\r
+10000000\r
+01111110\r
+00001000\r
+10000111\r
+10000000\r
+01101100\r
+10010000\r
+01101101\r
+00100000\r
+01110000\r
+00110000\r
+01110001\r
+01111110\r
+00001000\r
+10001000\r
+01111110\r
+00001000\r
+10001111\r
+10000010\r
+10010011\r
+10000000\r
+10010010\r
+00010100\r
+00111100\r
+00111010\r
+01001000\r
+01111111\r
+00001000\r
+10000000\r
+01111111\r
+00001000\r
+10000111\r
+01101001\r
+10101010\r
+10001110\r
+10011001\r
+10000111\r
+10010000\r
+10001011\r
+10111111\r
+01111111\r
+00001000\r
+10001000\r
+01111111\r
+00001000\r
+10001111\r
+00111100\r
+00111010\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+10000000\r
+01110000\r
+00000000\r
+00000111\r
+10000000\r
+00000000\r
+00000111\r
+10000111\r
+10010000\r
+01110001\r
+10000010\r
+10010011\r
+00001001\r
+10111101\r
+00111100\r
+00111010\r
+00000000\r
+00000111\r
+10001000\r
+00000000\r
+00000111\r
+10001111\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+00000001\r
+00000111\r
+10000000\r
+00000001\r
+00000111\r
+10000111\r
+10000010\r
+10010011\r
+00101001\r
+10101111\r
+00111100\r
+00111010\r
+00100000\r
+01101100\r
+00000001\r
+00000111\r
+10001000\r
+00000001\r
+00000111\r
+10001111\r
+00110000\r
+01101101\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+00101000\r
+00111001\r
+00000010\r
+00000111\r
+10000000\r
+00000010\r
+00000111\r
+10000111\r
+00001001\r
+11101101\r
+00111100\r
+00111010\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+00000010\r
+00000111\r
+10001000\r
+00000010\r
+00000111\r
+10001111\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+00101000\r
+00111001\r
+00101001\r
+11011111\r
+00000011\r
+00000111\r
+10000000\r
+00000011\r
+00000111\r
+10000111\r
+00111100\r
+00111010\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+10000000\r
+01110000\r
+00000011\r
+00000111\r
+10001000\r
+00000011\r
+00000111\r
+10001111\r
+10010000\r
+01110001\r
+10000010\r
+10010011\r
+00001001\r
+00011101\r
+00111100\r
+00111010\r
+00000100\r
+00000111\r
+10000000\r
+00000100\r
+00000111\r
+10000111\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+00000100\r
+00000111\r
+10001000\r
+00000100\r
+00000111\r
+10001111\r
+10000010\r
+10010011\r
+00101001\r
+00001111\r
+10000000\r
+01110000\r
+10010000\r
+01110001\r
+00000101\r
+00000111\r
+10000000\r
+00000101\r
+00000111\r
+10000111\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+10000010\r
+10010011\r
+10000001\r
+10010010\r
+00000101\r
+00000111\r
+10001000\r
+00000101\r
+00000111\r
+10001111\r
+00001100\r
+00111101\r
+00111100\r
+00111010\r
+00111010\r
+10000000\r
+01110000\r
+10010000\r
+00000110\r
+00000111\r
+10000000\r
+00000110\r
+00000111\r
+10000111\r
+01110001\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+10000010\r
+10010011\r
+10000001\r
+00000110\r
+00000111\r
+10001000\r
+00000110\r
+00000111\r
+10001111\r
+10010010\r
+00001100\r
+10010100\r
+00111100\r
+00111010\r
+10010001\r
+10000000\r
+01110000\r
+00000111\r
+00000111\r
+10000000\r
+00000111\r
+00000111\r
+10000111\r
+10010000\r
+01110001\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+10000010\r
+10010011\r
+00000111\r
+00000111\r
+10001000\r
+00000111\r
+00000111\r
+10001111\r
+10000001\r
+10010010\r
+00001100\r
+11001111\r
+00111100\r
+00111010\r
+11001100\r
+10000000\r
+00001000\r
+00000111\r
+10000000\r
+00001000\r
+00000111\r
+10000111\r
+01110000\r
+10010000\r
+01110001\r
+00100000\r
+01101100\r
+00110000\r
+01101101\r
+10000010\r
+00001000\r
+00000111\r
+10001000\r
+00001000\r
+00000111\r
+10001111\r
+10010011\r
+10000001\r
+10010010\r
+00001100\r
+01100010\r
+00111100\r
+00111010\r
+01011111\r
+10000000\r
+00001000\r
+10000000\r
+10000000\r
+00001000\r
+10000111\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10010100\r
+00000001\r
+10010100\r
+00000000\r
+10000000\r
+00001000\r
+10001000\r
+10000000\r
+00001000\r
+10001111\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10000001\r
+00001000\r
+10000000\r
+10000001\r
+00001000\r
+10000111\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10000001\r
+00001000\r
+10001000\r
+10000001\r
+00001000\r
+10001111\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10000010\r
+00001000\r
+10000000\r
+10000010\r
+00001000\r
+10000111\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10000010\r
+00001000\r
+10001000\r
+10000010\r
+00001000\r
+10001111\r
+10010100\r
+00000000\r
+10010100\r
+00000011\r
+10010100\r
+00000010\r
+10010100\r
+00000000\r
+10000011\r
+00001000\r
+10000000\r
+10000011\r
+00001000\r
+10000111\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10000011\r
+00001000\r
+10001000\r
+10000011\r
+00001000\r
+10001111\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10000100\r
+00001000\r
+10000000\r
+10000100\r
+00001000\r
+10000111\r
+10010100\r
+00000000\r
+10010100\r
+00000000\r
+10010100\r
+00000011\r
+10010100\r
+00000000\r
+10000100\r
+00001000\r
+10001000\r
+10000100\r
+00001000\r
+10001111\r
+00100100\r
+10111110\r
+11101111\r
+11100000\r
+10111111\r
+10111111\r
+11100000\r
+11100110\r
+10000101\r
+00001000\r
+10000000\r
+10000101\r
+00001000\r
+10000111\r
+11100000\r
+11100010\r
+11100001\r
+11000000\r
+10010000\r
+10010010\r
+00110110\r
+00000111\r
+10000101\r
+00001000\r
+10001000\r
+10000101\r
+00001000\r
+10001111\r
+11110111\r
+11100000\r
+11100110\r
+11100000\r
+11000000\r
+10010010\r
+00110111\r
+00000111\r
+10000110\r
+00001000\r
+10000000\r
+10000110\r
+00001000\r
+10000111\r
+11110111\r
+10010100\r
+00000100\r
+10010100\r
+00000000\r
+00101111\r
+00100111\r
+01110000\r
+10000110\r
+00001000\r
+10001000\r
+10000110\r
+00001000\r
+10001111\r
+10111101\r
+10111001\r
+10110001\r
+01101001\r
+10111001\r
+00101011\r
+11110000\r
+10011010\r
+10000111\r
+00001000\r
+10000000\r
+10000111\r
+00001000\r
+10000111\r
+10010101\r
+10011000\r
+10010101\r
+10010101\r
+10010110\r
+11100000\r
+00110000\r
+00000111\r
+10000111\r
+00001000\r
+10001000\r
+10000111\r
+00001000\r
+10001111\r
+11110000\r
+11100000\r
+11100000\r
+10010101\r
+11111111\r
+10010101\r
+10010101\r
+10010101\r
+10001000\r
+00001000\r
+10000000\r
+10001000\r
+00001000\r
+10000111\r
+01001111\r
+10010101\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10010001\r
+00000000\r
+10001000\r
+00001000\r
+10001000\r
+10001000\r
+00001000\r
+10001111\r
+10010001\r
+00000000\r
+00010111\r
+00000111\r
+11110100\r
+10010001\r
+00000000\r
+10010001\r
+10001001\r
+00001000\r
+10000000\r
+10001001\r
+00001000\r
+10000111\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+00011011\r
+00001011\r
+11000000\r
+10001001\r
+00001000\r
+10001000\r
+10001001\r
+00001000\r
+10001111\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10001010\r
+00001000\r
+10000000\r
+10001010\r
+00001000\r
+10000111\r
+00011011\r
+00001011\r
+00000001\r
+10010101\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10001010\r
+00001000\r
+10001000\r
+10001010\r
+00001000\r
+10001111\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+11100000\r
+11100000\r
+00010111\r
+00000111\r
+10001011\r
+00001000\r
+10000000\r
+10001011\r
+00001000\r
+10000111\r
+11110100\r
+11100000\r
+11100000\r
+00000001\r
+10010101\r
+10010001\r
+00000100\r
+10010001\r
+10001011\r
+00001000\r
+10001000\r
+10001011\r
+00001000\r
+10001111\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+00010111\r
+00000111\r
+11110001\r
+10001100\r
+00001000\r
+10000000\r
+10001100\r
+00001000\r
+10000111\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10001100\r
+00001000\r
+10001000\r
+10001100\r
+00001000\r
+10001111\r
+00010111\r
+00000111\r
+11110100\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+10001101\r
+00001000\r
+10000000\r
+10001101\r
+00001000\r
+10000111\r
+00000100\r
+10010001\r
+00000100\r
+11100000\r
+11100000\r
+00011011\r
+00001011\r
+01010000\r
+10001101\r
+00001000\r
+10001000\r
+10001101\r
+00001000\r
+10001111\r
+01000000\r
+11110100\r
+11000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10010001\r
+10001110\r
+00001000\r
+10000000\r
+10001110\r
+00001000\r
+10000111\r
+00000000\r
+10010001\r
+00000000\r
+11100000\r
+11100000\r
+00011011\r
+00001011\r
+01010000\r
+10001110\r
+00001000\r
+10001000\r
+10001110\r
+00001000\r
+10001111\r
+01000000\r
+11110000\r
+11100000\r
+11100000\r
+11000000\r
+11100000\r
+11100000\r
+00000001\r
+10001111\r
+00001000\r
+10000000\r
+10001111\r
+00001000\r
+10000111\r
+10010101\r
+10010001\r
+00001000\r
+10010001\r
+00001000\r
+10010001\r
+00000000\r
+10010001\r
+10001111\r
+00001000\r
+10001000\r
+10001111\r
+00001000\r
+10001111\r
+00000000\r
+11100000\r
+11100000\r
+00010111\r
+00000111\r
+11110100\r
+11100000\r
+11100000\r
+10010000\r
+00001000\r
+10000000\r
+10010000\r
+00001000\r
+10000111\r
+00000001\r
+10010101\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00001000\r
+10010000\r
+00001000\r
+10001000\r
+10010000\r
+00001000\r
+10001111\r
+10010001\r
+00001000\r
+00010111\r
+00000111\r
+11110001\r
+10010001\r
+00000000\r
+10010001\r
+10010001\r
+00001000\r
+10000000\r
+10010001\r
+00001000\r
+10000111\r
+00000000\r
+10010001\r
+00001000\r
+10010001\r
+00001000\r
+00010111\r
+00000111\r
+11110100\r
+10010001\r
+00001000\r
+10001000\r
+10010001\r
+00001000\r
+10001111\r
+10010001\r
+00001000\r
+10010001\r
+00001000\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010010\r
+00001000\r
+10000000\r
+10010010\r
+00001000\r
+10000111\r
+11100000\r
+11100000\r
+00011011\r
+00001011\r
+01010000\r
+01000000\r
+11110100\r
+11000000\r
+10010010\r
+00001000\r
+10001000\r
+10010010\r
+00001000\r
+10001111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00001000\r
+10010001\r
+00001000\r
+10010011\r
+00001000\r
+10000000\r
+10010011\r
+00001000\r
+10000111\r
+11100000\r
+11100000\r
+00011011\r
+00001011\r
+01010000\r
+01000000\r
+11110000\r
+11100000\r
+10010011\r
+00001000\r
+10001000\r
+10010011\r
+00001000\r
+10001111\r
+11100000\r
+11000000\r
+11100000\r
+11100000\r
+00000001\r
+10010101\r
+00101011\r
+11110000\r
+10010100\r
+00001000\r
+10000000\r
+10010100\r
+00001000\r
+10000111\r
+11101000\r
+10111011\r
+11100000\r
+10111011\r
+10010101\r
+10111010\r
+10111010\r
+10010101\r
+10010100\r
+00001000\r
+10001000\r
+10010100\r
+00001000\r
+10001111\r
+10111011\r
+10111011\r
+10111011\r
+10111011\r
+10010101\r
+10010010\r
+10010010\r
+10110110\r
+10010101\r
+00001000\r
+10000000\r
+10010101\r
+00001000\r
+10000111\r
+10010010\r
+00100100\r
+10111110\r
+10010100\r
+10010000\r
+10111110\r
+10010000\r
+10010000\r
+10010101\r
+00001000\r
+10001000\r
+10010101\r
+00001000\r
+10001111\r
+10010101\r
+00101111\r
+01010011\r
+00110000\r
+11110100\r
+00101111\r
+00100111\r
+11111101\r
+10010110\r
+00001000\r
+10000000\r
+10010110\r
+00001000\r
+10000111\r
+10010101\r
+10010111\r
+10010101\r
+00101111\r
+01010110\r
+00110000\r
+11110100\r
+00101111\r
+10010110\r
+00001000\r
+10001000\r
+10010110\r
+00001000\r
+10001111\r
+00100111\r
+11111101\r
+10010101\r
+01010101\r
+01000000\r
+10010101\r
+00101111\r
+01010100\r
+10010111\r
+00001000\r
+10000000\r
+10010111\r
+00001000\r
+10000111\r
+00110000\r
+11110100\r
+00101111\r
+00100111\r
+11111101\r
+10010101\r
+10010111\r
+10010101\r
+10010111\r
+00001000\r
+10001000\r
+10010111\r
+00001000\r
+10001111\r
+11101111\r
+11101111\r
+10010101\r
+11100000\r
+11100000\r
+11101111\r
+11100000\r
+11100000\r
+10011000\r
+00001000\r
+10000000\r
+10011000\r
+00001000\r
+10000111\r
+11101111\r
+11101111\r
+11101111\r
+10111011\r
+00000001\r
+10010111\r
+11110111\r
+10111011\r
+10011000\r
+00001000\r
+10001000\r
+10011000\r
+00001000\r
+10001111\r
+00000001\r
+10010111\r
+11110111\r
+10111011\r
+00000001\r
+10010111\r
+11110111\r
+10111011\r
+10011001\r
+00001000\r
+10000000\r
+10011001\r
+00001000\r
+10000111\r
+00000001\r
+10010111\r
+11110111\r
+01010000\r
+01000000\r
+11110111\r
+11101111\r
+10111011\r
+10011001\r
+00001000\r
+10001000\r
+10011001\r
+00001000\r
+10001111\r
+11100001\r
+11100000\r
+11100000\r
+10110110\r
+10010100\r
+10010101\r
+10111101\r
+10111110\r
+10011010\r
+00001000\r
+10000000\r
+10011010\r
+00001000\r
+10000111\r
+10111101\r
+11001111\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+01011111\r
+01001111\r
+10011010\r
+00001000\r
+10001000\r
+10011010\r
+00001000\r
+10001111\r
+11100000\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+10010001\r
+00000000\r
+10011011\r
+00001000\r
+10000000\r
+10011011\r
+00001000\r
+10000111\r
+10010001\r
+00000000\r
+11100000\r
+11100000\r
+00010111\r
+00000111\r
+11110100\r
+11100000\r
+10011011\r
+00001000\r
+10001000\r
+10011011\r
+00001000\r
+10001111\r
+11100000\r
+00000001\r
+10010101\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+01011111\r
+10011100\r
+00001000\r
+10000000\r
+10011100\r
+00001000\r
+10000111\r
+01001111\r
+11100000\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+10010001\r
+10011100\r
+00001000\r
+10001000\r
+10011100\r
+00001000\r
+10001111\r
+00001000\r
+10010001\r
+00001000\r
+11100000\r
+11100000\r
+00010111\r
+00000111\r
+11110100\r
+10011101\r
+00001000\r
+10000000\r
+10011101\r
+00001000\r
+10000111\r
+11100000\r
+11100000\r
+00000001\r
+10010101\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10011101\r
+00001000\r
+10001000\r
+10011101\r
+00001000\r
+10001111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+01011111\r
+01001111\r
+01001111\r
+01001111\r
+10011110\r
+00001000\r
+10000000\r
+10011110\r
+00001000\r
+10000111\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10011110\r
+00001000\r
+10001000\r
+10011110\r
+00001000\r
+10001111\r
+00101011\r
+11110000\r
+10011010\r
+10011010\r
+10010101\r
+10011000\r
+10011000\r
+10010101\r
+10011111\r
+00001000\r
+10000000\r
+10011111\r
+00001000\r
+10000111\r
+10010100\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+10011111\r
+00001000\r
+10001000\r
+10011111\r
+00001000\r
+10001111\r
+00000000\r
+10010110\r
+00011101\r
+00011101\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10100000\r
+00001000\r
+10000000\r
+10100000\r
+00001000\r
+10000111\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10011000\r
+10011000\r
+11100000\r
+11100000\r
+10100000\r
+00001000\r
+10001000\r
+10100000\r
+00001000\r
+10001111\r
+10010111\r
+11110111\r
+11001111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+10100001\r
+00001000\r
+10000000\r
+10100001\r
+00001000\r
+10000111\r
+00000100\r
+10010001\r
+00000100\r
+00010111\r
+00000111\r
+11110100\r
+11000000\r
+10010001\r
+10100001\r
+00001000\r
+10001000\r
+10100001\r
+00001000\r
+10001111\r
+00000000\r
+10010001\r
+00000000\r
+01011000\r
+01001111\r
+10000001\r
+10010001\r
+00000000\r
+10100010\r
+00001000\r
+10000000\r
+10100010\r
+00001000\r
+10000111\r
+10010001\r
+00000000\r
+10010110\r
+11100000\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+10100010\r
+00001000\r
+10001000\r
+10100010\r
+00001000\r
+10001111\r
+11100000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+10100011\r
+00001000\r
+10000000\r
+10100011\r
+00001000\r
+10000111\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+00010111\r
+00000111\r
+11110000\r
+10100011\r
+00001000\r
+10001000\r
+10100011\r
+00001000\r
+10001111\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10100100\r
+00001000\r
+10000000\r
+10100100\r
+00001000\r
+10000111\r
+00010111\r
+00000111\r
+11110001\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10010001\r
+10100100\r
+00001000\r
+10001000\r
+10100100\r
+00001000\r
+10001111\r
+00000000\r
+10010001\r
+00000000\r
+00011011\r
+00001011\r
+01010000\r
+01000000\r
+11110000\r
+10100101\r
+00001000\r
+10000000\r
+10100101\r
+00001000\r
+10000111\r
+11000000\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+10100101\r
+00001000\r
+10001000\r
+10100101\r
+00001000\r
+10001111\r
+00000000\r
+10010110\r
+00011101\r
+00011101\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10100110\r
+00001000\r
+10000000\r
+10100110\r
+00001000\r
+10000111\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10011010\r
+10011010\r
+11000000\r
+10010001\r
+10100110\r
+00001000\r
+10001000\r
+10100110\r
+00001000\r
+10001111\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+00011011\r
+10100111\r
+00001000\r
+10000000\r
+10100111\r
+00001000\r
+10000111\r
+00001011\r
+01010000\r
+01000000\r
+11110110\r
+11000000\r
+10010001\r
+00000000\r
+10010001\r
+10100111\r
+00001000\r
+10001000\r
+10100111\r
+00001000\r
+10001111\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+01011111\r
+01001111\r
+01001111\r
+10101000\r
+00001000\r
+10000000\r
+10101000\r
+00001000\r
+10000111\r
+01001111\r
+10011010\r
+10011010\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+10101000\r
+00001000\r
+10001000\r
+10101000\r
+00001000\r
+10001111\r
+00000100\r
+10010001\r
+00000100\r
+00010111\r
+00000111\r
+11110011\r
+10010011\r
+00000000\r
+10101001\r
+00001000\r
+10000000\r
+10101001\r
+00001000\r
+10000111\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+11001111\r
+00101111\r
+10101001\r
+00001000\r
+10001000\r
+10101001\r
+00001000\r
+10001111\r
+00100111\r
+11111101\r
+10010101\r
+10010101\r
+10010010\r
+10010010\r
+10110110\r
+10010010\r
+10101010\r
+00001000\r
+10000000\r
+10101010\r
+00001000\r
+10000111\r
+00100100\r
+10010011\r
+10010011\r
+10010011\r
+10010011\r
+10010011\r
+10010011\r
+10010001\r
+10101010\r
+00001000\r
+10001000\r
+10101010\r
+00001000\r
+10001111\r
+00001000\r
+10010001\r
+00001000\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+00010111\r
+10101011\r
+00001000\r
+10000000\r
+10101011\r
+00001000\r
+10000111\r
+00000111\r
+11110000\r
+10010001\r
+00001000\r
+10010001\r
+00001000\r
+01011001\r
+01001111\r
+10101011\r
+00001000\r
+10001000\r
+10101011\r
+00001000\r
+10001111\r
+10000001\r
+10010001\r
+00001000\r
+10010001\r
+00001000\r
+10010110\r
+11100000\r
+00110000\r
+10101100\r
+00001000\r
+10000000\r
+10101100\r
+00001000\r
+10000111\r
+00000111\r
+11110100\r
+10010011\r
+00001000\r
+10010011\r
+00001000\r
+10111001\r
+10010100\r
+10101100\r
+00001000\r
+10001000\r
+10101100\r
+00001000\r
+10001111\r
+11000000\r
+11100000\r
+11100000\r
+11001111\r
+10011000\r
+10010001\r
+10010001\r
+10010001\r
+10101101\r
+00001000\r
+10000000\r
+10101101\r
+00001000\r
+10000111\r
+10010001\r
+10010001\r
+10010001\r
+10010000\r
+10111110\r
+10010000\r
+10010000\r
+10010101\r
+10101101\r
+00001000\r
+10001000\r
+10101101\r
+00001000\r
+10001111\r
+00101111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+01011111\r
+01001111\r
+11100000\r
+10101110\r
+00001000\r
+10000000\r
+10101110\r
+00001000\r
+10000111\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+10010001\r
+00001000\r
+10010001\r
+10101110\r
+00001000\r
+10001000\r
+10101110\r
+00001000\r
+10001111\r
+00001000\r
+00010111\r
+00000111\r
+11110011\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10101111\r
+00001000\r
+10000000\r
+10101111\r
+00001000\r
+10000111\r
+01011001\r
+01001111\r
+10000011\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010110\r
+10101111\r
+00001000\r
+10001000\r
+10101111\r
+00001000\r
+10001111\r
+11100000\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+10010011\r
+00000000\r
+10110000\r
+00001000\r
+10000000\r
+10110000\r
+00001000\r
+10000111\r
+10010011\r
+00000000\r
+10011011\r
+11000000\r
+10011000\r
+10011010\r
+10011011\r
+11000000\r
+10110000\r
+00001000\r
+10001000\r
+10110000\r
+00001000\r
+10001111\r
+10011000\r
+10010101\r
+10011010\r
+10011010\r
+10011001\r
+11001111\r
+10011010\r
+10010101\r
+10110001\r
+00001000\r
+10000000\r
+10110001\r
+00001000\r
+10000111\r
+10010010\r
+10010010\r
+10110110\r
+10010010\r
+00100100\r
+10010011\r
+10010011\r
+10010011\r
+10110001\r
+00001000\r
+10001000\r
+10110001\r
+00001000\r
+10001111\r
+10010011\r
+10010011\r
+10010011\r
+10010011\r
+10010011\r
+10011011\r
+11000000\r
+11101100\r
+10110010\r
+00001000\r
+10000000\r
+10110010\r
+00001000\r
+10000111\r
+11100000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10011011\r
+11000000\r
+11101100\r
+10110010\r
+00001000\r
+10001000\r
+10110010\r
+00001000\r
+10001111\r
+11100000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+10110011\r
+00001000\r
+10000000\r
+10110011\r
+00001000\r
+10000111\r
+00000100\r
+01011111\r
+01001111\r
+11100000\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+10110011\r
+00001000\r
+10001000\r
+10110011\r
+00001000\r
+10001111\r
+11100000\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+00010111\r
+00000111\r
+11110100\r
+10110100\r
+00001000\r
+10000000\r
+10110100\r
+00001000\r
+10000111\r
+11000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10110001\r
+01011000\r
+01001111\r
+10110100\r
+00001000\r
+10001000\r
+10110100\r
+00001000\r
+10001111\r
+10000011\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10010110\r
+11100000\r
+00110000\r
+10110101\r
+00001000\r
+10000000\r
+10110101\r
+00001000\r
+10000111\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+10010011\r
+00000100\r
+10010011\r
+00000100\r
+10110101\r
+00001000\r
+10001000\r
+10110101\r
+00001000\r
+10001111\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10110110\r
+00001000\r
+10000000\r
+10110110\r
+00001000\r
+10000111\r
+00010111\r
+00000111\r
+11110100\r
+11000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10110110\r
+00001000\r
+10001000\r
+10110110\r
+00001000\r
+10001111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+00010111\r
+00000111\r
+11110101\r
+10010001\r
+10110111\r
+00001000\r
+10000000\r
+10110111\r
+00001000\r
+10000111\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+00011011\r
+10110111\r
+00001000\r
+10001000\r
+10110111\r
+00001000\r
+10001111\r
+00001011\r
+01010000\r
+01000000\r
+11110101\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10111000\r
+00001000\r
+10000000\r
+10111000\r
+00001000\r
+10000111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010110\r
+00011101\r
+00011101\r
+10010011\r
+10111000\r
+00001000\r
+10001000\r
+10111000\r
+00001000\r
+10001111\r
+00000000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10011000\r
+10111001\r
+00001000\r
+10000000\r
+10111001\r
+00001000\r
+10000111\r
+10011000\r
+11000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10010001\r
+00000000\r
+10111001\r
+00001000\r
+10001000\r
+10111001\r
+00001000\r
+10001111\r
+10010001\r
+00000000\r
+00011011\r
+00001011\r
+01010000\r
+01000000\r
+11110000\r
+11001111\r
+10111010\r
+00001000\r
+10000000\r
+10111010\r
+00001000\r
+10000111\r
+11101100\r
+11100000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+11001111\r
+10110111\r
+10111010\r
+00001000\r
+10001000\r
+10111010\r
+00001000\r
+10001111\r
+01101000\r
+10111111\r
+10010100\r
+10010001\r
+10010001\r
+10010001\r
+10010001\r
+10010001\r
+10111011\r
+00001000\r
+10000000\r
+10111011\r
+00001000\r
+10000111\r
+10010001\r
+10010001\r
+10010001\r
+10010000\r
+10111110\r
+10010000\r
+10010000\r
+10010101\r
+10111011\r
+00001000\r
+10001000\r
+10111011\r
+00001000\r
+10001111\r
+10010010\r
+10010010\r
+10110110\r
+10010010\r
+00100100\r
+10010011\r
+10010011\r
+10010011\r
+10111100\r
+00001000\r
+10000000\r
+10111100\r
+00001000\r
+10000111\r
+10010011\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10111011\r
+10010110\r
+10010011\r
+10111100\r
+00001000\r
+10001000\r
+10111100\r
+00001000\r
+10001111\r
+00000000\r
+10010011\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+10111101\r
+00001000\r
+10000000\r
+10111101\r
+00001000\r
+10000111\r
+00000000\r
+10010001\r
+00000000\r
+10010110\r
+00011101\r
+00011101\r
+10010011\r
+00000000\r
+10111101\r
+00001000\r
+10001000\r
+10111101\r
+00001000\r
+10001111\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+11101000\r
+10111011\r
+10111110\r
+00001000\r
+10000000\r
+10111110\r
+00001000\r
+10000111\r
+11100000\r
+10111011\r
+10010001\r
+10010001\r
+10010001\r
+10010001\r
+10010000\r
+10111110\r
+10111110\r
+00001000\r
+10001000\r
+10111110\r
+00001000\r
+10001111\r
+10010000\r
+10010000\r
+10010101\r
+10010010\r
+00000000\r
+10010010\r
+00000000\r
+10010010\r
+10111111\r
+00001000\r
+10000000\r
+10111111\r
+00001000\r
+10000111\r
+00000100\r
+10010010\r
+00000100\r
+10010010\r
+00001000\r
+10010010\r
+00001000\r
+10010010\r
+10111111\r
+00001000\r
+10001000\r
+10111111\r
+00001000\r
+10001111\r
+00000000\r
+10010010\r
+00000000\r
+10111100\r
+10111000\r
+10110001\r
+01101001\r
+10111001\r
+11000000\r
+00001000\r
+10000000\r
+11000000\r
+00001000\r
+10000111\r
+10011000\r
+10010101\r
+11101111\r
+11100000\r
+10111111\r
+10111111\r
+11101011\r
+10111001\r
+11000000\r
+00001000\r
+10001000\r
+11000000\r
+00001000\r
+10001111\r
+10111000\r
+10010010\r
+00000000\r
+10010010\r
+00000000\r
+10010010\r
+00000100\r
+10010010\r
+11000001\r
+00001000\r
+10000000\r
+11000001\r
+00001000\r
+10000111\r
+00000100\r
+10010010\r
+00001000\r
+10010010\r
+00001000\r
+10010010\r
+00000000\r
+10010010\r
+11000001\r
+00001000\r
+10001000\r
+11000001\r
+00001000\r
+10001111\r
+00000000\r
+10111100\r
+10111000\r
+10110001\r
+01101001\r
+10111001\r
+10011000\r
+11101111\r
+11000010\r
+00001000\r
+10000000\r
+11000010\r
+00001000\r
+10000111\r
+10111111\r
+10111110\r
+10010100\r
+10011000\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+11000010\r
+00001000\r
+10001000\r
+11000010\r
+00001000\r
+10001111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10011000\r
+10011000\r
+01011111\r
+01001111\r
+11000011\r
+00001000\r
+10000000\r
+11000011\r
+00001000\r
+10000111\r
+01001111\r
+01001111\r
+00000001\r
+00000001\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+11000011\r
+00001000\r
+10001000\r
+11000011\r
+00001000\r
+10001111\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10011010\r
+10011010\r
+10011010\r
+10011010\r
+11000100\r
+00001000\r
+10000000\r
+11000100\r
+00001000\r
+10000111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+11000100\r
+00001000\r
+10001000\r
+11000100\r
+00001000\r
+10001111\r
+00010111\r
+00000111\r
+11110100\r
+11000010\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+11000101\r
+00001000\r
+10000000\r
+11000101\r
+00001000\r
+10000111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010110\r
+11100000\r
+00110000\r
+00000111\r
+11000101\r
+00001000\r
+10001000\r
+11000101\r
+00001000\r
+10001111\r
+11110000\r
+11100000\r
+11100000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10010001\r
+11000110\r
+00001000\r
+10000000\r
+11000110\r
+00001000\r
+10000111\r
+00000100\r
+10010001\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+00010111\r
+11000110\r
+00001000\r
+10001000\r
+11000110\r
+00001000\r
+10001111\r
+00000111\r
+11110000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10010001\r
+00000000\r
+11000111\r
+00001000\r
+10000000\r
+11000111\r
+00001000\r
+10000111\r
+10010001\r
+00000000\r
+00010111\r
+00000111\r
+11110000\r
+11000010\r
+10010001\r
+00000000\r
+11000111\r
+00001000\r
+10001000\r
+11000111\r
+00001000\r
+10001111\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+00011011\r
+00001011\r
+11001000\r
+00001000\r
+10000000\r
+11001000\r
+00001000\r
+10000111\r
+01010000\r
+01000000\r
+11110000\r
+01011111\r
+01001111\r
+01001111\r
+01001111\r
+10010011\r
+11001000\r
+00001000\r
+10001000\r
+11001000\r
+00001000\r
+10001111\r
+00000000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10011010\r
+11001001\r
+00001000\r
+10000000\r
+11001001\r
+00001000\r
+10000111\r
+10011010\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+01011111\r
+01001111\r
+11100000\r
+11001001\r
+00001000\r
+10001000\r
+11001001\r
+00001000\r
+10001111\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+10010001\r
+00001000\r
+10010001\r
+11001010\r
+00001000\r
+10000000\r
+11001010\r
+00001000\r
+10000111\r
+00001000\r
+00010111\r
+00000111\r
+11110011\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+11001010\r
+00001000\r
+10001000\r
+11001010\r
+00001000\r
+10001111\r
+01011001\r
+01001111\r
+11100100\r
+10000011\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+11001011\r
+00001000\r
+10000000\r
+11001011\r
+00001000\r
+10000111\r
+10010110\r
+11100000\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+10010011\r
+11001011\r
+00001000\r
+10001000\r
+11001011\r
+00001000\r
+10001111\r
+00000000\r
+10010011\r
+00000000\r
+10011011\r
+11000001\r
+10011000\r
+10011010\r
+10011011\r
+11001100\r
+00001000\r
+10000000\r
+11001100\r
+00001000\r
+10000111\r
+11000001\r
+10011000\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+01011111\r
+01001111\r
+11001100\r
+00001000\r
+10001000\r
+11001100\r
+00001000\r
+10001111\r
+11100000\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+10010001\r
+00001000\r
+11001101\r
+00001000\r
+10000000\r
+11001101\r
+00001000\r
+10000111\r
+10010001\r
+00001000\r
+00010111\r
+00000111\r
+11110011\r
+10010001\r
+00000000\r
+10010001\r
+11001101\r
+00001000\r
+10001000\r
+11001101\r
+00001000\r
+10001111\r
+00000000\r
+01011001\r
+01001111\r
+11100100\r
+10000011\r
+10010001\r
+00000000\r
+10010001\r
+11001110\r
+00001000\r
+10000000\r
+11001110\r
+00001000\r
+10000111\r
+00000000\r
+10010110\r
+11100000\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+11001110\r
+00001000\r
+10001000\r
+11001110\r
+00001000\r
+10001111\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10011011\r
+11000001\r
+10011000\r
+10011010\r
+11001111\r
+00001000\r
+10000000\r
+11001111\r
+00001000\r
+10000111\r
+10011011\r
+11000001\r
+10011000\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+01011111\r
+11001111\r
+00001000\r
+10001000\r
+11001111\r
+00001000\r
+10001111\r
+01001111\r
+11100000\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+10010001\r
+11010000\r
+00001000\r
+10000000\r
+11010000\r
+00001000\r
+10000111\r
+00001000\r
+10010001\r
+00001000\r
+00010111\r
+00000111\r
+11110011\r
+10010001\r
+00000000\r
+11010000\r
+00001000\r
+10001000\r
+11010000\r
+00001000\r
+10001111\r
+10010001\r
+00000000\r
+01011001\r
+01001111\r
+11100100\r
+10000011\r
+10010001\r
+00000000\r
+11010001\r
+00001000\r
+10000000\r
+11010001\r
+00001000\r
+10000111\r
+10010001\r
+00000000\r
+10010110\r
+11100000\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11010001\r
+00001000\r
+10001000\r
+11010001\r
+00001000\r
+10001111\r
+11100000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10011011\r
+11000001\r
+10011000\r
+11010010\r
+00001000\r
+10000000\r
+11010010\r
+00001000\r
+10000111\r
+10011010\r
+10011011\r
+11000001\r
+10011000\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+11010010\r
+00001000\r
+10001000\r
+11010010\r
+00001000\r
+10001111\r
+01011111\r
+01001111\r
+11100000\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+11010011\r
+00001000\r
+10000000\r
+11010011\r
+00001000\r
+10000111\r
+10010001\r
+00001000\r
+10010001\r
+00001000\r
+00010111\r
+00000111\r
+11110011\r
+10010001\r
+11010011\r
+00001000\r
+10001000\r
+11010011\r
+00001000\r
+10001111\r
+00000000\r
+10010001\r
+00000000\r
+01011001\r
+01001111\r
+11100101\r
+10000011\r
+10010001\r
+11010100\r
+00001000\r
+10000000\r
+11010100\r
+00001000\r
+10000111\r
+00000000\r
+10010001\r
+00000000\r
+10010110\r
+11100000\r
+00110000\r
+00000111\r
+11110000\r
+11010100\r
+00001000\r
+10001000\r
+11010100\r
+00001000\r
+10001111\r
+11100000\r
+11100000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10011011\r
+11000001\r
+11010101\r
+00001000\r
+10000000\r
+11010101\r
+00001000\r
+10000111\r
+10011000\r
+10011010\r
+10011011\r
+11000001\r
+10011000\r
+10010001\r
+00000000\r
+10010001\r
+11010101\r
+00001000\r
+10001000\r
+11010101\r
+00001000\r
+10001111\r
+00000000\r
+01011111\r
+01001111\r
+11100000\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11010110\r
+00001000\r
+10000000\r
+11010110\r
+00001000\r
+10000111\r
+11100000\r
+10010001\r
+00001000\r
+10010001\r
+00001000\r
+00010111\r
+00000111\r
+11110011\r
+11010110\r
+00001000\r
+10001000\r
+11010110\r
+00001000\r
+10001111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+01011001\r
+01001111\r
+11100101\r
+10000011\r
+11010111\r
+00001000\r
+10000000\r
+11010111\r
+00001000\r
+10000111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010110\r
+11100000\r
+00110000\r
+00000111\r
+11010111\r
+00001000\r
+10001000\r
+11010111\r
+00001000\r
+10001111\r
+11110000\r
+11100000\r
+11100000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10011011\r
+11011000\r
+00001000\r
+10000000\r
+11011000\r
+00001000\r
+10000111\r
+11000001\r
+10011000\r
+10011010\r
+10011011\r
+11000001\r
+10011000\r
+10010001\r
+00000000\r
+11011000\r
+00001000\r
+10001000\r
+11011000\r
+00001000\r
+10001111\r
+10010001\r
+00000000\r
+01011111\r
+01001111\r
+11100000\r
+00110000\r
+00000111\r
+11110000\r
+11011001\r
+00001000\r
+10000000\r
+11011001\r
+00001000\r
+10000111\r
+11100000\r
+11100000\r
+10010001\r
+00001000\r
+10010001\r
+00001000\r
+00010111\r
+00000111\r
+11011001\r
+00001000\r
+10001000\r
+11011001\r
+00001000\r
+10001111\r
+11110011\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+01011001\r
+01001111\r
+11100000\r
+11011010\r
+00001000\r
+10000000\r
+11011010\r
+00001000\r
+10000111\r
+10000011\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010110\r
+11100000\r
+00110000\r
+11011010\r
+00001000\r
+10001000\r
+11011010\r
+00001000\r
+10001111\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+11011011\r
+00001000\r
+10000000\r
+11011011\r
+00001000\r
+10000111\r
+10011001\r
+11000000\r
+10011010\r
+10011010\r
+10011011\r
+11000000\r
+10011000\r
+10010001\r
+11011011\r
+00001000\r
+10001000\r
+11011011\r
+00001000\r
+10001111\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+00010111\r
+11011100\r
+00001000\r
+10000000\r
+11011100\r
+00001000\r
+10000111\r
+00000111\r
+11110100\r
+11000000\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+01011000\r
+11011100\r
+00001000\r
+10001000\r
+11011100\r
+00001000\r
+10001111\r
+01001111\r
+10000001\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010110\r
+11100000\r
+11011101\r
+00001000\r
+10000000\r
+11011101\r
+00001000\r
+10000111\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+10010011\r
+00000000\r
+10010011\r
+11011101\r
+00001000\r
+10001000\r
+11011101\r
+00001000\r
+10001111\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+11011110\r
+00001000\r
+10000000\r
+11011110\r
+00001000\r
+10000111\r
+00000000\r
+00010111\r
+00000111\r
+11110100\r
+11000000\r
+10010001\r
+00000100\r
+10010001\r
+11011110\r
+00001000\r
+10001000\r
+11011110\r
+00001000\r
+10001111\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+00010111\r
+00000111\r
+11110000\r
+11011111\r
+00001000\r
+10000000\r
+11011111\r
+00001000\r
+10000111\r
+11000000\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+11011111\r
+00001000\r
+10001000\r
+11011111\r
+00001000\r
+10001111\r
+00000100\r
+00011011\r
+00001011\r
+01010000\r
+01000000\r
+11110000\r
+11000000\r
+00100111\r
+11100000\r
+00001000\r
+10000000\r
+11100000\r
+00001000\r
+10000111\r
+11111101\r
+10010101\r
+00110000\r
+11110100\r
+11000000\r
+00110000\r
+11110000\r
+11001111\r
+11100000\r
+00001000\r
+10001000\r
+11100000\r
+00001000\r
+10001111\r
+10110011\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+01011111\r
+01001111\r
+11100000\r
+11100001\r
+00001000\r
+10000000\r
+11100001\r
+00001000\r
+10000111\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+10010001\r
+00001000\r
+10010001\r
+11100001\r
+00001000\r
+10001000\r
+11100001\r
+00001000\r
+10001111\r
+00001000\r
+00010111\r
+00000111\r
+11110011\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+11100010\r
+00001000\r
+10000000\r
+11100010\r
+00001000\r
+10000111\r
+01011001\r
+01001111\r
+10000011\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010110\r
+11100010\r
+00001000\r
+10001000\r
+11100010\r
+00001000\r
+10001111\r
+11100000\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+10010011\r
+00000000\r
+11100011\r
+00001000\r
+10000000\r
+11100011\r
+00001000\r
+10000111\r
+10010011\r
+00000000\r
+10011011\r
+11001111\r
+10011000\r
+10011010\r
+10011001\r
+11001111\r
+11100011\r
+00001000\r
+10001000\r
+11100011\r
+00001000\r
+10001111\r
+10011010\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+11100100\r
+00001000\r
+10000000\r
+11100100\r
+00001000\r
+10000111\r
+00000100\r
+00010111\r
+00000111\r
+11110000\r
+11001111\r
+10011010\r
+10011010\r
+10010001\r
+11100100\r
+00001000\r
+10001000\r
+11100100\r
+00001000\r
+10001111\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+00010111\r
+11100101\r
+00001000\r
+10000000\r
+11100101\r
+00001000\r
+10000111\r
+00000111\r
+11110000\r
+11001111\r
+10011010\r
+10011010\r
+10010001\r
+00000000\r
+10010001\r
+11100101\r
+00001000\r
+10001000\r
+11100101\r
+00001000\r
+10001111\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+00010111\r
+00000111\r
+11110011\r
+11100110\r
+00001000\r
+10000000\r
+11100110\r
+00001000\r
+10000111\r
+11001111\r
+10010100\r
+00011100\r
+00011100\r
+00011101\r
+00011101\r
+10011010\r
+10011010\r
+11100110\r
+00001000\r
+10001000\r
+11100110\r
+00001000\r
+10001111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+11100111\r
+00001000\r
+10000000\r
+11100111\r
+00001000\r
+10000111\r
+00010111\r
+00000111\r
+11110011\r
+00000001\r
+00000001\r
+10010010\r
+00000000\r
+10010010\r
+11100111\r
+00001000\r
+10001000\r
+11100111\r
+00001000\r
+10001111\r
+00000000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+11001101\r
+10010001\r
+00000100\r
+11101000\r
+00001000\r
+10000000\r
+11101000\r
+00001000\r
+10000111\r
+10010001\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+00011011\r
+00001011\r
+11101000\r
+00001000\r
+10001000\r
+11101000\r
+00001000\r
+10001111\r
+01010000\r
+01000000\r
+11110100\r
+11001101\r
+11001110\r
+10011010\r
+11001110\r
+10011010\r
+11101001\r
+00001000\r
+10000000\r
+11101001\r
+00001000\r
+10000111\r
+11001110\r
+10011010\r
+11001110\r
+10011010\r
+11001110\r
+10011010\r
+11001110\r
+10011010\r
+11101001\r
+00001000\r
+10001000\r
+11101001\r
+00001000\r
+10001111\r
+11001110\r
+10011010\r
+11001110\r
+10011010\r
+11001110\r
+10011010\r
+11001110\r
+10011010\r
+11101010\r
+00001000\r
+10000000\r
+11101010\r
+00001000\r
+10000111\r
+11001110\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+11101010\r
+00001000\r
+10001000\r
+11101010\r
+00001000\r
+10001111\r
+00000000\r
+00011011\r
+00001011\r
+01010000\r
+01000000\r
+11110000\r
+11001111\r
+10011010\r
+11101011\r
+00001000\r
+10000000\r
+11101011\r
+00001000\r
+10000111\r
+10011010\r
+00100111\r
+11111101\r
+10010101\r
+00110000\r
+11110000\r
+11001111\r
+10010001\r
+11101011\r
+00001000\r
+10001000\r
+11101011\r
+00001000\r
+10001111\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+00010111\r
+11101100\r
+00001000\r
+10000000\r
+11101100\r
+00001000\r
+10000111\r
+00000111\r
+11110100\r
+11000001\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+01011000\r
+11101100\r
+00001000\r
+10001000\r
+11101100\r
+00001000\r
+10001111\r
+01001111\r
+10000001\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010110\r
+11100000\r
+11101101\r
+00001000\r
+10000000\r
+11101101\r
+00001000\r
+10000111\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+10010011\r
+00000000\r
+10010011\r
+11101101\r
+00001000\r
+10001000\r
+11101101\r
+00001000\r
+10001111\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+11101110\r
+00001000\r
+10000000\r
+11101110\r
+00001000\r
+10000111\r
+00000000\r
+00010111\r
+00000111\r
+11110100\r
+11000001\r
+10010001\r
+00000100\r
+10010001\r
+11101110\r
+00001000\r
+10001000\r
+11101110\r
+00001000\r
+10001111\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+00010111\r
+00000111\r
+11110000\r
+11101111\r
+00001000\r
+10000000\r
+11101111\r
+00001000\r
+10000111\r
+11000001\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+11101111\r
+00001000\r
+10001000\r
+11101111\r
+00001000\r
+10001111\r
+00000100\r
+00011011\r
+00001011\r
+01010000\r
+01000000\r
+11110000\r
+11000001\r
+00101111\r
+11110000\r
+00001000\r
+10000000\r
+11110000\r
+00001000\r
+10000111\r
+00100111\r
+11111101\r
+10010101\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+11110000\r
+00001000\r
+10001000\r
+11110000\r
+00001000\r
+10001111\r
+00000100\r
+10010001\r
+00000100\r
+00010111\r
+00000111\r
+11110100\r
+11000001\r
+10010001\r
+11110001\r
+00001000\r
+10000000\r
+11110001\r
+00001000\r
+10000111\r
+00000000\r
+10010001\r
+00000000\r
+01011000\r
+01001111\r
+10000001\r
+10010001\r
+00000000\r
+11110001\r
+00001000\r
+10001000\r
+11110001\r
+00001000\r
+10001111\r
+10010001\r
+00000000\r
+10010110\r
+11100000\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11110010\r
+00001000\r
+10000000\r
+11110010\r
+00001000\r
+10000111\r
+11100000\r
+10010011\r
+00000000\r
+10010011\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+11110010\r
+00001000\r
+10001000\r
+11110010\r
+00001000\r
+10001111\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+00010111\r
+00000111\r
+11110100\r
+11110011\r
+00001000\r
+10000000\r
+11110011\r
+00001000\r
+10000111\r
+11000001\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+11110011\r
+00001000\r
+10001000\r
+11110011\r
+00001000\r
+10001111\r
+00000000\r
+00010111\r
+00000111\r
+11110000\r
+11000001\r
+10010001\r
+00000000\r
+10010001\r
+11110100\r
+00001000\r
+10000000\r
+11110100\r
+00001000\r
+10000111\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+00011011\r
+00001011\r
+01010000\r
+11110100\r
+00001000\r
+10001000\r
+11110100\r
+00001000\r
+10001111\r
+01000000\r
+11110000\r
+11000001\r
+00101111\r
+00100111\r
+11111101\r
+10010101\r
+10010001\r
+11110101\r
+00001000\r
+10000000\r
+11110101\r
+00001000\r
+10000111\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+00010111\r
+11110101\r
+00001000\r
+10001000\r
+11110101\r
+00001000\r
+10001111\r
+00000111\r
+11110100\r
+11000000\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+01011000\r
+11110110\r
+00001000\r
+10000000\r
+11110110\r
+00001000\r
+10000111\r
+01001111\r
+10000001\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010110\r
+11100000\r
+11110110\r
+00001000\r
+10001000\r
+11110110\r
+00001000\r
+10001111\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+10010011\r
+00000000\r
+10010011\r
+11110111\r
+00001000\r
+10000000\r
+11110111\r
+00001000\r
+10000111\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+11110111\r
+00001000\r
+10001000\r
+11110111\r
+00001000\r
+10001111\r
+00000000\r
+00010111\r
+00000111\r
+11110100\r
+11000000\r
+10010001\r
+00000100\r
+10010001\r
+11111000\r
+00001000\r
+10000000\r
+11111000\r
+00001000\r
+10000111\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+00010111\r
+00000111\r
+11110000\r
+11111000\r
+00001000\r
+10001000\r
+11111000\r
+00001000\r
+10001111\r
+11000000\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+11111001\r
+00001000\r
+10000000\r
+11111001\r
+00001000\r
+10000111\r
+00000100\r
+00011011\r
+00001011\r
+01010000\r
+01000000\r
+11110000\r
+11000000\r
+00101111\r
+11111001\r
+00001000\r
+10001000\r
+11111001\r
+00001000\r
+10001111\r
+00100111\r
+11111101\r
+10010101\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+11111010\r
+00001000\r
+10000000\r
+11111010\r
+00001000\r
+10000111\r
+00000100\r
+10010001\r
+00000100\r
+00010111\r
+00000111\r
+11110100\r
+10011010\r
+10011010\r
+11111010\r
+00001000\r
+10001000\r
+11111010\r
+00001000\r
+10001111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+11111011\r
+00001000\r
+10000000\r
+11111011\r
+00001000\r
+10000111\r
+00010111\r
+00000111\r
+11110011\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+01011000\r
+11111011\r
+00001000\r
+10001000\r
+11111011\r
+00001000\r
+10001111\r
+01001111\r
+10000001\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010110\r
+11100000\r
+11111100\r
+00001000\r
+10000000\r
+11111100\r
+00001000\r
+10000111\r
+00110000\r
+00000111\r
+11110000\r
+11100000\r
+11100000\r
+10010011\r
+00000000\r
+10010011\r
+11111100\r
+00001000\r
+10001000\r
+11111100\r
+00001000\r
+10001111\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+11111101\r
+00001000\r
+10000000\r
+11111101\r
+00001000\r
+10000111\r
+00000000\r
+00010111\r
+00000111\r
+11110000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+11111101\r
+00001000\r
+10001000\r
+11111101\r
+00001000\r
+10001111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+00010111\r
+00000111\r
+11110000\r
+11000000\r
+11111110\r
+00001000\r
+10000000\r
+11111110\r
+00001000\r
+10000111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+11111110\r
+00001000\r
+10001000\r
+11111110\r
+00001000\r
+10001111\r
+00011011\r
+00001011\r
+01010000\r
+01000000\r
+11110000\r
+10011010\r
+10011010\r
+10111011\r
+11111111\r
+00001000\r
+10000000\r
+11111111\r
+00001000\r
+10000111\r
+10111011\r
+10111011\r
+00101111\r
+00100111\r
+11111101\r
+10010101\r
+10111011\r
+11001101\r
+11111111\r
+00001000\r
+10001000\r
+11111111\r
+00001000\r
+10001111\r
+10011010\r
+10011010\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10000000\r
+00000111\r
+10000000\r
+10000000\r
+00000111\r
+10000111\r
+10010001\r
+00000100\r
+00010111\r
+00000111\r
+11110000\r
+11001110\r
+10011010\r
+10011010\r
+10000000\r
+00000111\r
+10001000\r
+10000000\r
+00000111\r
+10001111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10000001\r
+00000111\r
+10000000\r
+10000001\r
+00000111\r
+10000111\r
+00010111\r
+00000111\r
+11110011\r
+11001110\r
+10011010\r
+10011010\r
+10010001\r
+00000000\r
+10000001\r
+00000111\r
+10001000\r
+10000001\r
+00000111\r
+10001111\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+00010111\r
+00000111\r
+10000010\r
+00000111\r
+10000000\r
+10000010\r
+00000111\r
+10000111\r
+11110000\r
+11001110\r
+10011010\r
+10011010\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10000010\r
+00000111\r
+10001000\r
+10000010\r
+00000111\r
+10001111\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+00010111\r
+00000111\r
+11110011\r
+11001110\r
+10000011\r
+00000111\r
+10000000\r
+10000011\r
+00000111\r
+10000111\r
+10011010\r
+10011010\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10000011\r
+00000111\r
+10001000\r
+10000011\r
+00000111\r
+10001111\r
+10010001\r
+00000100\r
+00010111\r
+00000111\r
+11110000\r
+11001111\r
+10011010\r
+10011010\r
+10000100\r
+00000111\r
+10000000\r
+10000100\r
+00000111\r
+10000111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10000100\r
+00000111\r
+10001000\r
+10000100\r
+00000111\r
+10001111\r
+00010111\r
+00000111\r
+11110011\r
+11001111\r
+10010001\r
+00000100\r
+10010001\r
+00000100\r
+10000101\r
+00000111\r
+10000000\r
+10000101\r
+00000111\r
+10000111\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+00011011\r
+00001011\r
+01010000\r
+01000000\r
+10000101\r
+00000111\r
+10001000\r
+10000101\r
+00000111\r
+10001111\r
+11110000\r
+11001111\r
+10011010\r
+10011010\r
+11001111\r
+10010001\r
+00000100\r
+10010001\r
+10000110\r
+00000111\r
+10000000\r
+10000110\r
+00000111\r
+10000111\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+00011011\r
+00001011\r
+01010000\r
+10000110\r
+00000111\r
+10001000\r
+10000110\r
+00000111\r
+10001111\r
+01000000\r
+11110000\r
+11001110\r
+10011010\r
+10011010\r
+11001110\r
+10010001\r
+00000100\r
+10000111\r
+00000111\r
+10000000\r
+10000111\r
+00000111\r
+10000111\r
+10010001\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+00011011\r
+00001011\r
+10000111\r
+00000111\r
+10001000\r
+10000111\r
+00000111\r
+10001111\r
+01010000\r
+01000000\r
+11110000\r
+11001110\r
+10011010\r
+10011010\r
+11001110\r
+10010001\r
+10001000\r
+00000111\r
+10000000\r
+10001000\r
+00000111\r
+10000111\r
+00000100\r
+10010001\r
+00000100\r
+10010001\r
+00000000\r
+10010001\r
+00000000\r
+00011011\r
+10001000\r
+00000111\r
+10001000\r
+10001000\r
+00000111\r
+10001111\r
+00001011\r
+01010000\r
+01000000\r
+11110000\r
+11001111\r
+10011010\r
+10011010\r
+11001111\r
+11100111\r
index c897b4e..e43b261 100644 (file)
@@ -12,20 +12,23 @@ import java.io.*;
  */
 public class FtdiUart {
 
-    private SWIGTYPE_p_ftdi_context context = example.new_ftdi_context();
-
-    public OutputStream getOutputStream() { return out; }
-    public InputStream  getInputStream() { return in; }
+    private SWIGTYPE_p_ftdi_context context = FtdiUartNative.new_ftdi_context();
 
     public FtdiUart(int vendor, int product, int baud) throws IOException {
-        example.ftdi_init(context);
-        example.ftdi_usb_open(context, vendor, product);
-        example.ftdi_usb_reset(context);
-        example.ftdi_set_baudrate(context, baud);
-        example.ftdi_set_line_property(context, 8, 0, 0);
+        FtdiUartNative.ftdi_init(context);
+        FtdiUartNative.ftdi_usb_open(context, vendor, product);
+        FtdiUartNative.ftdi_usb_reset(context);
+        FtdiUartNative.ftdi_set_baudrate(context, baud);
+        FtdiUartNative.ftdi_set_line_property(context, 8, 0, 0);
         purge();
     }
 
+    /** the output stream to the uart or dbus pins (depending on mode) */
+    public OutputStream getOutputStream() { return out; }
+
+    /** the input stream from the uart or dbus pins (depending on mode) */
+    public InputStream  getInputStream() { return in; }
+
     /**
      *  Switch to uart mode, with read/write access to four CBUS lines.
      *  This function is used to write to the CBUS lines (re-invoke it to change their state).
@@ -35,7 +38,7 @@ public class FtdiUart {
      *  @param cbus_bits a four-bit mask; the bits to assert on the write-enabled CBUS lines
      */
     public synchronized void uart_and_cbus_mode(int cbus_mask, int cbus_bits) throws IOException {
-        example.ftdi_set_bitmode(context, (short)((cbus_mask << 4) | cbus_bits), (short)0x20);
+        FtdiUartNative.ftdi_set_bitmode(context, (short)((cbus_mask << 4) | cbus_bits), (short)0x20);
     }
 
     /**
@@ -45,20 +48,20 @@ public class FtdiUart {
      *  @param dbus_mask an eight-bit mask; set bit=1 to write to a DBUS line, bit=0 to read from it
      */
     public synchronized void dbus_mode(int dbus_mask) throws IOException {
-        example.ftdi_set_bitmode(context, (short)dbus_mask, (short)0x01);
+        FtdiUartNative.ftdi_set_bitmode(context, (short)dbus_mask, (short)0x01);
     }
 
     /** returns the instantaneous value present on the DBUS pins */
     public synchronized int readPins() throws IOException {
         getOutputStream().flush();
         byte[] b = new byte[1];
-        example.ftdi_read_pins(context, b);
+        FtdiUartNative.ftdi_read_pins(context, b);
         return b[0];
     }
 
     /** purge the on-chip buffers */
     public synchronized void purge() throws IOException {
-        example.ftdi_usb_purge_buffers(context);
+        FtdiUartNative.ftdi_usb_purge_buffers(context);
     }
 
     private final InputStream in = new InputStream() {
@@ -79,7 +82,7 @@ public class FtdiUart {
                     if (len==0) return 0;
                     byte[] b0 = new byte[len];
                     synchronized(FtdiUart.this) {
-                        result = example.ftdi_read_data(context, b0, len);
+                        result = FtdiUartNative.ftdi_read_data(context, b0, len);
                     }
                     if (result>0) {
                         System.arraycopy(b0, 0, b, off, result);
@@ -102,7 +105,7 @@ public class FtdiUart {
                     System.arraycopy(b, off, b2, 0, Math.min(b2.length, len));
                     int result;
                     synchronized(FtdiUart.this) {
-                        result = example.ftdi_write_data(context, b2, Math.min(b2.length, len));
+                        result = FtdiUartNative.ftdi_write_data(context, b2, Math.min(b2.length, len));
                     }
                     off += result;
                     len -= result;
index b32ba76..a2a2123 100644 (file)
@@ -10,7 +10,7 @@ import gnu.io.*;
 public class FtdiBoard extends Board {
 
     static {
-        System.load(new File("build/"+System.mapLibraryName("Ftdi")).getAbsolutePath());
+        System.load(new File("build/"+System.mapLibraryName("FtdiUartNative")).getAbsolutePath());
     }
 
     private final ChipImpl chip;
@@ -22,7 +22,10 @@ public class FtdiBoard extends Board {
 
     public FtdiBoard() throws Exception {
         chip = new ChipImpl();
-        boot(new InputStreamReader(new FileInputStream("bitstreams/usbdrone.bst")));
+        String bstFile = this.getClass().getName();
+        bstFile = bstFile.substring(0, bstFile.lastIndexOf('.'));
+        bstFile = bstFile.replace('.', '/')+"/slipway_drone.bst";
+        boot(new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream(bstFile)));
         in = chip.getInputStream();
         out = chip.getOutputStream();
         for(int i=0; i<255; i++) out.write(0);
diff --git a/src/edu/berkeley/slipway/slipway_drone.c b/src/edu/berkeley/slipway/slipway_drone.c
new file mode 100644 (file)
index 0000000..884d540
--- /dev/null
@@ -0,0 +1,344 @@
+//\r
+// YOU MUST COMPILE THIS WITH -O3 OR THE AVR WILL NOT BE ABLE TO KEEP UP!!!!\r
+//\r
+\r
+//#define F_CPU 3960000\r
+#define F_CPU 12000000\r
+\r
+#if !defined(__AVR_AT94K__)\r
+#error you forgot to put -mmcu=at94k on the command line\r
+#endif\r
+\r
+#include <avr/wdt.h>\r
+#include <util/delay.h>\r
+#include <avr/io.h>\r
+#include <avr/interrupt.h>\r
+\r
+int err = 0;\r
+\r
+void initUART0(unsigned int baudRate, unsigned int doubleRate) {\r
+  UBRRHI  = (((baudRate) >> 8) & 0x000F); \r
+  UBRR0   = ((baudRate) & 0x00FF); \r
+  UCSR0B |= ((1 << RXEN0) | (1 << TXEN0) | (1 << RXCIE0)); \r
+\r
+  if (doubleRate)\r
+    UCSR0A |=  (1 << U2X0);\r
+  else\r
+    UCSR0A &= ~(1 << U2X0);\r
+}\r
+\r
+#define BUFSIZE (1024)\r
+\r
+inline void portd(int bit, int on) {\r
+  /*\r
+  if (on) {\r
+    PORTD &= ~(1<<bit);\r
+  } else {\r
+    PORTD |= (1<<bit);\r
+  }\r
+  */\r
+}\r
+\r
+long int numread = 0;\r
+inline void cts(int c) {\r
+  numread++;\r
+  if (c /*&& numread < 10000*/) {\r
+    PORTE |= (1 << 4);\r
+    PORTE |= (1 << 2);\r
+    portd(0, 0);\r
+  } else {\r
+    PORTE &= ~(1 << 4);\r
+    PORTE &= ~(1 << 2);\r
+    portd(0, 1);\r
+  }\r
+}\r
+\r
+\r
+static volatile int sending = 0;\r
+static volatile int32_t interrupt_count = 0;\r
+\r
+// RECV //////////////////////////////////////////////////////////////////////////////\r
+\r
+char read_buf[BUFSIZE];\r
+volatile int read_buf_head;\r
+volatile int read_buf_tail;\r
+char write_buf[BUFSIZE];\r
+volatile int write_buf_head;\r
+volatile int write_buf_tail;\r
+\r
+inline int inc(int x) { x++; if (x>=BUFSIZE) x=0; return x; }\r
+inline int read_full() { return inc(read_buf_tail)==read_buf_head; }\r
+inline int abs(int x) { return x<0 ? -x : x; }\r
+inline int read_size() { return read_buf_tail<read_buf_head ? (read_buf_head-read_buf_tail) : (read_buf_tail-read_buf_head); }\r
+inline int read_empty() { return read_buf_head==read_buf_tail; }\r
+inline int read_nearlyFull() {\r
+  if (read_buf_tail==read_buf_head) return 0;\r
+  if (read_buf_tail < read_buf_head) return (read_buf_head-read_buf_tail) < (BUFSIZE/2);\r
+  return (read_buf_tail-read_buf_head) > (BUFSIZE/2);\r
+}\r
+\r
+inline int write_full() { return inc(write_buf_tail)==write_buf_head; }\r
+inline int write_empty() { return write_buf_head==write_buf_tail; }\r
+inline int write_nearlyFull() {\r
+  if (write_buf_tail==write_buf_head) return 0;\r
+  if (write_buf_tail < write_buf_head) return (write_buf_head-write_buf_tail) < (BUFSIZE/2);\r
+  return (write_buf_tail-write_buf_head) > (BUFSIZE/2);\r
+}\r
+\r
+inline char recv() {\r
+  int q;\r
+  char ret;\r
+  while(read_empty()) cts(1);\r
+  ret = read_buf[read_buf_head];\r
+  read_buf_head = inc(read_buf_head);\r
+  if (!read_nearlyFull()) cts(1);\r
+  return ret;\r
+}\r
+\r
+ISR(SIG_UART0_DATA) {\r
+  if (write_empty()) {\r
+    UCSR0B &= ~(1 << UDRIE0);\r
+    return;\r
+  }\r
+  char ret = write_buf[write_buf_head];\r
+  write_buf_head = inc(write_buf_head);\r
+  UDR0 = (int)ret;\r
+  sei();\r
+}\r
+\r
+void send(char c) {\r
+  while (write_full());\r
+  write_buf[write_buf_tail] = c;\r
+  write_buf_tail = inc(write_buf_tail);\r
+  if (PORTE & (1<<2)) PORTE &= ~(1<<2);\r
+  else                PORTE |=  (1<<2);\r
+  UCSR0B |= (1 << UDRIE0);\r
+  if (PORTE & (1<<3)) PORTE &= ~(1<<3);\r
+  else                PORTE |=  (1<<3);\r
+}\r
+\r
+\r
+void fpga_interrupts(int on) {\r
+  if (on/* && interrupt_count<301*/) {\r
+    //FISUA = 0x1;\r
+    FISCR = 0x80;\r
+    FISUD = 0x08;\r
+  } else {\r
+    FISUD = 0;\r
+    FISCR = 0;\r
+  }\r
+}\r
+\r
+void init() {\r
+  read_buf_head = 0;\r
+  read_buf_tail = 0;\r
+  write_buf_head = 0;\r
+  write_buf_tail = 0;\r
+  //initUART0(1, 0);  //for slow board\r
+  initUART0(0, 0);  //for slow board\r
+  //initUART0(0, 1);  //for slow board\r
+}\r
+\r
+void conf(int z, int y, int x, int d) {\r
+  FPGAX = x;\r
+  FPGAY = y;\r
+  FPGAZ = z;\r
+  FPGAD = d;\r
+}\r
+\r
+void doreset() {\r
+  int i;\r
+  for(i=0; i<5; i++) {\r
+    PORTD = ~0x01;\r
+    _delay_ms(50);\r
+    PORTD = ~0x02;\r
+    _delay_ms(50);\r
+    PORTD = ~0x04;\r
+    _delay_ms(50);\r
+    PORTD = ~0x08;\r
+    _delay_ms(50);\r
+  }\r
+  PORTD = ~0x00;\r
+  wdt_enable(WDTO_250MS);\r
+  while(1) { }\r
+}\r
+\r
+#define TIMERVAL 100\r
+int portdc = 0;\r
+\r
+ISR(SIG_FPGA_INTERRUPT15) { \r
+  PORTD = portdc++;\r
+  interrupt_count++;\r
+  //PORTD = ~(interrupt_count & 0xff);\r
+  //if (interrupt_count >= 301) fpga_interrupts(0);\r
+  //sei();\r
+  fpga_interrupts(1);\r
+}\r
+/*\r
+ISR(SIG_OVERFLOW0) { \r
+  fpga_interrupts(0);\r
+  PORTD = ~FISUA;\r
+  TCNT0 = TIMERVAL;           // load the nearest-to-one-second value  into the timer0\r
+  TIMSK |= (1<<TOIE0);        // enable the compare match1 interrupt and the timer/counter0 overflow interrupt\r
+  if (sending) UDR1 = FISUA;\r
+  fpga_interrupts(1);\r
+  sei();\r
+} \r
+void init_timer()  { \r
+  TCCR0 |= (1<<CS00);         // set the timer0 prescaler to CK\r
+  TCNT0 = TIMERVAL;           // load the nearest-to-one-second value  into the timer0\r
+  TIMSK |= (1<<TOIE0);        //enable the compare match1 interrupt and the timer/counter0 overflow interrupt\r
+} \r
+*/\r
+ISR(SIG_INTERRUPT0) {   // use interrupt1 since interrupt0 is sent by the watchdog (I think)\r
+  SREG = 0;\r
+  //PORTE |=  (1<<0);\r
+  sei();\r
+}\r
+void die() { cli(); cts(0); _delay_ms(2000); while(1) { portd(2,0); portd(2,1); } }\r
+\r
+ISR(SIG_UART0_RECV) {\r
+\r
+  if (UCSR0A & (1 << FE0))    err = 201;//{ portd(2,0); portd(3,1); die(); }  // framing error, lock up with LED=01\r
+  if ((UCSR0A & (1 << OR0)))  err = 202;//{ portd(2,1); portd(3,0); die(); }  // overflow; lock up with LED=10\r
+  if (read_full())            err = 203;//{ portd(2,1); portd(3,1); die(); }  // buffer overrun\r
+\r
+  read_buf[read_buf_tail] = UDR0;\r
+  read_buf_tail = inc(read_buf_tail);\r
+  if (read_nearlyFull()) cts(0);\r
+  SREG |= 0x80;\r
+  sei();\r
+}\r
+\r
+inline int hex(char c) {\r
+  if (c >= '0' && c <= '9') return (c - '0');\r
+  if (c >= 'a' && c <= 'f') return ((c - 'a') + 0xa);\r
+  if (c >= 'A' && c <= 'F') return ((c - 'A') + 0xa);\r
+  return -1;\r
+}\r
+\r
+int main() {\r
+  DDRE = (1<<7) | (1<<5) | (1<<4) | (1<<3) | (1<<2);\r
+  PORTE = 0;\r
+\r
+  init();\r
+\r
+  EIMF = 0xFF;\r
+  SREG = INT0;\r
+  sei();\r
+\r
+  PORTE &= ~(1<<7);\r
+\r
+  int count = 0;\r
+  long long bad = 0;\r
+  int left = 0;\r
+  char v = 0;\r
+  long int oldi = 0;\r
+  cts(0);\r
+  cts(1);\r
+  /*\r
+  while(1) {\r
+    long int i = recv() & 0xff;\r
+    //if (i < 0) err = 200;\r
+    //if (err < 200) {\r
+      long int newi = oldi+1;\r
+      if (newi >= 256) newi -= 256;\r
+      if (i != newi) err++;\r
+      //}\r
+    oldi = i;\r
+\r
+    send(err >= 10 ? 255 : i);\r
+    //send(err);\r
+  }\r
+  */\r
+\r
+  PORTE |=  (1<<3);\r
+  PORTE |=  (1<<5);\r
+  recv();\r
+  send('O');\r
+  send('B');\r
+  send('I');\r
+  send('T');\r
+  send('S');\r
+  send('\n');\r
+\r
+  int x=0, y=0, z=0;\r
+  //while(1) send(/*FISUA*/2);\r
+  for(;;) {\r
+    /*\r
+    if (PORTE & (1<<6)) PORTE &= ~(1<<6);\r
+    else                PORTE |=  (1<<6);\r
+    */\r
+    int i, d=0;\r
+    int r = recv();\r
+    switch(r) {\r
+      case 1:\r
+        z = recv();\r
+        y = recv();\r
+        x = recv();\r
+        d = recv();\r
+        //portd(1,1);\r
+        conf(z, y, x, d);\r
+        //portd(1,0);\r
+        break;\r
+      case 2:\r
+        //fpga_interrupts(0);\r
+        //portd(1,1);\r
+        send(FISUA);\r
+        //portd(1,0);\r
+        //fpga_interrupts(1);\r
+        break;\r
+        /*\r
+      case 3:\r
+        //init_timer();\r
+        break;\r
+      case 4:\r
+        sending = 1;\r
+        break;\r
+      case 5:\r
+        sending = 0;\r
+        break;\r
+      case 6: {\r
+        int32_t local_interrupt_count = interrupt_count;\r
+        interrupt_count = 0;\r
+        send((local_interrupt_count >> 24) & 0xff);\r
+        send((local_interrupt_count >> 16) & 0xff);\r
+        send((local_interrupt_count >>  8) & 0xff);\r
+        send((local_interrupt_count >>  0) & 0xff);\r
+        fpga_interrupts(1);\r
+        break;\r
+      }\r
+        */\r
+        /*\r
+      default: {\r
+        if ((r & 0x80) == 0x80) {\r
+          switch (r & 0x44) {\r
+            case 0x44: z = recv(); break;\r
+            case 0x40: z++;        break;\r
+            case 0x04: z--;        break;\r
+          }\r
+          switch (r & 0x22) {\r
+            case 0x22: y = recv(); break;\r
+            case 0x20: y++;        break;\r
+            case 0x02: y--;        break;\r
+          }\r
+          switch (r & 0x11) {\r
+            case 0x11: x = recv(); break;\r
+            case 0x10: x++;        break;\r
+            case 0x01: x--;        break;\r
+          }\r
+          d = recv();\r
+          portd(1,1);\r
+          conf(z, y, x, d);\r
+          portd(1,0);\r
+          break;\r
+        }\r
+        die();\r
+      }\r
+        */\r
+    }\r
+  }\r
+  return 0;\r
+\r
+}  \r
+\r