[project @ 1997-03-14 08:02:40 by simonpj]
authorsimonpj <unknown>
Fri, 14 Mar 1997 08:11:17 +0000 (08:11 +0000)
committersimonpj <unknown>
Fri, 14 Mar 1997 08:11:17 +0000 (08:11 +0000)
Major update to more-or-less 2.02

313 files changed:
GHC_ONLY/Makefile
GHC_ONLY/arith001/Makefile
GHC_ONLY/arith002/Makefile
GHC_ONLY/arith003/Makefile
GHC_ONLY/arith004/Makefile
GHC_ONLY/arith005/Makefile
GHC_ONLY/arith006/Makefile
GHC_ONLY/arith007/Makefile
GHC_ONLY/arith008/Makefile
GHC_ONLY/arith009/Makefile
GHC_ONLY/array001/Makefile
GHC_ONLY/array002/Makefile
GHC_ONLY/bugs/10queens/Makefile
GHC_ONLY/bugs/Makefile
GHC_ONLY/bugs/andre_monad/Makefile
GHC_ONLY/bugs/andy_cherry/Makefile
GHC_ONLY/bugs/areid_pass/Makefile
GHC_ONLY/bugs/cvh_unboxing/Append.lhs
GHC_ONLY/bugs/cvh_unboxing/Main.lhs
GHC_ONLY/bugs/cvh_unboxing/Makefile
GHC_ONLY/bugs/cvh_unboxing/Types.lhs
GHC_ONLY/bugs/dmgob_native1/Makefile
GHC_ONLY/bugs/dmgob_native2/Makefile
GHC_ONLY/bugs/fast2haskell/Makefile
GHC_ONLY/bugs/fast2haskell/Word2.hs
GHC_ONLY/bugs/fun_insts/Makefile
GHC_ONLY/bugs/hill_stk_oflow/Makefile
GHC_ONLY/bugs/ipoole_spec_class/Makefile
GHC_ONLY/bugs/jl_defaults/Makefile
GHC_ONLY/bugs/jq_readsPrec/Makefile
GHC_ONLY/bugs/jtod_circint/Makefile
GHC_ONLY/bugs/jules_xref/Makefile
GHC_ONLY/bugs/jules_xref2/Makefile
GHC_ONLY/bugs/lennart_array/Makefile
GHC_ONLY/bugs/lennart_range/Makefile
GHC_ONLY/bugs/lex/Main.hs
GHC_ONLY/bugs/lex/Makefile
GHC_ONLY/bugs/life_space_leak/Makefile
GHC_ONLY/bugs/north_array/Makefile
GHC_ONLY/bugs/north_lias/Makefile
GHC_ONLY/bugs/sanders_array/Makefile
GHC_ONLY/bugs/waugh_neural/Makefile
GHC_ONLY/bugs/zhang_ccall/Main.hs
GHC_ONLY/bugs/zhang_ccall/Makefile
GHC_ONLY/cg001/Makefile
GHC_ONLY/cg002/Makefile
GHC_ONLY/cg003/Makefile
GHC_ONLY/cg004/Makefile
GHC_ONLY/cg005/Makefile
GHC_ONLY/cg006/Makefile
GHC_ONLY/cg007/Makefile
GHC_ONLY/cg008/Makefile
GHC_ONLY/cg009/Makefile
GHC_ONLY/cg010/Makefile
GHC_ONLY/cg011/Makefile
GHC_ONLY/cg012/Main.hs
GHC_ONLY/cg012/Makefile
GHC_ONLY/cg013/Makefile
GHC_ONLY/cg014/Makefile
GHC_ONLY/cg015/Main.hs
GHC_ONLY/cg015/Makefile
GHC_ONLY/cg016/Makefile
GHC_ONLY/cg016/cg016.stderr
GHC_ONLY/cg017/Makefile
GHC_ONLY/cg018/Main.hs
GHC_ONLY/cg018/Makefile
GHC_ONLY/cg019/Makefile
GHC_ONLY/cg020/Makefile
GHC_ONLY/cg021/Makefile
GHC_ONLY/cg022/Makefile
GHC_ONLY/cg023/Makefile
GHC_ONLY/cg024/Makefile
GHC_ONLY/cg025/Main.hs
GHC_ONLY/cg025/Makefile
GHC_ONLY/cg026/Main.hs
GHC_ONLY/cg026/Makefile
GHC_ONLY/cg027/Makefile
GHC_ONLY/cg028/Makefile
GHC_ONLY/cg029/Main.hs
GHC_ONLY/cg029/Makefile
GHC_ONLY/cg030/Main.hs
GHC_ONLY/cg030/Makefile
GHC_ONLY/cg031/Main.hs
GHC_ONLY/cg031/Makefile
GHC_ONLY/cg032/Main.hs
GHC_ONLY/cg032/Makefile
GHC_ONLY/cg033/Main.hs
GHC_ONLY/cg033/Makefile
GHC_ONLY/cg034/Makefile
GHC_ONLY/cg035/Main.hs
GHC_ONLY/cg035/Makefile
GHC_ONLY/cg035/cg035.c [new file with mode: 0644]
GHC_ONLY/cg035/cg035.stdout
GHC_ONLY/cg036/Makefile
GHC_ONLY/cg037/Main.hs
GHC_ONLY/cg037/Makefile
GHC_ONLY/cg038/Makefile
GHC_ONLY/cg039/Makefile
GHC_ONLY/cg040/Makefile
GHC_ONLY/cg040/cg040.stdout
GHC_ONLY/frontend001/Main.hs [new file with mode: 0644]
GHC_ONLY/frontend001/Makefile [new file with mode: 0644]
GHC_ONLY/frontend002/Main.hs [new file with mode: 0644]
GHC_ONLY/frontend002/Makefile [new file with mode: 0644]
GHC_ONLY/frontend003/Main.hs [new file with mode: 0644]
GHC_ONLY/frontend003/Makefile [new file with mode: 0644]
GHC_ONLY/ghclib001/Makefile
GHC_ONLY/io001/Makefile
GHC_ONLY/io002/Main.hs
GHC_ONLY/io002/Makefile
GHC_ONLY/io002/io002.stderr
GHC_ONLY/io002/io002.stdout
GHC_ONLY/io003/Makefile
GHC_ONLY/io004/Makefile
GHC_ONLY/io005/Makefile
GHC_ONLY/io006/Makefile
GHC_ONLY/io007/Makefile
GHC_ONLY/io008/Main.hs
GHC_ONLY/io008/Makefile
GHC_ONLY/io009/Makefile
GHC_ONLY/io010/Makefile
GHC_ONLY/io011/Main.hs
GHC_ONLY/io011/Makefile
GHC_ONLY/io012/Makefile
GHC_ONLY/io013/Makefile
GHC_ONLY/io014/Makefile
GHC_ONLY/io015/Makefile
GHC_ONLY/io016/Makefile
GHC_ONLY/io017/Makefile
GHC_ONLY/io018/Main.hs
GHC_ONLY/io018/Makefile
GHC_ONLY/io019/Makefile
GHC_ONLY/io020/Makefile
GHC_ONLY/io021/Makefile
GHC_ONLY/net001/Makefile
GHC_ONLY/net002/Makefile
GHC_ONLY/net003/Makefile
GHC_ONLY/net004/Main.hs
GHC_ONLY/net004/Makefile
GHC_ONLY/net005/Makefile
GHC_ONLY/net006/Main.hs
GHC_ONLY/net006/Makefile
GHC_ONLY/net007/Makefile
GHC_ONLY/net008/Main.hs
GHC_ONLY/net008/Makefile
GHC_ONLY/net009/Main.hs [new file with mode: 0644]
GHC_ONLY/net009/Makefile [new file with mode: 0644]
GHC_ONLY/net009/net009.stdout [new file with mode: 0644]
GHC_ONLY/obfuscated93/Makefile
GHC_ONLY/obfuscated93/launchbury/Makefile
GHC_ONLY/obfuscated93/rittri/Makefile
GHC_ONLY/po001/Makefile
GHC_ONLY/po002/Makefile
GHC_ONLY/po003/Makefile
GHC_ONLY/po004/Makefile
GHC_ONLY/po005/Makefile
GHC_ONLY/po006/Makefile
GHC_ONLY/po007/Makefile
GHC_ONLY/po008/Makefile
GHC_ONLY/po009/Makefile
GHC_ONLY/po010/Makefile
GHC_ONLY/po011/Makefile
GHC_ONLY/po012/Makefile
GHC_ONLY/specialise/Makefile
GHC_ONLY/stable001/Main.lhs
GHC_ONLY/stable001/Makefile
Makefile
Makefile-template [new file with mode: 0644]
UNUSED/Makefile
UNUSED/nfib/Makefile
UNUSED/nfib_overloaded/Makefile
imaginary/Makefile
imaginary/exp3_8/Makefile
imaginary/gen_regexps/Makefile
imaginary/paraffins/Makefile
imaginary/primes/Makefile
imaginary/queens/Makefile
imaginary/rfib/Makefile
imaginary/tak/Makefile
imaginary/wheel-sieve1/Main.hs [new file with mode: 0644]
imaginary/wheel-sieve1/Makefile [new file with mode: 0644]
imaginary/wheel-sieve2/Main.hs [new file with mode: 0644]
imaginary/wheel-sieve2/Makefile [new file with mode: 0644]
imaginary/x2n1/Main.hs
imaginary/x2n1/Makefile
mk/boilerplate.mk [new file with mode: 0644]
mk/nofib.mk [deleted file]
mk/opts.mk [new file with mode: 0644]
mk/paths.mk [new file with mode: 0644]
mk/site.mk [deleted file]
mk/suffix.mk [new file with mode: 0644]
mk/target.mk [new file with mode: 0644]
parallel/NESL/Makefile
parallel/bom/Makefile
parallel/cfd/Makefile
parallel/coins/Makefile
parallel/dcbm/Makefile
parallel/linsolv/Makefile
parallel/minimax/Makefile
parallel/par001/Makefile
parallel/parfact/Makefile
parallel/pfib/Makefile
parallel/prsa/Makefile
parallel/ray/Makefile
parallel/soda/Makefile
real/Makefile
real/anna/BaseDefs.hs
real/anna/Makefile
real/anna/Monster.hs
real/bspt/Makefile
real/compress/Decode.hs
real/compress/Lzw2.hs
real/compress/Makefile
real/compress2/Encode.hs
real/compress2/Makefile
real/compress2/WriteRoutines.hs
real/ebnf2ps/Fonts.hs
real/ebnf2ps/GrammarTransform.hs
real/ebnf2ps/HappyParser.ly
real/ebnf2ps/IOSupplement.hs
real/ebnf2ps/Main.hs
real/ebnf2ps/Makefile
real/fem/Assemble_loadvec.hs
real/fem/Assemble_stiffness.hs
real/fem/Basics.hs
real/fem/Makefile
real/fluid/Makefile
real/fluid/fluid.stdout
real/fulsom/Bah.hs
real/fulsom/Makefile
real/gamteb/Makefile
real/gamteb/gamteb.stderr
real/gg/Makefile
real/grep/Makefile
real/hidden/Hide.hs
real/hidden/Main.hs
real/hidden/Makefile
real/hidden/Memo.hs
real/hidden/MyIO.hs
real/hidden/Postscript.hs
real/hpg/Env.lhs
real/hpg/GenExp.lhs
real/hpg/Main.lhs
real/hpg/Makefile
real/hpg/Utils.lhs
real/hpg/hpg.stderr
real/hpg/hpg.stdout
real/infer/Makefile
real/lift/Makefile
real/linear/Makefile
real/maillist/Main.hs
real/maillist/Makefile
real/mkhprog/Main.lhs
real/mkhprog/Makefile
real/mkhprog/mkhprog.stdout
real/parser/Makefile
real/pic/Makefile
real/pic/pic.stderr
real/prolog/Makefile
real/reptile/Makefile
real/rsa/Makefile
real/symalg/Makefile
real/veritas/Makefile
spectral/Makefile
spectral/ansi/Makefile
spectral/awards/Makefile
spectral/banner/Makefile
spectral/boyer/Makefile
spectral/boyer2/Makefile
spectral/calendar/Makefile
spectral/cichelli/Makefile
spectral/clausify/Makefile
spectral/cse/Makefile
spectral/eliza/Makefile
spectral/expert/Makefile
spectral/fft2/Makefile
spectral/fibheaps/Main.lhs
spectral/fibheaps/Makefile
spectral/fish/Makefile
spectral/hartel/Fast2haskell.hs
spectral/hartel/Fast2haskell2.hs
spectral/hartel/Makefile
spectral/hartel/comp_lab_zift/Makefile
spectral/hartel/event/Makefile
spectral/hartel/fft/Makefile
spectral/hartel/genfft/Makefile
spectral/hartel/ida/Makefile
spectral/hartel/listcompr/Makefile
spectral/hartel/listcopy/Makefile
spectral/hartel/nucleic2/Makefile
spectral/hartel/parstof/Makefile
spectral/hartel/sched/Makefile
spectral/hartel/solid/Makefile
spectral/hartel/transform/Makefile
spectral/hartel/typecheck/Makefile
spectral/hartel/wang/Makefile
spectral/hartel/wave4main/Makefile
spectral/knights/ChessSetArray.lhs
spectral/knights/Makefile
spectral/life/Makefile
spectral/mandel/Makefile
spectral/mandel/MandelOld.lhs
spectral/mandel/mandel.stderr
spectral/mandel2/Makefile
spectral/minimax/Makefile
spectral/multiplier/Makefile
spectral/pretty/Makefile
spectral/primetest/Makefile
spectral/rewrite/Makefile
spectral/scc/Makefile
spectral/simple/Makefile
spectral/sorting/Makefile
spectral/treejoin/Makefile

index e6e6fcf..7ec77d7 100644 (file)
@@ -1,3 +1,9 @@
-TOP = ../..
-SUBDIRS = $(wildcard arith* bugs cg* ghclib* io* obfuscated93 po* net* stable*)
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ..
+include $(TOP)/mk/boilerplate.mk
+
+# Leave the net* tests out of it for the moment, runstdtest is 
+# geared towards batch programs
+SUBDIRS = $(wildcard frontend* arith* bugs cg* ghclib* io* obfuscated93 po* stable*)
+
+include $(TOP)/mk/target.mk
+
index c620ffa..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = arith001
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index c53e41c..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = arith002
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 8f4bf78..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = arith003
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 98be346..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = arith004
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index aeb436c..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = arith005
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 093ab0d..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = arith006
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index dd0a562..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = arith007
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 030099e..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = arith008
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 0371ceb..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = arith009
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index bba6e1d..cf44ea3 100644 (file)
@@ -1,3 +1,5 @@
-TOP = ../../..
-PROG = array001
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index 30bddca..cf44ea3 100644 (file)
@@ -1,3 +1,5 @@
-TOP = ../../..
-PROG = array002
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index 6158e44..912c687 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../../../..
-PROG = 10queens
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
 
index 00bd984..912c687 100644 (file)
@@ -1,14 +1,4 @@
 TOP = ../../..
-SUBDIRS = 10queens andy_cherry cvh_unboxing dmgob_native1 dmgob_native2 \
-         fast2haskell ipoole_spec_class jq_readsPrec jl_defaults \
-         jtod_circint jules_xref jules_xref2 lennart_array lennart_range \
-         lex life_space_leak north_array sanders_array waugh_neural \
-         zhang_ccall
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
 
-# andre_monad: boring -- the correct answer is a divide-by-zero
-# NOT REALLY A BUG: fun_insts
-# NOT A BUG AS FAR AS I CAN TELL: north_lias
-# NOT A BUG: stk overflow is expected w/ stranal: hill_stk_oflow
-# TESTS OLD ccall (now irrelevant): areid_pass
-
-include $(TOP)/nofib/mk/nofib.mk
index da7c04c..912c687 100644 (file)
@@ -1,5 +1,4 @@
 TOP = ../../..
-PROG = andre_monad
-EXTRA_RUNTESTFLAGS = 
-include $(TOP)/nofib/mk/nofib.mk
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
 
index 7601d12..95f296b 100644 (file)
@@ -1,6 +1,8 @@
-TOP = ../../../..
-PROG = andy_cherry
-SRCS = DataTypes.lhs GenUtils.lhs Interp.lhs InterpUtils.lhs \
-       Parser.lhs PrintTEX.lhs Main.lhs 
-EXTRA_RUNTESTFLAGS = -d tex mygames.pgn
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_HC_OPTS += -cpp
+SRC_RUNTESTFLAGS += -d tex mygames.pgn
+
+include $(TOP)/mk/target.mk
+
index b9cca5b..912c687 100644 (file)
@@ -1,5 +1,4 @@
 TOP = ../../..
-PROG = areid_pass
-EXTRA_RUNTESTFLAGS = 
-include $(TOP)/nofib/mk/nofib.mk
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
 
index faaaf15..a78e57f 100644 (file)
@@ -3,6 +3,7 @@
 \begin{code}
 module Append where
 
+import PrelBase
 import Types
 \end{code}
 
index 2f72ddd..42f508c 100644 (file)
@@ -1,4 +1,5 @@
 \begin{code}
+import PrelBase
 import Types
 import Append
 
index d6f70e4..be2979b 100644 (file)
@@ -1,4 +1,7 @@
-TOP = ../../../..
-PROG = cvh_unboxing
-SRCS = Types.lhs Append.lhs Main.lhs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_HC_OPTS += -fglasgow-exts
+
+include $(TOP)/mk/target.mk
+
index ec4fee9..c1e2848 100644 (file)
@@ -2,6 +2,7 @@
 
 \begin{code}
 module Types where
+import PrelBase
 
 data F a = FN | F1 a | F2 a a | F3 a a a 
          | F4 a a a a 
index a95a81d..4cb47dc 100644 (file)
@@ -1,5 +1,8 @@
-TOP = ../../../..
-PROG = dmgob_native1
-EXTRA_RUNTESTFLAGS = test_data 
-SRCS = MaybeStateT.lhs Main.lhs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_RUNTEST_OPTS += test_data 
+SRC_HC_OPTS += -cpp
+
+include $(TOP)/mk/target.mk
+
index edf6c05..736dea4 100644 (file)
@@ -1,4 +1,7 @@
-TOP = ../../../..
-PROG = dmgob_native2
-SRCS = LPA.lhs Main.lhs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_HC_OPTS += -cpp
+
+include $(TOP)/mk/target.mk
+
index 70e0a47..be2979b 100644 (file)
@@ -1,4 +1,7 @@
-TOP = ../../../..
-PROG = fast2haskell
-SRCS = Word2.hs Fast2haskell.hs Main.hs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_HC_OPTS += -fglasgow-exts
+
+include $(TOP)/mk/target.mk
+
index 117c30b..351193e 100644 (file)
@@ -1,12 +1,15 @@
 -- mimic "hbc_library" module, Word.
 -- [seriously non-std Haskell here]
---
+
 module Word2 (
        Bits(..),               -- class
        Byte, Short, Word,      -- data types: abstract
        byteToInt, shortToInt, wordToInt
     ) where
 
+import GHC
+import PrelBase
+
 infixl 8 `bitLsh`, `bitRsh`
 infixl 7 `bitAnd`
 infixl 6 `bitXor`
index b943cfc..912c687 100644 (file)
@@ -1,5 +1,4 @@
 TOP = ../../..
-PROG = fun_insts
-EXTRA_RUNTESTFLAGS = 
-include $(TOP)/nofib/mk/nofib.mk
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
 
index 274b41b..912c687 100644 (file)
@@ -1,5 +1,4 @@
 TOP = ../../..
-PROG = hill_stk_oflow
-EXTRA_RUNTESTFLAGS = 
-include $(TOP)/nofib/mk/nofib.mk
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
 
index 9399a97..736dea4 100644 (file)
@@ -1,5 +1,7 @@
-TOP = ../../../..
-PROG = ipoole_spec_class
-SRCS = GoferPreludeBits.lhs Lib.lhs Io.lhs JobImp.lhs \
-       JobApp.lhs Lognum.lhs Main.lhs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_HC_OPTS += -cpp
+
+include $(TOP)/mk/target.mk
+
index 80eb0d5..912c687 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../../../..
-PROG = jl_defaults
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
 
index e2626d2..912c687 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../../../..
-PROG = jq_readsPrec
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
 
index 5a9575b..912c687 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../../../..
-PROG = jtod_circint
-SRCS = Bit.hs LogFun.hs Signal.hs Main.hs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
+
index 0d65a05..912c687 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../../../..
-PROG = jules_xref
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
 
index f8f9190..912c687 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../../../..
-PROG = jules_xref2
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
 
index 34bbdf3..912c687 100644 (file)
@@ -1,5 +1,4 @@
-TOP = ../../../..
-PROG = lennart_array
-EXTRA_RUNTESTFLAGS = 
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
 
index 2c519ad..912c687 100644 (file)
@@ -1,5 +1,4 @@
-TOP = ../../../..
-PROG = lennart_range
-EXTRA_RUNTESTFLAGS = 
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
 
index 189ed87..4c9a448 100644 (file)
@@ -2,4 +2,8 @@ module Main where
 
 main = interact ( \ s -> shows (lex' s) "\n")
      where lex' "" = []
-          lex' s = tok : lex' s' where [(tok,s')] = lex s
+          lex' s = tok : lex' s' where -- [(tok,s')] = lex s
+                                       (tok,s') = case lex s of
+                                                   [r]   -> r
+                                                   []    -> error ("Empty: " ++ s) 
+                                                   other -> error ("Multi: " ++ s)
index 5685272..912c687 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../../../..
-PROG = lex
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
 
index d0692df..d617ef7 100644 (file)
@@ -1,4 +1,7 @@
-TOP = ../../../..
-PROG = life_space_leak
-EXTRA_RUNTESTFLAGS = -prescript ./life.test
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_RUNTEST_OPTS += -prescript ./life.test
+
+include $(TOP)/mk/target.mk
+
index f226505..912c687 100644 (file)
@@ -1,5 +1,4 @@
-TOP = ../../../..
-PROG = north_array
-EXTRA_RUNTESTFLAGS = 
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
 
index 1fbaa70..912c687 100644 (file)
@@ -1,10 +1,4 @@
-SRCS_LHS = Main.lhs Bits.lhs LIAS.lhs
-OBJS_O   = Main.o   Bits.o   LIAS.o
-NoFibMultiModuleCompileAndRun(north_lias,-o1 north_lias.stdout)
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
 
-NoFibHaskellCompile(north_lias,Main,lhs)
-NoFibHaskellCompile(north_lias,Bits,lhs)
-NoFibHaskellCompile(north_lias,LIAS,lhs)
-
-NoFibDependTarget(north_lias, $(SRCS_LHS))
index e773842..912c687 100644 (file)
@@ -1,3 +1,4 @@
-TOP = ../../../..
-PROG = sanders_array
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
+
index dd48f32..912c687 100644 (file)
@@ -1,4 +1,4 @@
-TOP = ../../../..
-PROG = waugh_neural
-SRCS = BpGen.lhs ReadLists.lhs Main.lhs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
+
index 191a839..1f6de0d 100644 (file)
@@ -1,6 +1,6 @@
 module Main where
 
-import PreludeGlaST
+import STBase
 
 main = putStr (shows res "\n")
        where
index 78b88b6..be2979b 100644 (file)
@@ -1,7 +1,7 @@
-TOP = ../../../..
-PROG = zhang_ccall
-LIBS = ccall.o
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_HC_OPTS += -fglasgow-exts
+
+include $(TOP)/mk/target.mk
 
-ccall.o : ccall.c
-       $(CC) -c $(CFLAGS) ccall.c
index 95c8b77..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg001
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 0db7911..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg002
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index fef4807..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg003
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index d430c1d..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg004
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 6cf03d7..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg005
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 0bfaded..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg006
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 39d8ad9..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg007
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index b46e7dc..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg008
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index b7a9aa8..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg009
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index ff8e25c..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg010
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index a158018..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg011
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 178b3f4..1b2d6ae 100644 (file)
@@ -1,5 +1,8 @@
 --!!! move arguments around on the stacks, mainly the B stack
 
+import PrelBase        ( Float#, Double#, Int#, Int(..) )
+
+
 main = print foo
 
 foo = I#
index 9a60785..9e41df2 100644 (file)
@@ -1,5 +1,7 @@
-TOP = ../../..
-PROG = cg012
-EXTRA_HCFLAGS = -fglasgow-exts
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+EXTRA_HC_OPTS += -fglasgow-exts
+
+include $(TOP)/mk/target.mk
 
index 56fcf3c..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg013
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 5db8ce9..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg014
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index d48e280..9c0f07b 100644 (file)
@@ -1,13 +1,14 @@
 module GHCmain ( mainPrimIO ) where
 
-import PreludeGlaST
+import GlaExts
+import PrelBase
 
 data CList = CNil | CCons Int# CList
 
 mk :: Int# -> CList
 mk n  = if (n ==# 0#)
        then CNil
-       else CCons 1# (mk (n `minusInt#` 1#))
+       else CCons 1# (mk (n -# 1#))
 
 clen :: CList -> Int#
 clen CNil = 0#
index c943d21..9e41df2 100644 (file)
@@ -1,5 +1,7 @@
-TOP = ../../..
-PROG = cg015
-EXTRA_HCFLAGS = -fglasgow-exts
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+EXTRA_HC_OPTS += -fglasgow-exts
+
+include $(TOP)/mk/target.mk
 
index c2ff28d..7585336 100644 (file)
@@ -1,4 +1,7 @@
-TOP = ../../..
-PROG = cg016
-EXTRA_RUNTESTFLAGS = -x1
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_RUNTEST_OPTS += -x1
+
+include $(TOP)/mk/target.mk
+
index 8a4e211..5d1b2d4 100644 (file)
@@ -9,4 +9,4 @@ Fail: 4th call to error
 
 Fail: 5th call to error
 
-Fail: 6th call to error
\ No newline at end of file
+Fail: 6th call to error
index 17052f0..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg017
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 0c43ba1..29dd3cd 100644 (file)
@@ -1,5 +1,7 @@
 --!!! test of datatype with many unboxed fields
 --
+import PrelBase
+
 main = putStr (shows (selectee1 + selectee2) "\n")
 
 data Tfo = Tfo Float# Float# Float# Float# Float# Float# Float# Float# Float# Float# Float# Float#
index f32447b..9e41df2 100644 (file)
@@ -1,4 +1,7 @@
-TOP = ../../..
-PROG = cg018
-EXTRA_HCFLAGS = -fglasgow-exts
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+EXTRA_HC_OPTS += -fglasgow-exts
+
+include $(TOP)/mk/target.mk
+
index 2c03650..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg019
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 31117d4..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg020
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 43b54a0..03503c9 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg021
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+EXTRA_RUNTEST_OPTS += +RTS -K2m -RTS
+include $(TOP)/mk/target.mk
 
index 61351b6..03503c9 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg022
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+EXTRA_RUNTEST_OPTS += +RTS -K2m -RTS
+include $(TOP)/mk/target.mk
 
index d7c63a2..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg023
-SRCS = Main.lhs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index a3b1e1c..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg024
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 02b8d8a..a396205 100644 (file)
@@ -3,7 +3,8 @@
 --
 import IO
 import System
-import Trace
+import IOBase (trace)
+--import Trace ToDo: get this via GlaExts -- SOF
 
 main = do
     prog <- getProgName
index 61c10c4..7585336 100644 (file)
@@ -1,4 +1,7 @@
-TOP = ../../..
-PROG = cg025
-EXTRA_RUNTESTFLAGS = -x1
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_RUNTEST_OPTS += -x1
+
+include $(TOP)/mk/target.mk
+
index e42f86a..1c939ff 100644 (file)
@@ -2,10 +2,12 @@
 --
 module Main ( main ) where
 
-import PreludeGlaST
+import PrelBase --ghc1.3
+import GlaExts
+import ST
 
-import Ratio -- 1.3
-import Array -- 1.3
+import Ratio   -- 1.3
+import Array   -- 1.3
 
 main = putStr
         (test_chars    ++ "\n" ++
@@ -43,7 +45,7 @@ test_ints
          newIntArray (0, (size-1))     >>= \ arr# ->
 
            -- fill in all elements; elem i has i^2 put in it
-         fill_in arr# 0# (size# `minusInt#` 1#) >>
+         fill_in arr# 0# (size# -# 1#) >>
 
            -- freeze the puppy:
          freezeIntArray arr#
@@ -80,7 +82,7 @@ test_addrs
          newAddrArray (0, (size-1))    >>= \ arr# ->
 
            -- fill in all elements; elem i has i^2 put in it
-         fill_in arr# 0# (size# `minusInt#` 1#) >>
+         fill_in arr# 0# (size# -# 1#) >>
 
            -- freeze the puppy:
          freezeAddrArray arr#
@@ -121,7 +123,7 @@ test_floats
          newFloatArray (0, (size-1))   >>= \ arr# ->
 
            -- fill in all elements; elem i has "i * pi" put in it
-         fill_in arr# 0# (size# `minusInt#` 1#) >>
+         fill_in arr# 0# (size# -# 1#) >>
 
            -- freeze the puppy:
          freezeFloatArray arr#
@@ -158,7 +160,7 @@ test_doubles
          newDoubleArray (0, (size-1))  >>= \ arr# ->
 
            -- fill in all elements; elem i has "i * pi" put in it
-         fill_in arr# 0# (size# `minusInt#` 1#) >>
+         fill_in arr# 0# (size# -# 1#) >>
 
            -- freeze the puppy:
          freezeDoubleArray arr#
index 6c01e2a..1dc4044 100644 (file)
@@ -1,5 +1,5 @@
-TOP = ../../..
-PROG = cg026
-EXTRA_HCFLAGS = -fglasgow-exts
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+EXTRA_HC_OPTS += -fglasgow-exts
+include $(TOP)/mk/target.mk
 
index f3a4e61..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg027
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 086044f..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg028
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index f2aadad..7c14131 100644 (file)
@@ -1,15 +1,15 @@
-module GHCmain where
+module Main(main) where
 
 -- In 0.19, we lost the ability to do ccalls with more than 6 arguments
 -- on the Sparc.  Just to make sure it never happens again...
 
-import PreludeGlaST
+import GlaExts
 
-mainPrimIO = 
+main = 
        _ccall_ printf "Testing %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n"
        (01::Int) (02::Int) (03::Int) (04::Int) (05::Int) (06::Int) (07::Int) (08::Int)
        (11::Int) (12::Int) (13::Int) (14::Int) (15::Int) (16::Int) (17::Int) (18::Int)
        (21::Int) (22::Int) (23::Int) (24::Int) (25::Int) (26::Int) (27::Int) (28::Int)
        (31::Int) (32::Int) (33::Int) (34::Int) (35::Int) (36::Int) (37::Int) (38::Int)
-       `seqPrimIO`
-       returnPrimIO ()
+       `thenIO_Prim`  \ _ ->
+       return ()
index 7fc79d1..1dc4044 100644 (file)
@@ -1,5 +1,5 @@
-TOP = ../../..
-PROG = cg029
-EXTRA_HCFLAGS = -fglasgow-exts
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+EXTRA_HC_OPTS += -fglasgow-exts
+include $(TOP)/mk/target.mk
 
index 4cf54fc..49cd148 100644 (file)
@@ -1,5 +1,6 @@
-module GHCmain where
+module Main(mainPrimIO) where
 
-import PreludeGlaST
+import ST
+import STBase
 
-mainPrimIO = _ccall_ puts "123\n"
+mainPrimIO = _ccall_ puts "123\n" >> return ()
index c73c8cf..1dc4044 100644 (file)
@@ -1,5 +1,5 @@
-TOP = ../../..
-PROG = cg030
-EXTRA_HCFLAGS = -fglasgow-exts
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+EXTRA_HC_OPTS += -fglasgow-exts
+include $(TOP)/mk/target.mk
 
index bede4b6..10dede2 100644 (file)
@@ -3,6 +3,8 @@
 --
 module Main ( main ) where
 
+import PrelBase
+
 main = do
     putStr (shows (sum ([1..1{-30-}]++[1..1{-40-}]++[11,22])) "\n")
     putStr (shows (prog 1{-30-} 1{-40-}) "\n")
@@ -33,9 +35,9 @@ add_up :: Int# -> [Foo a] -> [Foo a] -> Int#
 
 add_up acc [] [] = acc
 add_up acc [] ys  = add_up acc ys []
-add_up acc (x:xs) (y:ys) = add_up (acc `plusInt#` add x y) xs ys
+add_up acc (x:xs) (y:ys) = add_up (acc +# add x y) xs ys
 add_up acc (x:xs) [] = add_up acc xs []
 
 add :: Foo a -> Foo a -> Int#
 add (MkFoo _ _ _ _ _ x) (MkFoo _ _ _ _ _ y)
-  = x `plusInt#` y
+  = x +# y
index 6bb3c0b..b9798ec 100644 (file)
@@ -1,5 +1,7 @@
-TOP = ../../..
-PROG = cg031
-EXTRA_HCFLAGS = -fglasgow-exts
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_HC_OPTS += -fglasgow-exts
+
+include $(TOP)/mk/target.mk
 
index ace9189..e8c0680 100644 (file)
@@ -1,5 +1,7 @@
 --!! pattern-matching failure on functions that return Int#
 
+import PrelBase --ghc1.3
+
 main = putStr (shows (I# (foo bar1 bar2)) "\n")
   where
     bar1 = Bar1 40 (39,38) resps
index 31cc7d2..1dc4044 100644 (file)
@@ -1,5 +1,5 @@
-TOP = ../../..
-PROG = cg032
-EXTRA_HCFLAGS = -fglasgow-exts
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+EXTRA_HC_OPTS += -fglasgow-exts
+include $(TOP)/mk/target.mk
 
index e206f99..b709a78 100644 (file)
@@ -1,6 +1,8 @@
 --!! worker/wrapper turns ( \ <absent> -> Int# ) function
 --!! into Int# -- WRONG
 
+import PrelBase --ghc1.3
+
 main = putStr (shows true_or_false "\n")
   where
     true_or_false
index 4b7f3f4..1dc4044 100644 (file)
@@ -1,5 +1,5 @@
-TOP = ../../..
-PROG = cg033
-EXTRA_HCFLAGS = -fglasgow-exts
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+EXTRA_HC_OPTS += -fglasgow-exts
+include $(TOP)/mk/target.mk
 
index 3f2bcce..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg034
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index eef6e01..947dc95 100644 (file)
@@ -1,6 +1,8 @@
 module Main (main) where
 
-import PreludeGlaST
+--import PreludeGlaST
+import ST
+import STBase
 
 po :: Double -> Double
 po rd = 0.5 + 0.5 * erf ((rd / 1.04) / sqrt 2)
index 5ee426e..1dc4044 100644 (file)
@@ -1,5 +1,5 @@
-TOP = ../../..
-PROG = cg035
-EXTRA_HCFLAGS = -fglasgow-exts
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+EXTRA_HC_OPTS += -fglasgow-exts
+include $(TOP)/mk/target.mk
 
diff --git a/GHC_ONLY/cg035/cg035.c b/GHC_ONLY/cg035/cg035.c
new file mode 100644 (file)
index 0000000..4389702
--- /dev/null
@@ -0,0 +1,10 @@
+#include <math.h>
+
+double po( double rd )
+{ 
+  return (0.5 + 0.5 * erf ((rd / 1.04) / (double) sqrt( (double) 2.0 )));
+}
+
+main() {
+  printf( "%.16E\n", po(2.0) );
+}
index 1ccc645..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg036
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 82620a1..9c16f37 100644 (file)
@@ -2,3 +2,5 @@
 -- Constant strings with '\0' in them don't work :-
 --
 main = putStrLn "hello\0 world"
+--main = putStrLn "hello0 world"
+
index 9d74017..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg037
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 1936f8f..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg038
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index d20c4fc..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg039
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 1e50b05..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = cg040
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
diff --git a/GHC_ONLY/frontend001/Main.hs b/GHC_ONLY/frontend001/Main.hs
new file mode 100644 (file)
index 0000000..2acc2a7
--- /dev/null
@@ -0,0 +1,13 @@
+-- Tests match on empty field lists 
+
+module Main where
+
+data Person    =  Female {firstName, lastName :: String}
+               |  Male   {firstName, lastName :: String}
+               deriving (Show)
+
+isFemale (Female{})   =  True
+isFemale (Male{})     =  False
+
+main = print (isFemale (Female {firstName = "Jane"})
+
diff --git a/GHC_ONLY/frontend001/Makefile b/GHC_ONLY/frontend001/Makefile
new file mode 100644 (file)
index 0000000..cfa1f48
--- /dev/null
@@ -0,0 +1,4 @@
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
+
diff --git a/GHC_ONLY/frontend002/Main.hs b/GHC_ONLY/frontend002/Main.hs
new file mode 100644 (file)
index 0000000..c70dd44
--- /dev/null
@@ -0,0 +1,11 @@
+-- Test n+k patterns
+
+module Main where
+
+f (n+1) = n
+
+g :: Int -> Int
+g (n+4) = n
+
+main = print (f 3)     >>
+       print (g 9)
diff --git a/GHC_ONLY/frontend002/Makefile b/GHC_ONLY/frontend002/Makefile
new file mode 100644 (file)
index 0000000..cfa1f48
--- /dev/null
@@ -0,0 +1,4 @@
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
+
diff --git a/GHC_ONLY/frontend003/Main.hs b/GHC_ONLY/frontend003/Main.hs
new file mode 100644 (file)
index 0000000..238a2c3
--- /dev/null
@@ -0,0 +1,46 @@
+{- 
+
+From: Olaf Chitil <chitil@Informatik.RWTH-Aachen.DE>
+
+It is a problem with 0.29 (which we use for compiling 2.01), it is gone
+in 2.01.
+
+       f :: Eq a => a -> [b] -> [b] -> Bool
+       f a [] [] = (a==a)
+       main = print (f True "" "Hallo")
+
+
+when run after compilation with 0.29 you get:
+Fail: "test.hs", line 6: incomplete pattern(s) to match in function "ds.d5b4"
+
+while 2.01 gives you as desired
+Fail: In pattern-matching: function f{-aYw-}; at test.hs, line 6
+
+The problem is the dictionary, because for the program
+
+       f :: a -> [b] -> [b] -> Bool
+       f a [] [] = True
+       main = print (f True "" "Hallo")
+
+0.29 gives the function name "f" as well.
+
+So it's ok in 2.01, but why did you change the form of the error messages?
+"incomplete pattern(s) to match" is more informative then "In pattern-matching"!
+I even prefer the order of information in the 0.29 error messages.
+
+May I finally repeat that in my opinion the compiler should warn about
+incomplete patterns during compilation. However, I suppose the
+incomplete patterns are just recognised by the desugarer which does
+not produce error messages any more.
+
+-}
+
+
+module Main where
+
+f :: Eq a => a -> [b] -> [b] -> Bool
+f a [] [] = (a==a)
+
+main = print (f True "" "Hallo")
+
+
diff --git a/GHC_ONLY/frontend003/Makefile b/GHC_ONLY/frontend003/Makefile
new file mode 100644 (file)
index 0000000..cfa1f48
--- /dev/null
@@ -0,0 +1,4 @@
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
+
index 6e7ea21..8c74ae9 100644 (file)
@@ -1,3 +1,5 @@
-TOP = ../../..
-PROG = ghclib001
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -syslib ghc
+EXTRA_RUNTEST_OPTS += +RTS -K2m -H10m -RTS
+include $(TOP)/mk/target.mk
index 57f2079..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = io001
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index c9a1bcf..b43c2ac 100644 (file)
@@ -4,9 +4,11 @@ main =
     getEnv "TERM" >>= \ term -> 
     putStr term >>
     putChar '\n' >>
-    getEnv "One fish, two fish, red fish, blue fish" >>= \ fish -> 
-    putStr fish >>
-    putChar '\n'
+    (getEnv "One fish, two fish, red fish, blue fish" >>= \ fish -> 
+      putStr fish >> putChar '\n')
+      `catch`
+    (\ err ->putStr (show err) >> putChar '\n')
+
 
 
 
index 580772f..7585336 100644 (file)
@@ -1,4 +1,7 @@
-TOP = ../../..
-PROG = io002
-EXTRA_RUNTESTFLAGS = -x1
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_RUNTEST_OPTS += -x1
+
+include $(TOP)/mk/target.mk
+
index 296b906..e69de29 100644 (file)
@@ -1,2 +0,0 @@
-
-Fail: I/O error: NoSuchThing: environment variable: One fish, two fish, red fish, blue fish
index e69de29..c35dcc3 100644 (file)
@@ -0,0 +1,2 @@
+dumb
+NoSuchThing: environment variable: One fish, two fish, red fish, blue fish
index 47983d6..46ec2b2 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = io003
-EXTRA_RUNTESTFLAGS = with some arguments
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+EXTRA_RUNTEST_OPTS = with some arguments
+include $(TOP)/mk/target.mk
+
index 564c9cd..61de203 100644 (file)
@@ -1,4 +1,7 @@
-TOP = ../../..
-PROG = io004
-EXTRA_RUNTESTFLAGS = -x42
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_RUNTEST_OPTS += -x42
+
+include $(TOP)/mk/target.mk
+
index aef13e9..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = io005
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 81f013d..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = io006
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 9e91137..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = io007
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 47f1a6e..3556d14 100644 (file)
@@ -1,5 +1,8 @@
+module Main(main) where
+
 import IO -- 1.3
-import GHCio
+import IOBase -- tryIO 1.3
+--import GHCio
 
 import Directory (removeFile)
 
index 0bc4bb1..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = io008
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index f804d17..5da9bf1 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = io009
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -syslib hbc
+include $(TOP)/mk/target.mk
 
index f4a80d8..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = io010
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 97f7d90..8d8d745 100644 (file)
@@ -1,6 +1,7 @@
 import IO -- 1.3
 
 import Directory
+import GlaExts (trace)
 
 main =
     createDirectory "foo" >>
index 6272189..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = io011
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index e7323ba..3e4a496 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = io012
-EXTRA_RUNSTDTESTFLAGS = -prescript ./io012.test
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -syslib ghc
+SRC_RUNTEST_OPTS += -prescript ./io012.test
+include $(TOP)/mk/target.mk
index 8b1f4a3..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = io013
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 49c0619..a556415 100644 (file)
@@ -1,4 +1,7 @@
-TOP = ../../..
-PROG = io014
-EXTRA_RUNTESTFLAGS = -i Main.hs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_RUNTEST_OPTS += -i Main.hs
+
+include $(TOP)/mk/target.mk
+
index 4bf4b56..a556415 100644 (file)
@@ -1,4 +1,7 @@
-TOP = ../../..
-PROG = io015
-EXTRA_RUNTESTFLAGS = -i Main.hs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_RUNTEST_OPTS += -i Main.hs
+
+include $(TOP)/mk/target.mk
+
index fa4430b..7b316c1 100644 (file)
@@ -1,4 +1,7 @@
-TOP = ../../..
-PROG = io016
-EXTRA_RUNTESTFLAGS = Main.hs bar
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_RUNTEST_OPTS += Main.hs bar
+
+include $(TOP)/mk/target.mk
+
index ec35e33..cf44ea3 100644 (file)
@@ -1,3 +1,5 @@
-TOP = ../../..
-PROG = io017
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index 7318cc7..c34334e 100644 (file)
@@ -1,3 +1,6 @@
+-- Sigbjorn and I don't understand what this test is meant to do
+-- It simply hangs on stdin!
+
 import IO -- 1.3
 
 import System(getArgs)
index 5be1f47..be0be99 100644 (file)
@@ -1,4 +1,6 @@
-TOP = ../../..
-PROG = io018
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+EXTRA_RUNTEST_OPTS = joy cs.berkeley.edu
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index 2f9ae74..78b2940 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = io019
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -syslib ghc -syslib posix
+include $(TOP)/mk/target.mk
 
index 636449b..78b2940 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = io020
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -syslib ghc -syslib posix
+include $(TOP)/mk/target.mk
 
index 805960d..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = io021
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
 
index e472b66..1b66e8d 100644 (file)
@@ -1,5 +1,7 @@
-TOP = ../../..
-PROG = net001
-EXTRA_RUNTESTFLAGS = -script ./not-really-hahaha
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
 
+SRC_HC_OPTS += -syslib ghc -syslib posix
+SRC_RUNTEST_OPTS += -script ./not-really-hahaha
+
+include $(TOP)/mk/target.mk
index fe9d9ba..f1bd7f8 100644 (file)
@@ -1,5 +1,8 @@
-TOP = ../../..
-PROG = net002
-EXTRA_RUNTESTFLAGS = -script ./not-really-hahaha
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_HC_OPTS += -syslib ghc
+SRC_RUNTEST_OPTS += -script ./not-really-hahaha
+
+include $(TOP)/mk/target.mk
 
index 29c92c0..1b66e8d 100644 (file)
@@ -1,5 +1,7 @@
-TOP = ../../..
-PROG = net003
-EXTRA_RUNTESTFLAGS = -script ./not-really-hahaha
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
 
+SRC_HC_OPTS += -syslib ghc -syslib posix
+SRC_RUNTEST_OPTS += -script ./not-really-hahaha
+
+include $(TOP)/mk/target.mk
index 3948707..3891156 100644 (file)
@@ -10,10 +10,10 @@ TESTS:
 -}
 
 
-module Main where
+module Main(main) where
 
 import SocketPrim
-import LibSystem
+import System
 
 
 starbuck    = "130.209.240.81"
index 1091faf..5ed918f 100644 (file)
@@ -1,5 +1,8 @@
-TOP = ../../..
-PROG = net004
-EXTRA_RUNTESTFLAGS = -script ./not-really-hahaha
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_HC_OPTS += -syslib ghc -syslib posix
+SRC_RUNTEST_OPTS += -script ./not-really-hahaha
+
+include $(TOP)/mk/target.mk
 
index 0b10c26..1b66e8d 100644 (file)
@@ -1,5 +1,7 @@
-TOP = ../../..
-PROG = net005
-EXTRA_RUNTESTFLAGS = -script ./not-really-hahaha
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
 
+SRC_HC_OPTS += -syslib ghc -syslib posix
+SRC_RUNTEST_OPTS += -script ./not-really-hahaha
+
+include $(TOP)/mk/target.mk
index 57be04e..e2ad13a 100644 (file)
@@ -19,9 +19,9 @@ message           = "Hello World"
 
 
 main =
-    socket AF_UNIX Datagram 0                          >>= \ s ->
-    connect s (SockAddrUnix "sock")                    >>
+    socket AF_UNIX Datagram 0          >>= \ s ->
+    connect s (SockAddrUnix "sock")    >>
     
-    writeSocket s message                              >>
-    shutdown s 2                                       >>
+    writeSocket s message              >>
+    shutdown s ShutdownBoth            >>
     sClose s
index 9654fd6..5ed918f 100644 (file)
@@ -1,5 +1,8 @@
-TOP = ../../..
-PROG = net006
-EXTRA_RUNTESTFLAGS = -script ./not-really-hahaha
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_HC_OPTS += -syslib ghc -syslib posix
+SRC_RUNTEST_OPTS += -script ./not-really-hahaha
+
+include $(TOP)/mk/target.mk
 
index a647446..80bdfc4 100644 (file)
@@ -1,5 +1,9 @@
-TOP = ../../..
-PROG = net007
-EXTRA_RUNTESTFLAGS = -script ./not-really-hahaha
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_HC_OPTS += -syslib ghc -syslib posix
+SRC_RUNTEST_OPTS += -script ./not-really-hahaha
+
+include $(TOP)/mk/target.mk
+
 
index 8c33929..2cf1774 100644 (file)
@@ -2,8 +2,7 @@ module Main where
 
 import SocketPrim
 import BSD
-import LibSystem
-
+import System
 
 main =
     getArgs                                    >>= \ [host, port, message] ->
@@ -17,6 +16,6 @@ main =
     getHostByAddr AF_INET haddr                        >>= \ (HostEntry hname _ _ _) ->
     putStr ("Connected to : " ++ hname ++ "\n") >>
     writeSocket s message                      >>
-    shutdown s 2                               >>
+    shutdown s ShutdownBoth                    >>
     sClose s
 
index 1e99cea..5ed918f 100644 (file)
@@ -1,5 +1,8 @@
-TOP = ../../..
-PROG = net008
-EXTRA_RUNTESTFLAGS = -script ./not-really-hahaha
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_HC_OPTS += -syslib ghc -syslib posix
+SRC_RUNTEST_OPTS += -script ./not-really-hahaha
+
+include $(TOP)/mk/target.mk
 
diff --git a/GHC_ONLY/net009/Main.hs b/GHC_ONLY/net009/Main.hs
new file mode 100644 (file)
index 0000000..c34334e
--- /dev/null
@@ -0,0 +1,28 @@
+-- Sigbjorn and I don't understand what this test is meant to do
+-- It simply hangs on stdin!
+
+import IO -- 1.3
+
+import System(getArgs)
+
+main =   getArgs                            >>=        \ [user,host] ->
+         let username = (user ++ "@" ++ host) in
+         openFile username ReadWriteMode    >>=        \ cd          ->
+         hSetBuffering stdin NoBuffering    >>
+         hSetBuffering stdout NoBuffering   >>
+         hSetBuffering cd NoBuffering       >>
+         hPutStr cd speakString             >>
+         speak cd
+
+speakString = "Someone wants to speak with you\n"
+
+speak cd =
+         (hReady cd                         >>=        \ ready       ->
+         if ready then (hGetChar cd >>= putChar)
+         else return ()                     >>
+
+         hReady stdin                       >>=        \ ready       ->
+         if ready then (getChar >>= hPutChar cd)
+         else return ())                    >>
+
+         speak cd
diff --git a/GHC_ONLY/net009/Makefile b/GHC_ONLY/net009/Makefile
new file mode 100644 (file)
index 0000000..be0be99
--- /dev/null
@@ -0,0 +1,6 @@
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+EXTRA_RUNTEST_OPTS = joy cs.berkeley.edu
+-include opts.mk
+include $(TOP)/mk/target.mk
+
diff --git a/GHC_ONLY/net009/net009.stdout b/GHC_ONLY/net009/net009.stdout
new file mode 100644 (file)
index 0000000..e69de29
index aa8ddb9..912c687 100644 (file)
@@ -1,3 +1,4 @@
 TOP = ../../..
-SUBDIRS = launchbury rittri
-include $(TOP)/nofib/mk/nofib.mk
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
+
index c4327df..912c687 100644 (file)
@@ -1,3 +1,4 @@
-TOP = ../../../..
-PROG = launchbury
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
+
index 20cd20e..912c687 100644 (file)
@@ -1,3 +1,4 @@
-TOP = ../../../..
-PROG = rittri
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
+
index fa5e65d..92fb67c 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = po001
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -syslib posix
+include $(TOP)/mk/target.mk
 
index cd0f638..92fb67c 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = po002
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -syslib posix
+include $(TOP)/mk/target.mk
 
index c4c1c95..92fb67c 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = po003
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -syslib posix
+include $(TOP)/mk/target.mk
 
index a1fca98..92fb67c 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = po004
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -syslib posix
+include $(TOP)/mk/target.mk
 
index 0216a9c..92fb67c 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = po005
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -syslib posix
+include $(TOP)/mk/target.mk
 
index 71fb296..92fb67c 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = po006
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -syslib posix
+include $(TOP)/mk/target.mk
 
index 2776a2e..92fb67c 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = po007
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -syslib posix
+include $(TOP)/mk/target.mk
 
index f4bd36b..92fb67c 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = po008
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -syslib posix
+include $(TOP)/mk/target.mk
 
index f64a513..92fb67c 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = po009
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -syslib posix
+include $(TOP)/mk/target.mk
 
index dd82f86..92fb67c 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = po010
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -syslib posix
+include $(TOP)/mk/target.mk
 
index bacc65b..92fb67c 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = po011
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -syslib posix
+include $(TOP)/mk/target.mk
 
index 90e5d20..92fb67c 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = po012
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -syslib posix
+include $(TOP)/mk/target.mk
 
index 0e57824..95f62e1 100644 (file)
@@ -1,3 +1,5 @@
 TOP = ../../..
+include $(TOP)/mk/boilerplate.mk
 SUBDIRS = $(wildcard spec* code* clausify*)
-include $(TOP)/nofib/mk/nofib.mk
+include $(TARGET_MK)
+
index 818aee6..6950a54 100644 (file)
@@ -1,12 +1,14 @@
 \begin{code}
-import PreludeGlaST
-import GHCio(stThen)
+module Main(main) where
+
+--import PreludeGlaST
+--old:import GHCio(stThen)
 --old:import PreludeGlaMisc
 
-main = makeStablePtr test      `stThen` \ stablePtr ->
+main = makeStablePtr test      >>= \ stablePtr ->
        ((_casm_GC_ ``SaveAllStgRegs(); test1(%0); RestoreAllStgRegs();'' stablePtr)
                                                :: PrimIO ())
-                               `stThen` \ _ ->
+                               >>= \ _ ->
        return ()
 
 test :: IO Int
@@ -16,8 +18,8 @@ test =
        in 
        _ccall_ printf
              "The stable pointer has just been used to print this number %d\n" (f 100)
-                               `stThen` \ _ ->
-       return 42
+                               >>= \ _ ->
+       return 5
 \end{code}
 
 This is a rather exciting experiment in using the new call
index e39330b..f3b9242 100644 (file)
@@ -1,12 +1,5 @@
-TOP = ../../..
-PROG = stable001
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_HC_OPTS += -fglasgow-exts
+include $(TOP)/mk/target.mk
 
-Main_C.o: Main_C.c
-       $(HC) -c -O Main_C.c
-
-Main_C.c: Main.lhs
-       $(LIT2PGM) -r C-code -l c -i Main.lhs -o Main_C.c
-
-Main.hs: Main.lhs
-       $(LIT2PGM) -i Main.lhs -o Main.hs
index 6a0082c..18d9074 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,40 +1,27 @@
-# $Id: Makefile,v 1.3 1996/11/27 18:43:03 dnt Exp $
+#################################################################################
+#
+#                          nofib/Makefile
+#
+#              Toplevel Makefile for the nofib project
+#
+#              $Id: Makefile,v 1.4 1997/03/14 08:02:40 simonpj Exp $
+#
+#################################################################################
+
+TOP = .
+include $(TOP)/mk/boilerplate.mk
+
+# Set up which parts of the nofib suite that is to be
+# run. See $(FPTOOLS_TOP)/mk/config.mk, which tells you how
+# to set NoFibSubDirs
+#
+# As usual,if you want to override these, create
+# $(FPTOOLS)/mk/build.mk containing the flags and options
+# you want to use in a build tree.
+SUBDIRS = $(NoFibSubDirs)
+
+
+# Include the standard targets, one of which
+# causes make to descend into the SUBDIRS.
+include $(TOP)/mk/target.mk
 
-TOP = ..
-include $(TOP)/nofib/mk/site.mk
-
-SUBDIRS =
-
-ifeq ($(ImaginaryNoFibTests), YES)
-  SUBDIRS += imaginary
-endif
-
-ifeq ($(SpectralNoFibTests), YES)
-  SUBDIRS += spectral
-endif
-
-ifeq ($(RealNoFibTests), YES)
-  SUBDIRS += real
-endif
-
-ifeq ($(PENDINGNoFibTests), YES)
-  SUBDIRS += PENDING
-endif
-
-ifeq ($(UNUSEDNoFibTests), YES)
-  SUBDIRS += UNUSED
-endif
-
-ifeq ($(GHC_ONLYNoFibTests), YES)
-  SUBDIRS += GHC_ONLY
-endif
-
-ifeq ($(PRIVATENoFibTests), YES)
-  SUBDIRS += PRIVATE
-endif
-
-ifeq ($(ParallelNoFibTests), YES)
-  SUBDIRS += parallel
-endif
-
-include $(TOP)/nofib/mk/nofib.mk
diff --git a/Makefile-template b/Makefile-template
new file mode 100644 (file)
index 0000000..a5bc259
--- /dev/null
@@ -0,0 +1,20 @@
+#################################################################################
+#
+#                      Leaf Makefile template for nofib
+#
+#              Copy this Makefile to each new leaf nofib program directory,
+#                      and fill in any program-specific stuff
+#
+#################################################################################
+
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+# Program-specific stuff goes here.
+# Notably, you can add extra compile, link, or runtests options
+#      SRC_HC_OPTS += ...
+#      SRC_LD_OPTS += ...
+#      SRC_RUNTEST_OPTS += ...
+
+include $(TOP)/mk/target.mk
+
index 2f67e31..ce1d091 100644 (file)
@@ -1,3 +1,4 @@
 TOP = ../..
+include $(TOP)/mk/boilerplate.mk
 SUBDIRS = nfib nfib_overloaded
-include $(TOP)/nofib/mk/nofib.mk
+include $(TARGET_MK)
index 43cb190..cf44ea3 100644 (file)
@@ -1,3 +1,5 @@
-TOP = ../../..
-PROG = nfib
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index a0b1f70..cf44ea3 100644 (file)
@@ -1,3 +1,5 @@
-TOP = ../../..
-PROG = nfib_overloaded
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index 0acf1a8..21ed471 100644 (file)
@@ -1,3 +1,6 @@
-TOP = ../..
+TOP = ..
+include $(TOP)/mk/boilerplate.mk
 SUBDIRS = exp3_8 gen_regexps paraffins primes queens rfib tak x2n1
-include $(TOP)/nofib/mk/nofib.mk
+
+include $(TOP)/mk/target.mk
+
index e018a6a..26fb2cb 100644 (file)
@@ -1,3 +1,7 @@
-TOP = ../../..
-PROG = exp3_8
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_RUNTEST_OPTS += +RTS -H20m -K10m -RTS
+
+include $(TOP)/mk/target.mk
+
index 2160c80..cfa1f48 100644 (file)
@@ -1,3 +1,4 @@
-TOP = ../../..
-PROG = gen_regexps
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/target.mk
+
index bbf09d5..34f386d 100644 (file)
@@ -1,3 +1,10 @@
-TOP = ../../..
-PROG = paraffins
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+# Override default SRCS; the default is all source files, but
+# we don't want to include paraffins.c
+SRCS=Main.hs
+SRC_RUNTEST_OPTS += +RTS -K4m -H20m -RTS
+
+include $(TOP)/mk/target.mk
+
index deff97d..6892107 100644 (file)
@@ -1,3 +1,11 @@
-TOP = ../../..
-PROG = primes
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+# Override default SRCS, or we get cseive.c as well.
+SRCS = Main.hs
+
+# Need big heap to run
+SRC_RUNTEST_OPTS = +RTS -H16m -RTS
+
+include $(TOP)/mk/target.mk
+
index f3a64c4..cf44ea3 100644 (file)
@@ -1,3 +1,5 @@
-TOP = ../../..
-PROG = queens
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index 12c67cc..cf44ea3 100644 (file)
@@ -1,3 +1,5 @@
-TOP = ../../..
-PROG = rfib
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index cc60391..cf44ea3 100644 (file)
@@ -1,3 +1,5 @@
-TOP = ../../..
-PROG = tak
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
diff --git a/imaginary/wheel-sieve1/Main.hs b/imaginary/wheel-sieve1/Main.hs
new file mode 100644 (file)
index 0000000..006f087
--- /dev/null
@@ -0,0 +1,35 @@
+-- Mark I lazy wheel-sieve.
+-- Colin Runciman (colin@cs.york.ac.uk); March 1996.
+-- See article "Lazy wheel sieves and spirals of primes" (to appear, JFP).
+
+data Wheel = Wheel Int [Int]
+
+primes :: [Int]
+primes = sieve wheels primes squares
+
+sieve (Wheel s ns:ws) ps qs =
+  [n' | o <- s:[s*2,s*3..(head ps-1)*s],
+        n <- ns,
+        n'<- [n+o], noFactor n'] 
+  ++
+  sieve ws (tail ps) (tail qs)
+  where
+  noFactor = if s<=2 then const True else notDivBy ps qs
+
+notDivBy (p:ps) (q:qs) n =
+  q > n || n `mod` p > 0 && notDivBy ps qs n
+
+squares :: [Int]
+squares = [p*p | p<-primes]
+
+wheels :: [Wheel]
+wheels = Wheel 1 [1] : zipWith nextSize wheels primes 
+
+nextSize (Wheel s ns) p =
+  Wheel (s*p) ns'
+  where
+  ns' = [n' | o <- [0,s..(p-1)*s],
+              n <- ns,
+              n' <- [n+o], n'`mod`p > 0]
+
+main = print (primes!!(999::Int))
diff --git a/imaginary/wheel-sieve1/Makefile b/imaginary/wheel-sieve1/Makefile
new file mode 100644 (file)
index 0000000..cf44ea3
--- /dev/null
@@ -0,0 +1,5 @@
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
diff --git a/imaginary/wheel-sieve2/Main.hs b/imaginary/wheel-sieve2/Main.hs
new file mode 100644 (file)
index 0000000..951f53e
--- /dev/null
@@ -0,0 +1,43 @@
+-- Mark II lazy wheel-sieve.
+-- Colin Runciman (colin@cs.york.ac.uk); March 1996.
+-- See article "Lazy wheel sieves and spirals of primes" (to appear, JFP).
+
+primes :: [Int]
+primes = spiral wheels primes squares
+
+spiral (Wheel s ms ns:ws) ps qs =
+  foldr turn0 (roll s) ns
+  where
+  roll o = foldr (turn o) (foldr (turn o) (roll (o+s)) ns) ms
+  turn0  n rs =
+    if n<q then n:rs else sp
+  turn o n rs =
+    let n' = o+n in
+    if n'==2 || n'<q then n':rs else dropWhile (<n') sp
+  sp = spiral ws (tail ps) (tail qs)
+  q = head qs
+
+squares :: [Int]
+squares = [p*p | p <- primes]
+
+data Wheel = Wheel Int [Int] [Int]
+
+wheels :: [Wheel]
+wheels = Wheel 1 [1] [] :
+         zipWith3 nextSize wheels primes squares 
+
+nextSize (Wheel s ms ns) p q =
+  Wheel (s*p) ms' ns'
+  where
+  (xs, ns') = span (<=q) (foldr turn0 (roll (p-1) s) ns)
+  ms' = foldr turn0 xs ms
+  roll 0 _ = []
+  roll t o = foldr (turn o) (foldr (turn o) (roll (t-1) (o+s)) ns) ms
+  turn0  n rs =
+    if n`mod`p>0 then n:rs else rs
+  turn o n rs =
+    let n' = o+n in
+    if n'`mod`p>0 then n':rs else rs
+
+main = print (primes!!(999::Int))
+
diff --git a/imaginary/wheel-sieve2/Makefile b/imaginary/wheel-sieve2/Makefile
new file mode 100644 (file)
index 0000000..cf44ea3
--- /dev/null
@@ -0,0 +1,5 @@
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index dc8d7e7..63f69bb 100644 (file)
@@ -29,4 +29,4 @@ import Complex
 main = print (round (realPart (sum [f n | n <- [1..10000]])))
 
 f :: Int -> Complex Double
-f n = mkPolar 1 (2*pi/fromInt n) ^ n
+f n = mkPolar 1 ((2*pi)/fromInt n) ^ n
index 81cb883..24cc150 100644 (file)
@@ -1,3 +1,5 @@
-TOP = ../../..
-PROG = x2n1
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+SRC_RUNTEST_OPTS += +RTS -K600k -H30m -RTS
+include $(TOP)/mk/target.mk
+
diff --git a/mk/boilerplate.mk b/mk/boilerplate.mk
new file mode 100644 (file)
index 0000000..59d59fb
--- /dev/null
@@ -0,0 +1,34 @@
+#################################################################################
+#
+#                          nofib/mk/boilerplate.mk
+#
+#              Boilerplate Makefile for an fptools project
+#
+#################################################################################
+
+# Begin by slurping in the boilerplate from one level up, 
+# with standard TOP-mangling
+# Remember, TOP is the top level of the innermost level
+# ( FPTOOLS_TOP, which will be set while processing
+#   toplevel boilerplate, is the fptools top )
+
+NOFIB_TOP := $(TOP)
+TOP := $(TOP)/..
+include $(TOP)/mk/boilerplate.mk
+TOP:=$(NOFIB_TOP)
+
+
+# -----------------------------------------------------------------
+# Everything after this point
+# augments or overrides previously set variables.
+# (these files are optional, so `make' won't fret if it
+#  cannot get to them).
+# -----------------------------------------------------------------
+
+WAYS=$(NoFibWays)
+
+SRC_HC_OPTS += $(NoFibHcOpts) -Rghc-timing
+
+include $(NOFIB_TOP)/mk/paths.mk
+include $(NOFIB_TOP)/mk/opts.mk
+include $(NOFIB_TOP)/mk/suffix.mk
diff --git a/mk/nofib.mk b/mk/nofib.mk
deleted file mode 100644 (file)
index 2c20450..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-
-include $(TOP)/nofib/mk/site.mk
-
-#-----------------------------------------------------------------------------
-# General utilities
-
-SHELL  = /bin/sh
-RM     = rm -f
-TIME   = time
-STRIP  = strip
-SIZE   = size
-
-#-----------------------------------------------------------------------------
-# Haskell utilities
-
-ifdef UseInstalledUtils
-  RUNSTDTEST = runstdtest
-else
-  RUNSTDTEST = $(TOP)/glafp-utils/runstdtest/runstdtest
-endif
-
-#-----------------------------------------------------------------------------
-# The 'all' target prints out the current configuration and builds runtests.
-
-all ::
-       @echo HC = $(HC)
-       @echo HCFLAGS = $(HCFLAGS)
-       @echo RUNTESTFLAGS = $(RUNTESTFLAGS)
-
-print_% ::
-       @echo HCFLAGS_$* = $(HCFLAGS_$*)
-
-all :: $(foreach way,$(WAYS),print_$(way)) runtests
-
-#-----------------------------------------------------------------------------
-# Subdirs stuff.
-
-ifdef SUBDIRS
-  clean::
-       @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
-       for i in $(SUBDIRS) ; do \
-         $(MAKE) -C $$i $(MFLAGS) clean; \
-       done
-  veryclean::
-       @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
-       for i in $(SUBDIRS) ; do \
-         $(MAKE) -C $$i $(MFLAGS) veryclean; \
-       done
-  runtests::
-       @case '${MFLAGS}' in *[ik]*) set +e;; esac; \
-       for i in $(SUBDIRS) ; do \
-         $(MAKE) -C $$i $(MFLAGS) runtests; \
-       done
-endif
-
-#-----------------------------------------------------------------------------
-# Cleaning things.
-
-clean ::
-       $(RM) *.CKP *.ln *.BAK *.bak *.o core a.out ,* *.a .emacs_* *.hi
-       $(RM) tags TAGS *.ind *.ilg *.idx *.idx-prev *.aux *.aux-prev *.dvi
-       $(RM) *.log *.toc *.lot *.lof *.blg *.info *.itxi *.itex *.cb errs
-
-veryclean ::
-       $(RM) .??*~ *~ *.orig *.rej
-
-#-----------------------------------------------------------------------------
-# Nofib program targets.
-
-ifdef PROG
-
-ifndef SRCS
-  SRCS = Main.hs
-endif
-
-OBJS = $(SRCS)
-OBJS := $(patsubst %.lhs, %.o, $(OBJS))
-OBJS := $(patsubst %.hs, %.o, $(OBJS))
-OBJS := $(patsubst %.hc, %.o, $(OBJS))
-
-define COMPILE
-       @echo === compiling $(PROG)/$@ $(EXTRA_HCFLAGS) ===
-       @$(TIME) $(HC) $(HCFLAGS) $(EXTRA_HCFLAGS)  -o $@ -c $< \
-         $(HCFLAGS_$(patsubst .%,%,$(suffix $(basename $@))))
-       @echo === size of $(PROG)/$@ ===
-       @$(SIZE) $@
-endef
-
-%.normal.o %.mc.o %.mr.o %.mt.o %.mp.o %.mg.o %.2s.o %.1s.o %.du.o \
-%.a.o %.b.o %.c.o %.d.o %.e.o %.f.o %.g.o %.h.o %.i.o %.j.o %.k.o \
-%.l.o %.m.o %.n.o %.o.o %.p.o %.A.o %.B.o : %.hs
-       $(COMPILE)
-
-%.normal.o %.mc.o %.mr.o %.mt.o %.mp.o %.mg.o %.2s.o %.1s.o %.du.o \
-%.a.o %.b.o %.c.o %.d.o %.e.o %.f.o %.g.o %.h.o %.i.o %.j.o %.k.o \
-%.l.o %.m.o %.n.o %.o.o %.p.o %.A.o %.B.o : %.lhs
-       $(COMPILE)
-
-%.normal.o %.mc.o %.mr.o %.mt.o %.mp.o %.mg.o %.2s.o %.1s.o %.du.o \
-%.a.o %.b.o %.c.o %.d.o %.e.o %.f.o %.g.o %.h.o %.i.o %.j.o %.k.o \
-%.l.o %.m.o %.n.o %.o.o %.p.o %.A.o %.B.o : %.hc
-       $(COMPILE)
-
-$(PROG)_% : $(OBJS:.o=.%.o)
-       @echo === linking $@ $(EXTRA_HCFLAGS) ===
-       @$(TIME) $(HC) $(HCFLAGS) $(EXTRA_HCFLAGS) -o $@ $^ $(LIBS)
-       @$(STRIP) $@
-       @echo === size of $@ ===
-       @$(SIZE) $@
-
-runtest_% : $(PROG)_%
-       @echo === running $< $(EXTRA_RUNTESTFLAGS) ===
-       @$(TIME) $(RUNSTDTEST) ./$< \
-         $(addprefix -i ,$(wildcard $(PROG).stdin)) \
-         $(addprefix -o1 ,$(wildcard $(PROG).stdout)) \
-         $(addprefix -o2 ,$(wildcard $(PROG).stderr)) \
-         $(RUNTESTFLAGS) $(EXTRA_RUNTESTFLAGS)
-
-runtests :: $(foreach way,$(WAYS),$(PROG)_$(way) runtest_$(way))
-
-clean ::
-       $(RM) $(foreach way,$(WAYS),$(PROG)_$(way))
-
-endif
diff --git a/mk/opts.mk b/mk/opts.mk
new file mode 100644 (file)
index 0000000..80e15ca
--- /dev/null
@@ -0,0 +1,17 @@
+#################################################################################
+#
+#                          nofib/mk/opts.mk
+#
+#      $Id: opts.mk,v 1.1 1997/03/14 08:07:03 simonpj Exp $
+#
+#################################################################################
+
+
+SRC_RUNTEST_OPTS += -ghc-timing +RTS -H20m -K10m -RTS
+
+#-----------------------------------------------------------------------------
+# Setting for Haskell compiler
+#
+SRC_HC_OPTS  += -H32m -K2m
+
+
diff --git a/mk/paths.mk b/mk/paths.mk
new file mode 100644 (file)
index 0000000..f4face1
--- /dev/null
@@ -0,0 +1,16 @@
+#################################################################################
+#
+#                          nofib/mk/paths.mk
+#
+#      This file defines Make variables for standard directories
+#      and file lists
+#
+#################################################################################
+
+
+# Define NOFIB_PROG.  In ..../nofib/imaginary/exp3_8, PROG is exp3_8 by default.
+#
+NOFIB_PROG = $(notdir $(shell pwd))$(_way)
+
+# Eventually, have the binary purged
+CLEAN_FILES += $(NOFIB_PROG)
diff --git a/mk/site.mk b/mk/site.mk
deleted file mode 100644 (file)
index 3515051..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-#-----------------------------------------------------------------------------
-# $Id: site.mk,v 1.4 1997/01/17 00:35:25 simonpj Exp $
-
-#-----------------------------------------------------------------------------
-# Set these flags to YES or NO to determine which sets of tests wil be run
-
-include $(TOP)/nofib/mk/buildinfo.mk
-
-#-----------------------------------------------------------------------------
-# Haskell compiler
-
-HCFLAGS = -H32m -K2m
-
-#-----------------------------------------------------------------------------
-# Flags to use when we run a test
-
-RUNTESTFLAGS = +RTS -H48m -K32m --RTS
-
-#-----------------------------------------------------------------------------
-# Set WAYS according to which ways you want to build the nofib suite
-
-WAYS = normal
-
-#WAYS = normal mc mr mt mp mg 2s 1s du p t a b c d e f g h i j k l m n o p A B
-
-# ================================================================
-# BUILDS stuff: main sequential ones
-
-HCFLAGS_normal =
-HCFLAGS_p      = -prof
-HCFLAGS_t      =
-HCFLAGS_u      =
-
-# === builds: concurrent and parallel ============================
-
-HCFLAGS_mc =
-HCFLAGS_mr =
-HCFLAGS_mt =
-HCFLAGS_mp =
-HCFLAGS_mg =
-
-# === builds: non-std garbage collectors ==========================
-
-HCFLAGS_2s = -gc-2s
-HCFLAGS_1s = -gc-1s
-HCFLAGS_du = -gc-du
-
-# === builds: "user ways" =======================================
-
-HCFLAGS_a =
-HCFLAGS_b =
-HCFLAGS_c =
-HCFLAGS_d =
-HCFLAGS_e =
-HCFLAGS_f =
-HCFLAGS_g =
-HCFLAGS_h =
-HCFLAGS_i =
-HCFLAGS_j =
-HCFLAGS_k =
-HCFLAGS_l =
-HCFLAGS_m =
-HCFLAGS_n =
-HCFLAGS_o =
-HCFLAGS_A =
-HCFLAGS_B =
diff --git a/mk/suffix.mk b/mk/suffix.mk
new file mode 100644 (file)
index 0000000..80c398d
--- /dev/null
@@ -0,0 +1,26 @@
+#################################################################################
+#
+#                          nofib/mk/suffix.mk
+#
+#              Extra suffix rules for nofib project
+#
+#################################################################################
+
+# We override the compile suffix rules so that
+# we can gather time and size information
+
+define COMPILE
+       @echo ==nofib==  $(NOFIB_PROG): time to compile $@ follows...
+       @echo $(HC) $(HC_OPTS) -c $< -o $@
+       @time $(HC) $(HC_OPTS) -c $< -o $@
+       @echo ==nofib== $(NOFIB_PROG): size of $@ follows...
+       @$(SIZE) $@
+endef
+
+%.$(way_)o : %.hs
+       $(COMPILE)
+                        
+%.$(way_)o : %.lhs
+       $(COMPILE)
+                        
+
diff --git a/mk/target.mk b/mk/target.mk
new file mode 100644 (file)
index 0000000..3680df4
--- /dev/null
@@ -0,0 +1,41 @@
+#################################################################################
+#
+#                      target.mk
+#
+#              nofib standard target rules
+#
+#################################################################################
+
+
+# Only do this in leaf directories (important, this)
+ifeq "$(SUBDIRS)" ""
+all ::
+       @echo HC = $(HC)
+       @echo HC_OPTS = $(HC_OPTS)
+       @echo RUNTEST_OPTS = $(RUNTEST_OPTS)
+
+
+all :: runtests
+endif
+
+$(NOFIB_PROG) : $(OBJS)
+       @echo ==nofib== $(NOFIB_PROG): time to link $(NOFIB_PROG) follows...
+       @$(TIME) $(HC) $(HC_OPTS) -o $@ $^ $(LIBS)
+       @$(STRIP) $@
+       @echo ==nofib== $(NOFIB_PROG): size of $(NOFIB_PROG) follows...
+       @$(SIZE) $@
+
+runtests :: $(NOFIB_PROG)
+       @echo ==nofib== $<: time to run $< follows...
+       @$(TIME) $(RUNTEST) ./$< \
+         $(addprefix -i ,$(wildcard $(NOFIB_PROG).stdin)) \
+         $(addprefix -o1 ,$(wildcard $(NOFIB_PROG).stdout)) \
+         $(addprefix -o2 ,$(wildcard $(NOFIB_PROG).stderr)) \
+         $(RUNTEST_OPTS)
+
+
+# Include standard boilerplate
+# We do this at the end for cosmetic reasons: it means that the "normal-way"
+# runtests will precede the "other-way" recursive invocations of make
+
+include $(FPTOOLS_TOP)/mk/target.mk
index f9754d9..cf44ea3 100644 (file)
@@ -1,3 +1,5 @@
-TOP = ../../..
-PROG = NESL
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index 3244fc2..cf44ea3 100644 (file)
@@ -1,3 +1,5 @@
-TOP = ../../..
-PROG = bom
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index 4775ddb..cf44ea3 100644 (file)
@@ -1,6 +1,5 @@
-TOP = ../../..
-PROG = cfd
-SRCS = Norm.hs S_Array.hs Defs.hs Quad_def.hs L_matrix.hs C_matrix.hs \
-       S_matrix.hs Jcb_method.hs Chl_method_q.hs TG_iter.hs Gen_net.hs \
-       Data8.hs Main.hs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index a27a8c1..b829568 100644 (file)
@@ -1,5 +1,7 @@
-TOP = ../../..
-PROG = coins
-EXTRA_HCFLAGS = -cpp
-SRCS = ParForce.hs coins.hs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_HC_OPTS += -cpp
+
+include $(TOP)/mk/target.mk
+
index 7905522..b829568 100644 (file)
@@ -1,12 +1,7 @@
-TOP = ../../..
-PROG = dcbm
-EXTRA_HCFLAGS = -cpp
-SRCS = Types.hs Delay.hs DbParallel.hs Fwif.hs Primitives.hc DCBM.hs Main.hs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_HC_OPTS += -cpp
+
+include $(TOP)/mk/target.mk
 
-Primitives.hc : Primitives.lhc
-       $(RM) Primitives.hc
-       lit2pgm Primitives.lhc
-Primitives.hi : Primitives.lhi
-       $(RM) Primitives.hi
-       lit2pgm -o Primitives.hi Primitives.lhi
index bca9fa9..b829568 100644 (file)
@@ -1,5 +1,7 @@
-TOP = ../../..
-PROG = linsolv
-EXTRA_HCFLAGS = -cpp
-SRCS = ModArithm.hs ParForce.hs Matrix-list.hs CRA.hs LinSolv-par.hs Main.hs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_HC_OPTS += -cpp
+
+include $(TOP)/mk/target.mk
+
index e647016..cf44ea3 100644 (file)
@@ -1,3 +1,5 @@
-TOP = ../../..
-PROG = minimax
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index a8fa1eb..6d73ac4 100644 (file)
@@ -1,4 +1,7 @@
-TOP = ../../..
-PROG = par001
-EXTRA_RUNTESTFLAGS = 8400
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_RUNTEST_OPTS += 8400
+
+include $(TOP)/mk/target.mk
+
index 40b6fcb..cf44ea3 100644 (file)
@@ -1,3 +1,5 @@
-TOP = ../../..
-PROG = parfact
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index 3bb0ee2..cf44ea3 100644 (file)
@@ -1,3 +1,5 @@
-TOP = ../../..
-PROG = pfib
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index b8eb7d9..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = prsa
-SRCS = Rsa.hs Main.hs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index 379143d..cf44ea3 100644 (file)
@@ -1,4 +1,5 @@
-TOP = ../../..
-PROG = ray
-SRCS_HS = Main.lhs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index 1145c6f..cf44ea3 100644 (file)
@@ -1,3 +1,5 @@
-TOP = ../../..
-PROG = soda
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index b892172..2c853d4 100644 (file)
@@ -1,7 +1,9 @@
-TOP = ../..
+TOP = ..
+include $(TOP)/mk/boilerplate.mk
 
 SUBDIRS = anna bspt compress compress2 ebnf2ps fem fluid fulsom gamteb gg \
   grep hidden HMMS hpg infer lift maillist mkhprog parser pic prolog \
   reptile rsa symalg veritas
 
-include $(TOP)/nofib/mk/nofib.mk
+include $(TOP)/mk/target.mk
+
index 00bc9fa..73600eb 100644 (file)
@@ -253,7 +253,7 @@ data Domain = Two
             | Lift1 [Domain]
             | Lift2 [Domain]
             | Func  [Domain] Domain
-              deriving (Eq, Ord, Show{-was:Text-})
+              deriving (Eq, Ord, Show, Read)
 
 data Route = Zero
            | One
index 5d7aa5f..f676ff0 100644 (file)
@@ -1,17 +1,9 @@
-TOP = ../../..
-PROG = anna
-SRCS = BaseDefs.hs MyUtils.hs Utils.hs AbstractVals2.hs \
-       SuccsAndPreds2.hs AbstractMisc.hs Dependancy.hs \
-       MakeDomains.hs  Parser2.hs  PrettyPrint.hs  LambdaLift5.hs  \
-       TypeCheck5.hs EtaAbstract.hs  DomainExpr.hs AbsConc3.hs Apply.hs \
-       Inverse.hs BarakiMeet.hs BarakiConc3.hs \
-       Constructors.hs TExpr2DExpr.hs AbstractEval2.hs \
-       PrintResults.hs Simplify.hs SmallerLattice.hs \
-       FrontierMisc2.hs FrontierDATAFN2.hs FrontierGENERIC2.hs \
-       StrictAn6.hs ReadTable.hs Main.hs
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
 
-EXTRA_RUNTESTFLAGS = \
+SRC_RUNTEST_OPTS += \
   -prescript ./anna.prescript -postscript ./anna.postscript \
   -i big.cor -o1 big.sum.out
 
-include $(TOP)/nofib/mk/nofib.mk
+include $(TOP)/mk/target.mk
+
index ae5ede2..b020195 100644 (file)
@@ -22,14 +22,14 @@ pretty x
           = "\n  " ++ show (h+1) ++ " contains " ++ show x
              ++ f (n+x) (h+1) xs
 
-main resps 
-   = [AppendChan stdout banner,
-      ReadChan stdin,
-      mySeq d (AppendChan stdout 
-              ( "\n\n" ++ pretty (map length (amAllUpSlices d))))]
-      where 
-         inText = (\(Str s) -> s) (resps !! 1)
+main
+   = putStr banner     >>
+     getContents       >>= \ inText ->
+     let
          d = first (head (reads inText))
+     in
+     mySeq d (putStr ("\n\n" ++ pretty (map length (amAllUpSlices d))))
+   where 
          banner = concat 
                    [ "\nMonster 0.400r: generates all points in a domain.\n",
                      "Copyright (c) Julian Seward 1992",
index 7c73ddd..cf44ea3 100644 (file)
@@ -1,7 +1,5 @@
-TOP = ../../..
-PROG = bspt
-SRCS = Stdlib.lhs Rationals.lhs Libfuns.lhs Params.lhs  GeomNum.lhs \
-       MGRlib.lhs Euclid.lhs EuclidGMS.lhs BSPT.lhs Init.lhs \
-       Interpret.lhs Input.lhs Merge.lhs Render.lhs Interface.lhs \
-       Prog.lhs Main.lhs       
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index c90aec2..050b236 100644 (file)
@@ -21,6 +21,7 @@
 module Decode (decode)
 where
 
+import Prelude hiding( lookup )                -- lookup defined locally
 import Defaults
 import BinConv
 
index b0791cd..9557407 100644 (file)
@@ -1,3 +1,5 @@
+--     Lzw2.hs looks like an earlier version of Lzw.hs
+
 module Main (main){-export list added by partain-} where {
 
 -- partain: with "ghc -cpp -DSLEAZY_UNBOXING", you get (guess what)?
index 7d1e74c..2839c93 100644 (file)
@@ -1,5 +1,11 @@
-TOP = ../../..
-PROG = compress
-SRCS = Defaults.hs BinConv.hs PTTrees.hs Encode.hs Main.hs
-EXTRA_RUNTESTFLAGS = -i ../../spectral/hartel/listcompr/listcompr.stdout
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRCS = BinConv.hs BinTest.hs Decode.hs Defaults.hs Encode.hs Main.hs PTTrees.hs Uncompress.hs
+
+Lzw_HC_OPTS = -cpp
+
+SRC_RUNTEST_OPTS += -i ../../spectral/hartel/listcompr/listcompr.stdout
+
+include $(TOP)/mk/target.mk
+
index 3da9f1a..5b09e19 100644 (file)
@@ -1,6 +1,9 @@
 module Encode (CodeEvent(..), encode, maxBits)
 where
 
+import GHC
+import IOBase (trace) -- TEMP
+
 data PrefixTrie a b = PTNil |
                       PT a b (PrefixTrie a b) (PrefixTrie a b) (PrefixTrie a b)
 
@@ -95,6 +98,7 @@ build_table lo hi
      = if lo > hi then
            PTNil
        else let mid = (lo + hi) `div` 2 in
+             trace (show (lo,hi,mid))
               PT (toEnum mid) mid PTNil
                    (build_table lo (mid - 1))
                    (build_table (mid + 1) hi)
index 15c42d8..fb9d7ee 100644 (file)
@@ -1,6 +1,8 @@
-TOP = ../../..
-PROG = compress2
-SRCS = Encode.hs WriteRoutines.hs Main.hs
-EXTRA_HCFLAGS = -fglasgow-exts
-EXTRA_RUNTESTFLAGS = -i ../../spectral/hartel/listcompr/listcompr.stdout
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_HC_OPTS += -fglasgow-exts
+SRC_RUNTEST_OPTS += -i ../../spectral/hartel/listcompr/listcompr.stdout
+
+include $(TOP)/mk/target.mk
+
index 7ede24c..b24f2b5 100644 (file)
@@ -1,7 +1,9 @@
 module WriteRoutines (outputCodes)
 where
 
+import PrelBase
 import Encode (CodeEvent(..))
+import IOBase -- TEMP
 
 -- Start of code added for ghc
 w2i x = word2Int# x
@@ -14,7 +16,7 @@ intRsh (I# x) (I# y) = I# (w2i (shiftRL# (i2w x) y))
 -- End of code added for ghc
 
 outputCodes :: [CodeEvent] -> (String, [Int])
-outputCodes cs = (map toEnum (fst result), snd result)
+outputCodes cs = (map (\x -> trace (show x) (toEnum x)) (fst result), snd result)
                where result = output 9 8 0 0 cs       -- assume 9 bit start
 
 output :: Int -> Int -> Int -> Int -> [CodeEvent] -> ([Int], [Int])
index 5a7d2ba..e12162b 100644 (file)
@@ -1,6 +1,9 @@
 --------------------------------------------------------------------------------
 -- Copyright 1994 by Peter Thiemann
 -- $Log: Fonts.hs,v $
+-- Revision 1.3  1997/03/14 08:08:05  simonpj
+-- Major update to more-or-less 2.02
+--
 -- Revision 1.2  1996/07/25 21:23:54  partain
 -- Bulk of final changes for 2.01
 --
@@ -30,7 +33,6 @@ readInt radix isDig digToInt s =
     [(foldl1 (\n d -> n * radix + d) (map (fromInt . digToInt) ds), r)
        | (ds,r) <- nonnull isDig s ]
 
-ord = (fromEnum :: Char -> Int)
 ord_0 :: Num a => a
 ord_0 = fromInt (ord '0')
 
index 23d8e56..3239bb3 100644 (file)
@@ -10,6 +10,9 @@
 -- 
 -- $Locker:  $
 -- $Log: GrammarTransform.hs,v $
+-- Revision 1.2  1997/03/14 08:08:06  simonpj
+-- Major update to more-or-less 2.02
+--
 -- Revision 1.1  1996/01/08 20:02:35  partain
 -- Initial revision
 --
@@ -22,6 +25,7 @@ module GrammarTransform (simplify) where
 
 import AbstractSyntax
 
+simplify :: [Production] -> [Production]
 simplify = map simplify' . simp3
 
 -- simp1 gets the body of a ProdFactor as an argument
index 4177b59..9af5ad7 100644 (file)
@@ -2,6 +2,9 @@
 
 $Locker:  $
 $Log: HappyParser.ly,v $
+Revision 1.3  1997/03/14 08:08:08  simonpj
+Major update to more-or-less 2.02
+
 Revision 1.2  1996/07/25 21:23:57  partain
 Bulk of final changes for 2.01
 
@@ -15,6 +18,7 @@ A happy specification for the happy input language.
 > module HappyParser (theHappyParser) where
 > import AbstractSyntax
 > import Lexer
+> import PrelBase
 > }
 
 > %name localHappyParser
index 802d6d4..3f5b0ee 100644 (file)
@@ -9,6 +9,9 @@
 -- Status          : Unknown, Use with caution!
 -- 
 -- $Log: IOSupplement.hs,v $
+-- Revision 1.3  1997/03/14 08:08:09  simonpj
+-- Major update to more-or-less 2.02
+--
 -- Revision 1.2  1996/07/25 21:23:58  partain
 -- Bulk of final changes for 2.01
 --
 -- $Locker:  $
 --
 
-module IOSupplement (PathCont (..), getPath, readPathFile)
+module IOSupplement (PathCont, getPath, readPathFile)
 where
 
+import System -- 1.3
+import IOBase ( IOError (..) )
 --------------------------------------------------------------------------------
 
 type PathCont = [String] -> IO ()
+type FailCont = IOError -> IO ()
+type StrCont  = String -> IO ()
 
 getPath :: String -> [String] -> PathCont -> IO ()
 --
@@ -37,8 +44,10 @@ getPath :: String -> [String] -> PathCont -> IO ()
 -- and calls the continuation (::PathCont) with the resulting search path
 --
 getPath envVar dflt cont =
-       getEnv envVar   (\_ -> cont dflt)
-                       (\path -> cont (manglePath path dflt))
+  (do {path <- getEnv envVar; cont (manglePath path dflt)})
+    `catch` 
+       (\ (NoSuchThing _) -> cont dflt)
+   
 
 -- mangle a colon separated pathstring with a default path
 
@@ -58,14 +67,19 @@ readPathFile :: [String] -> String -> FailCont -> StrCont -> IO ()
 -- scan searchPath for fileName and read it
 -- unless fileName starts with '.' or is absolute (starts with '/')
 --
-readPathFile _  fileName@('/':_) fc sc = readFile fileName fc sc
-readPathFile _  fileName@('.':_) fc sc = readFile fileName fc sc
+readPathFile _  fileName@('/':_) fc sc = myreadFile fileName fc sc
+readPathFile _  fileName@('.':_) fc sc = myreadFile fileName fc sc
 readPathFile [] fileName fc sc =
-       fc (SearchError ("readPathFile failed on :" ++ fileName))
+       fc (userError ("readPathFile failed on :" ++ fileName))
 readPathFile (path: paths) fileName fc sc =
 --     appendChan stderr ("Trying path "++fullName++"...\n") exit
-       (readFile fullName failCont sc)
+       (myreadFile fullName failCont sc)
     where
        fullName   = path ++ '/': fileName
        failCont _ = readPathFile paths fileName fc sc
 
+
+myreadFile :: String -> FailCont -> StrCont -> IO ()
+myreadFile filename fc sc
+  = catch (readFile filename   >>= \ cts -> sc cts)
+         fc
index 55b76c4..27e2d63 100644 (file)
@@ -9,6 +9,9 @@
 -- Status          : Unknown, Use with caution!
 -- 
 -- $Log: Main.hs,v $
+-- Revision 1.3  1997/03/14 08:08:10  simonpj
+-- Major update to more-or-less 2.02
+--
 -- Revision 1.2  1996/07/25 21:24:02  partain
 -- Bulk of final changes for 2.01
 --
@@ -117,7 +120,7 @@ program
                    _ -> appendChan stderr ("Could not parse "++bnfName++"\n") exit done))))
              in
                getPath "RGBPATH" rgbPathDefault (\rgbPath ->
-               readPathFile rgbPath rgbFileName fc sc))))
+               readPathFile rgbPath rgbFileName fc sc)
     where
        afmPathDefault      = ["/usr/local/tex/Adobe", "/usr/local/tex/lib/TeXPS/afm", "."]
        ebnfInputDefault    = ["."]
index 79ade59..c66cefa 100644 (file)
@@ -1,16 +1,8 @@
-TOP = ../../..
-PROG = ebnf2ps
-SRCS = Parsers.hs StringMatch.hs Color.hs Fonts.hs Info.hs IOSupplement.hs \
-       EbnfGrammar.hs EbnfLayout.hs PsOutput.hs FigOutput.hs \
-       CommandLine.hs AbstractSyntax.hs Lexer.hs HappyParser.hs \
-       GrammarTransform.hs Main.hs
-EXTRA_RUNTESTFLAGS = ebnf2ps.stdin apat -o1 ebnf2ps.stdout
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
 
-HappyParser.hs : HappyParser.ly
-       $(RM) HappyParser.hs
-       happy HappyParser.ly
-       @chmod 444 HappyParser.hs
+SRC_HC_OPTS += -fglasgow-exts
+SRC_RUNTEST_OPTS += ebnf2ps.stdin apat -o1 ebnf2ps.stdout
+
+include $(TOP)/mk/target.mk
 
-clean ::
-       $(RM) HappyParser.hs
index 0e145f2..b4a28cc 100644 (file)
@@ -31,7 +31,7 @@ assemble  s till_now_d ii =
        till_now_d ++ d_this'
        where
        d_this' = filter valid_degree (azip degrees loads)
-       valid_degree (dgr := x) = (dgr /=0)
+       valid_degree (dgr , x) = (dgr /=0)
        degrees = getndgr s node
        loads   = [px,py,m]
        (node,px,py,m) = getpld s ii
index 734de28..41a91e6 100644 (file)
@@ -35,7 +35,7 @@ index_value_assoc s =
 assemble s till_now_dd element =
        (till_now_dd++dd_this')
        where
-       dd_this' = [ (  (f i, f j) :=  x i j) 
+       dd_this' = [ (  (f i, f j) ,  x i j) 
                      | i <- [0..n-1], j <- [0..i], f i > 0 , f j > 0 ]
        dgrs_list = (dgrs_list_node nodel) ++ (dgrs_list_node noder)
        (nodel,noder) = getenlr s element
index 0343d5a..0df9b76 100644 (file)
@@ -8,7 +8,9 @@
 -- **********************************************************************
 
 
-module Basics(showrj,showlj, azip) where
+module Basics(showrj,showlj, azip, module Array) where
+
+import Array
 
 
 showlj, showrj :: (Show a) => Int -> a -> [Char]
index 175e2bf..cf44ea3 100644 (file)
@@ -1,7 +1,5 @@
-TOP = ../../..
-PROG = fem
-SRCS = Basics.hs Vector.hs Matrix.hs VBmatrix.hs VBlldecomp.hs \
-       Database.hs DB_interface.hs Degrees.hs Assemble_loadvec.hs \
-       Pre_assemble.hs Elemstif.hs Assemble_stiffness.hs Displacement.hs \
-       Elemforce.hs PrintSource.hs Printuvwforce.hs Main.hs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index 23b8fb4..a292b36 100644 (file)
@@ -1,8 +1,7 @@
-TOP = ../../..
-PROG = fluid
-SRCS = Norm.hs S_Array.hs Defs.hs Input_proc.hs Elefac.hs S_matrix.hs \
-       Asb_routs.hs C_matrix.hs L_matrix.hs Rhs_Asb_routs.hs Min_degree.hs \
-       Chl_routs.hs Chl_decomp.hs Chl_method.hs Tol_cal.hs Jcb_method.hs \
-       TG_iter.hs Main.hs
-EXTRA_RUNTESTFLAGS = -o1 fluid.stdout2 -o1 fluid.stdout3
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_RUNTEST_OPTS += -o1 fluid.stdout2 -o1 fluid.stdout3
+
+include $(TOP)/mk/target.mk
+
index 51be65a..7299619 100644 (file)
@@ -3,4 +3,4 @@ at time step 1:
 presure:
 array (1, 9) [(1, 254.275986), (2, 146.859833), (3, 29.3719501), (4, 5.33778925e-19), (5, 147.867920), (6, 256.627045), (7, 245.063141), (8, 151.086060), (9, 30.1388226)]
 velocities:
-(array (1, 25) [(1, 0.00000000), (2, 0.00000000), (3, 0.00000000), (4, 8.45814648e-5), (5, 4.18556631e-2), (6, 1.00000000), (7, 0.00000000), (8, 0.00000000), (9, 0.00000000), (10, 0.00000000), (11, 0.00000000), (12, (-1.43315847e-4)), (13, 7.52088726e-1), (14, 6.55899644e-1), (15, 6.40071869e-1), (16, 7.50000000e-1), (17, 6.11031651e-1), (18, 7.92150795e-1), (19, (-3.36420781e-4)), (20, 7.70331144e-1), (21, 5.89795530e-1), (22, 6.02087021e-1), (23, 7.50000000e-1), (24, 0.00000000), (25, 0.00000000)]), (array (1, 25) [(1, 0.00000000), (2, 0.00000000), (3, 0.00000000), (4, 0.00000000), (5, 8.99745710e-3), (6, 0.00000000), (7, 0.00000000), (8, 0.00000000), (9, 0.00000000), (10, 0.00000000), (11, 0.00000000), (12, 0.00000000), (13, 2.08595127e-1), (14, (-1.04159294e-2)), (15, (-1.87288057e-2)), (16, 0.00000000), (17, (-3.68248820e-2)), (18, (-2.06522793e-1)), (19, 0.00000000), (20, (-2.05566093e-1)), (21, (-2.75560264e-2)), (22, 6.25434443e-2), (23, 0.00000000), (24, 0.00000000), (25, 0.00000000)])
+(array (1, 25) [(1, 0.00000000), (2, 0.00000000), (3, 0.00000000), (4, 8.45814648e-5), (5, 4.18556631e-2), (6, 1.00000000), (7, 0.00000000), (8, 0.00000000), (9, 0.00000000), (10, 0.00000000), (11, 0.00000000), (12, -1.43315847e-4), (13, 7.52088726e-1), (14, 6.55899644e-1), (15, 6.40071869e-1), (16, 7.50000000e-1), (17, 6.11031651e-1), (18, 7.92150795e-1), (19, -3.36420781e-4), (20, 7.70331144e-1), (21, 5.89795530e-1), (22, 6.02087021e-1), (23, 7.50000000e-1), (24, 0.00000000), (25, 0.00000000)], array (1, 25) [(1, 0.00000000), (2, 0.00000000), (3, 0.00000000), (4, 0.00000000), (5, 8.99745710e-3), (6, 0.00000000), (7, 0.00000000), (8, 0.00000000), (9, 0.00000000), (10, 0.00000000), (11, 0.00000000), (12, 0.00000000), (13, 2.08595127e-1), (14, -1.04159294e-2), (15, -1.87288057e-2), (16, 0.00000000), (17, -3.68248820e-2), (18, -2.06522793e-1), (19, 0.00000000), (20, -2.05566093e-1), (21, -2.75560264e-2), (22, 6.25434443e-2), (23, 0.00000000), (24, 0.00000000), (25, 0.00000000)])
index e604f88..b95c8cc 100644 (file)
@@ -32,7 +32,7 @@ import Matrix
 
 -- This is a test module
 
-main x = [AppendChan stdout blah]
+main = print blah
 
 -- blah = go 5 plane  -- do a profile plot on this...
 -- blah = go 5 (Geom g (RotY 0.1))
index 4a6fbd9..79efd9c 100644 (file)
@@ -1,6 +1,7 @@
-TOP = ../../..
-PROG = fulsom
-SRCS = Interval.hs Types.hs Matrix.hs Csg.hs Kolor.hs Vector.hs \
-       Oct.hs Quad.hs Raster.hs Shapes.hs Patchlevel.hs Fulsom.hs
-EXTRA_RUNTESTFLAGS = 7
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_RUNTEST_OPTS += 7
+
+include $(TOP)/mk/target.mk
+
index be9f62f..cf44ea3 100644 (file)
@@ -1,6 +1,5 @@
-TOP = ../../..
-PROG = gamteb
-SRCS = Consts.hs GamtebType.hs Distance.hs InitTable.hs Utils.hs Pair.hs \
-       PhotoElec.hs RoulSplit.hs Compton.hs TransPort.hs Output.hs \
-       GamtebMain.hs Main.hs
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index 8f814bb..bbe7b51 100644 (file)
@@ -1 +1 @@
-Enter the scale of computation: 
\ No newline at end of file
+Enter the scale of computation: 
index 3bbad66..cf44ea3 100644 (file)
@@ -1,5 +1,5 @@
-TOP = ../../..
-PROG = gg
-SRCS = StdLib.hs Parse.hs PSlib.hs GRIP.hs Graph.hs Pool.hs \
-       Spark.hs Activity.hs Main.hs 
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+-include opts.mk
+include $(TOP)/mk/target.mk
+
index e0603ea..7cfecb5 100644 (file)
@@ -1,5 +1,7 @@
-TOP = ../../..
-PROG = grep
-SRCS = Parsers.hs StringMatch.hs Main.lhs
-EXTRA_RUNTESTFLAGS = grep.stdin apat
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_RUNTEST_OPTS += grep.stdin apat
+
+include $(TOP)/mk/target.mk
+
index 1e7cd48..9c67a62 100644 (file)
@@ -6,6 +6,8 @@ import Geometric
 import Comparing
 import Memo
 import Postscript
+import Array    -- 1.3
+import ArrBase  -- 1.3
 
 -- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 -- section 5: Hiding
index ae0ebcb..a50cdc6 100644 (file)
@@ -1,11 +1,15 @@
-module Main where
+module Main(main) where
 import Numbers
 import Vectors
 import Hide
 import MyIO
-import EdgePlate       ( Input(..) ) -- partain
+import EdgePlate       ( Input(..) )  -- partain
 import Postscript      ( Output(..) ) -- partain
+import IOHandle -- 1.3
+import IO       -- 1.3
 
-main = readChan stdin abort
-               (getFilename (process (\viewdir -> hiddenline viewdir. map read. lines)) .
-                lines)
+main = 
+  do
+   ls <- hGetContents stdin
+   (getFilename $
+      process (\viewdir -> hiddenline viewdir. map read. lines)) (lines ls)
index 024264e..0456d7d 100644 (file)
@@ -1,7 +1,10 @@
-TOP = ../../..
-PROG = hidden
-SRCS = Numbers.hs Vectors.hs EdgePlate.hs Matrices.hs Rotate.lhs \
-       Geometric.hs MyIO.hs Solve.hs Postscript.hs Preds.hs Cross.hs \
-       Comparing.hs Memo.hs Hide.hs Main.hs
-EXTRA_RUNTESTFLAGS = -o1 hidden.stdout2 -o1 hidden.stdout3 objects/four.plate
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+OBJS=$(patsubst %.hs,%.o, $(patsubst %.lhs,%.o,$(wildcard *.hs *.lhs)))
+
+SRC_RUNTEST_OPTS += +RTS -K1m -RTS
+SRC_RUNTEST_OPTS += -o1 hidden.stdout2 -o1 hidden.stdout3 objects/four.plate
+
+include $(TOP)/mk/target.mk
+
index db11f18..157f1c8 100644 (file)
@@ -3,8 +3,10 @@ import Numbers
 import Vectors
 import EdgePlate
 import Comparing(above)
+import Ix
+import Array
 
-data Triangle a = a :^ a deriving (Eq,Ord)
+data Triangle a = a :^ a deriving (Eq,Ord, {-1.3-}Show)
 
 instance (Enum a,Ix a) => Ix (Triangle a) where
        range (t0 :^ b0 , t1 :^ b1) =
@@ -21,7 +23,7 @@ instance (Enum a,Ix a) => Ix (Triangle a) where
 
 mkmemo :: (Plate -> Plate -> a) -> Object -> Array (Triangle Int) a
 mkmemo f obj =
-       array (2:^1 , len:^(len-1)) [(top:^bottom) := f ls ks
+       array (2:^1 , len:^(len-1)) [((top:^bottom) , f ls ks)
                                    |ls@(Plt top _) <- obj
                                    ,ks@(Plt bottom _) <- obj
                                    ,top > bottom]
index b790346..03ac38c 100644 (file)
@@ -4,7 +4,7 @@ import Vectors
 import IO--1.3
 import System(getArgs)--1.3
 
-type InputCont = String -> IO ()
+type InputCont = [String] -> IO ()
 
 getFilename :: (String -> InputCont) -> InputCont
 getFilename success inp = 
@@ -33,24 +33,25 @@ usage = hPutStr stderr "Usage: hiddenline [filename of object]\n"
 
 
 getDirection,getit :: (Vector -> InputCont) -> InputCont
-getDirection success =
+getDirection success inp =
        hPutStr stderr ("Give a view direction in the form of: x,y,z\n"++
                           "or 'quit' to stop\n") >>
-       getit success
+       getit success inp
 
-getit success [] = return ()
+getit success          [] = return ()
 getit success ("quit":ls) = return ()
-getit success (l:ls) =
      case  reads ("vec ["++l++"]") of
-               [(v,_)] -> success v ls
-               _ -> hPutStr stderr "again: " >> (getit success ls)
+getit success      (l:ls) =
case reads ("vec ["++l++"]") of
+  [(v,_)] -> success v ls
+  _       -> hPutStr stderr "again: " >> getit success ls
 
 
 process :: (Vector -> String -> String) -> String -> InputCont
 process f filename =
-       getDirection (\viewdir ->
-                       readFile filename >>= \ cs ->
-                       printFrom viewdir (process f filename) cs
+       getDirection 
+                (\ viewdir ls ->
+                  readFile filename >>= \ cs ->
+                  printFrom viewdir (process f filename) cs ls
                )
-       where printFrom viewdir cont cs =
-               putStr (f viewdir cs) >> cont
+       where printFrom viewdir cont cs ls =
+               putStr (f viewdir cs) >> cont ls
index 04cb00e..e283e8f 100644 (file)
@@ -1,4 +1,4 @@
-module Postscript(Output(..),draw)where
+module Postscript(Outputdraw)where
 import Numbers
 import Vectors
 import EdgePlate
index 52d5348..2eb5787 100644 (file)
@@ -23,11 +23,11 @@ The interface is as follows:
 \begin{haskell}
 
 > module Env (
->     Cont(..), Ncont(..), Econt(..), Vcont(..), Xcont(..), Xscont(..),
->     Answer(..),
+>     Cont, Ncont, Econt, Vcont, Xcont, Xscont,
+>     Answer,
 >     Env, make_Env,
 >     upto, choose, choosew,
->     Output(..), default_output,
+>     Output, default_output,
 >     get_constructors, get_val_names, get_type_names, get_all_type_names,
 >     get_all_type_decls, get_all_val_decls, get_all_lambdas, get_type,
 >     get_output,
@@ -36,6 +36,7 @@ The interface is as follows:
 
 > import Config
 > import Types
+> import IO -- 1.3
 
 \end{haskell}
 
@@ -72,7 +73,7 @@ As the Haskell Program Generator produces output, its result must be of
 type \prog{Dialogue}, so \prog{Answer} is just a type synonym:
 \begin{haskell}
 
-> type Answer    =  Dialogue
+> type Answer    =  IO () --Dialogue
 
 \end{haskell}
 
@@ -122,7 +123,7 @@ will not occur.
  
 > upto :: Int -> Ncont -> Cont
 > upto n nc (MkEnv (r:rs) cs ts vs te ve le op)
->     =  nc x (MkEnv rs cs ts vs te ve le op)
+>     =  hPutStr stderr (show x ++ " ") >> nc x (MkEnv rs cs ts vs te ve le op)
 > --  =  appendChan stderr (show x ++ " ") exit ((nc x) (MkEnv rs cs ts vs te ve le op))
 >        where
 >        x :: Int
@@ -205,14 +206,15 @@ The output stream is carried as part of the environment as an element of
 type \prog{Output}, defined as:
 \begin{haskell}
 
-> type Output  =  String -> FailCont -> SuccCont -> Dialogue
+> --type Output  =  String -> FailCont -> SuccCont -> Dialogue
+> type Output  =  String -> IO ()
 
 \end{haskell}
 The default value is:
 \begin{haskell}
 
 > default_output :: Output
-> default_output  =  appendChan stdout
+> default_output  str =  putStr str
 
 \end{haskell}
 
index a812f9c..4080aa6 100644 (file)
@@ -425,6 +425,8 @@ to the association values comprising the array, and then reassembles
 them to form the array.
 \begin{haskell}
 
+> type Assoc a b = (a,b)
+>
 > gen_array_exp :: Genfn ((Value,Value), [Assoc Value Value])
 > gen_array_exp dp ((v,v'), avs) ec
 >     =  gen_exp (dp-one) (Tuple_val [v,v'])
index e2168d8..a59e530 100644 (file)
@@ -21,16 +21,20 @@ This module gathers the others together to generate and print the program.
 > import GenType
 > import GenVal
 > import GenExp
+> import System -- 1.3 
+> import IO     -- 1.3
 
 \end{haskell}
 
 \prog{main} is the name of the main \HPG\ function.
 The Haskell report requires that the entry point to the program executable
-is called \prog{main} and is of type \prog{Dialogue}.
+is called \prog{main} and is of type \prog{IO ()e}.
 \begin{haskell}
 
-> main :: Dialogue
-> main  =  getArgs exit (parse_args defaultArgs . unlines)
+> main :: IO ()
+> main  =  do
+>   argv <- getArgs
+>   parse_args defaultArgs (unlines argv)
 
 \end{haskell}
 
@@ -68,7 +72,7 @@ It is edited from output produced by \prog{mkhprog}, a command line parser
 generator (see~\cite{north} for further details).
 \begin{haskell}
 
-> parse_args :: Args -> String -> Dialogue
+> parse_args :: Args -> String -> IO ()
 > parse_args (MkArgs x1 x2 x3 x4 x5 x6 x7 x8) ('-':'s':rest)
 >     =  readval reads
 >        (\val -> parse_args (MkArgs val x2 x3 x4 x5 x6 x7 x8)) rest
@@ -186,7 +190,7 @@ further details).
 \prog{readstring} reads a string from the command line.
 \begin{haskell}
 
-> readstring :: (String -> String -> Dialogue) -> String -> Dialogue
+> readstring :: (String -> String -> IO ()) -> String -> IO ()
 > readstring f ""  =  f "" ""
 > readstring f cs@(c:cs')
 >     =  f s t
@@ -202,8 +206,8 @@ It is used for reading integers and the random number generator seed
 values.
 \begin{haskell}
 
-> readval :: (Read a) => ReadS a -> (a -> String -> Dialogue) -> String
->                        -> Dialogue
+> readval :: (Read a) => ReadS a -> (a -> String -> IO ()) -> String
+>                        -> IO ()
 > readval readsfn f str
 >     =  case thing of
 >            []    -> usage defaultArgs
@@ -218,9 +222,9 @@ values.
 It prints a message giving a template for usage of \prog{hpg}.
 \begin{haskell}
 
-> usage :: Args -> Dialogue
+> usage :: Args -> IO ()
 > usage (MkArgs s nt dt nv dv de mn _)
->     =  appendChan stderr
+>     =  hPutStr stderr
 >        ("Usage: hpg [-s (Int,Int,Int)] [-nt Int] [-dt Int] \
 >                    \[-nv Int] [-dv Int] [-de Int] [-m String] [-o String]\n\
 >         \    -s   random number generator seeds (default " ++ show s ++ ")\n\
@@ -231,6 +235,5 @@ It prints a message giving a template for usage of \prog{hpg}.
 >         \    -de  depth of expressions to be generated (" ++ show de ++ ")\n\
 >         \    -m   output module name (" ++ mn ++ ")\n\
 >         \    -o   output file name (stdout)\n")
->        exit done
 
 \end{haskell}
index ce7816d..2318a4c 100644 (file)
@@ -1,6 +1,7 @@
-TOP = ../../..
-PROG = hpg
-SRCS = Config.lhs Types.lhs Env.lhs Utils.lhs GenVal.lhs \
-       GenExp.lhs GenType.lhs Main.lhs 
-EXTRA_RUNTESTFLAGS = -RTS -nt 8 -dt 6 -nv 15 -dv 8 -de 8
-include $(TOP)/nofib/mk/nofib.mk
+TOP = ../..
+include $(TOP)/mk/boilerplate.mk
+
+SRC_RUNTEST_OPTS += -RTS -nt 8 -dt 6 -nv 15 -dv 8 -de 8
+
+include $(TOP)/mk/target.mk
+
index 7028cfc..6bfe20c 100644 (file)
@@ -13,6 +13,7 @@ This module contains useful utility functions needed throughout the \HPG.
 >     cmap, rep, print_str, split_str, finish
 >     ) where
 
+> import Char
 > import Config
 > import Types
 > import Env
@@ -58,7 +59,7 @@ then executes its continuation, \prog{c}.
 \begin{haskell}
 
 > print_str :: String -> Cont -> Cont
-> print_str s c  =  get_output (\op -> op s exit . c)
+> print_str s c  =  get_output (\ op e -> op s >> c e)
 
 \end{haskell}
 
@@ -89,6 +90,6 @@ line characters in \prog{s}.
 \begin{haskell}
 
 > finish :: Cont
-> finish e  =  done
+> finish e  = return ()
 
 \end{haskell}
index bc2765c..3146350 100644 (file)
@@ -1 +1 @@
-2 3 4 1 3 0 1 0 2 0 2 3 4 2 0 5 1 2 4 0 1 1 0 3 1 0 2 4 1 0 0 2 4 0 2 0 3 0 3 2 4 1 4 1 1 0 2 1 0 0 2 0 1 4 1 4 0 2 0 0 1 1 1 0 0 1 1 0 0 5 4 0 2 3 0 0 1 3 3 0 1 3 2 4 1 1 0 0 1 1 2 3 2 4 1 2 1 2 0 1 2 2 0 3 1 0 3 5 3 3 3 1 0 1 3 4 0 1 1 2 1 1 0 1 1 1 0 5 4 0 0 1 4 0 2 2 2 4 1 0 2 4 1 2 1 1 4 0 0 0 2 0 4 4 0 2 0 0 1 2 1 2 4 0 6 3 4 0 2 4 0 0 0 0 2 4 1 3 1 3 1 2 1 1 1 0 1 1 2 0 0 1 1 2 1 3 2 2 0 1 0 2 1 0 1 0 3 4 1 3 0 0 0 1 0 0 2 4 1 3 0 2 0 2 1 3 0 1 1 2 1 2 1 4 1 1 2 1 3 3 4 1 0 1 1 1 0 3 3 4 0 5 0 5 1 1 4 1 0 3 3 2 4 1 4 0 0 1 0 2 1 2 1 3 2 1 1 0 1 1 4 1 0 1 2 2 0 1 0 0 1 1 0 2 2 0 5 2 4 1 3 1 4 2 1 2 1 0 2 1 4 2 0 1 0 1 1 4 0 2 0 2 1 2 4 1 0 3 4 0 1 1 0 3 1 1 0 0 2 0 3 4 0 0 0 2 0 1 3 4 4 0 1 4 1 0 4 0 1 1 1 0 0 0 6 1 2 4 1 0 2 4 0 1 0 0 3 2 3 0 0 2 4 3 4 3 3 1 2 3 1 0 2 2 4 1 3 0 0 1 0 0 1 1 4 1 0 4 0 0 1 2 1 1 3 0 2 2 2 4 2 1 3 3 3 0 0 0 0 6 4 0 0 0 2 2 4 1 1 1 3 4 0 1 2 1 1 3 4 0 4 4 1 0 3 0 3 1 4 1 1 0 2 2 3 3 0 2 2 0 2 0 7 0 3 2 1 1 3 0 4 1 1 3 0 2 1 2 0 6 4 2 4 1 2 1 0 0 1 3 1 1 0 0 2 0 5 2 2 2 3 4 1 2 0 1 1 1 0 4 1 1 3 3 0 0 2 4 0 0 0 1 0 3 4 1 3 0 1 0 2 0 2 1 2 4 4 0 1 4 0 2 4 0 1 2 1 0 1 1 0 2 4 0 2 0 5 2 0 2 2 3 4 2 4 1 1 1 3 0 1 0 0 2 1 0 1 0 0 3 2 4 1 1 0 0 0 3 3 2 0 3 0 4 3 0 0 3 0 6 3 2 2 2 2 4 1 2 4 1 3 1 3 1 2 2 2 0 2 1 2 0 0 2 1 1 0 2 0 2 1 0 0 5 1 2 3 1 2 2 4 1 2 1 0 3 4 4 1 4 0 1 0 2 1 4 0 1 0 1 1 3 0 2 0 0 0 1 0 1 0 0 0 0 1 1 2 3 0 4 0 1 4 0 2 4 0 0 0 2 3 3 0 1 0 3 2 1 0 3 2 4 1 0 1 1 0 1 0 5 0 3 0 0 1 1 91 97 1 113 79 1 4 5 5 0 1 103 98 1 99 103 1 0 41 105 4 19 1 0 3 3 215 176 4 0 68 1 31 2 4 1 115 4 54 20 233 226 2 108 216 5 29 246 231 32 160 144 104 1 2 3 2 246 0 2 1 0 203 0 1 0 22 42 1 99 37 4 1 58 41 0 1 3 29 193 2 113 101 102 0 121 1 124 4 5 0 5 121 94 83 168 232 3 242 12 235 4 203 216 205 4 0 136 94 0 0 112 3 1 1 0 1 1 79 72 1 92 97 1 4 53 35 202 17 158 67 0 99 197 144 2 79 223 4 52 45 123 10 9 221 4 118 20 212 86 249 60 3 47 170 79 61 6 10 3 73 68 0 3 2 151 114 2 1 0 0 2 1 0 2 0 0 0 2 0 1 1 256 54 116 3 3 1 0 0 3 107 5 3 0 1 1 0 0 0 2 1 1 101 3 3 1 1 2 90 0 1 4 0 1 0 0 0 1 1 1 5 0 1 5 83 1 18 1 47 0 26 0 114 0 2 2 65 1 30 1 4 61 1 99 1 30 1 60 1 0 4 0 5 127 0 60 1 54 1 98 1 15 0 2 42 0 75 0 4 103 0 44 0 103 0 33 1 1 1 1 0 2 0 5 97 100 11 50 77 2 1 1 1 118 36 2 148 14 39 2 1 3 4 0 2 24 1 38 67 3 5 3 5 2 61 74 0 13 7 2 0 0 20 137 43 83 155 106 1 1 77 59 124 121 181 111 0 2 98 8 3 0 1 3 126 4 5 0 0 0 1 0 3 0 0 0 1 0 2 1 1 0 120 121 4 29 1 219 77 88 1 0 1 69 207 76 182 32 78 0 0 0 6 146 18 1 1 124 1 15 0 127 47 11 157 1 8 0 36 1 25 41 26 155 0 2 3 2 92 101 5 1 3 144 1 14 4 4 1 0 0 2 0 1 4 0 1 0 0 1 0 6 1 2 4 109 143 3 238 139 194 165 201 188 1 89 234 4 146 244 210 12 30 216 181 0 1 54 10 0 58 9 0 4 2 51 5 5 2 93 0 3 64 0 4 74 0 2 216 0 2 221 0 1 145 1 252 17 0 183 2 2 72 179 0 3 1 0 1 3 2 1 56 75 0 0 4 111 102 1 77 46 0 103 119 4 1 1 0 0 1 72 96 4 1 0 0 1 1 4 0 2 126 54 1 109 64 3 0 2 110 127 0 0 45 122 3 0 1 0 0 3 3 67 49 1 89 120 1 0 1 49 13 3 2 80 101 1 1 1 80 46 0 4 89 13 2 72 44 4 70 73 3 0 1 1 1 40 61 1 0 0 1 1 22 52 1 118 107 3 0 86 0 1 4 55 5 1 0 1 0 0 0 0 43 0 0 4 230 18 0 45 1 1 1 62 54 2 3 3 0 0 1 193 1 0 0 19 1 1 1 136 5 5 5 1 118 0 2 3 1 51 0 2 57 1 125 0 0 2 73 0 52 0 5 2 107 0 62 1 2 99 1 11 1 1 63 1 4 23 1 115 1 103 0 109 1 5 41 1 2 0 50 1 36 1 127 0 4 5 28 0 112 1 110 0 36 0 3 1 1 45 0 4 25 1 56 0 5 0 85 0 1 59 0 2 5 120 0 61 1 19 0 100 1 35 0 4 14 0 110 1 81 1 35 0 3 4 111 0 94 1 44 0 47 1 5 103 0 28 0 0 0 45 0 56 1 5 31 0 74 1 47 0 120 0 19 0 0 2 0 3 89 11 103 85 1 1 1 35 76 4 2 49 0 194 35 0 114 65 0 116 62 1 0 110 114 4 1 0 1 1 1 1 2 198 111 1 1 4 5 0 0 0 115 126 1 0 1 0 3 117 85 0 1 243 20 0 0 0 1 3 0 1 2 1 0 4 39 59 0 0 13 50 1 1 2 0 1 0 0 0 2 88 14 1 1 1 1 0 1 50 94 0 1 185 109 1 0 3 0 0 2 83 94 1 1 1 0 2 18 78 0 0 190 86 1 0 1 0 4 25 66 0 0 150 77 1 1 0 3 1 1 1 2 252 118 0 0 3 0 1 2 0 0 2 0 55 0 1 1 1 1 42 45 1 0 3 0 0 2 78 80 0 1 0 0 1 181 11 1 1 0 0 4 121 125 1 0 0 2 113 115 3 4 93 118 213 156 115 32 21 98 90 79 52 28 4 222 81 198 176 40 52 26 78 143 104 15 151 5 163 124 197 100 124 93 127 52 220 33 68 208 114 33 228 0 0 2 0 1 0 57 7 1 79 41 4 0 4 3 3 109 22 7 171 165 60 4 160 1 188 207 76 97 201 84 158 166 73 0 66 181 81 111 85 8 1 2 36 113 0 5 222 67 24 179 179 0 3 2 244 221 40 70 51 62 0 108 38 84 248 254 5 1 239 11 0 1 3 4 0 0 2 28 0 0 3 23 0 0 1 43 1 0 3 90 116 1 1 1 3 12 3 0 1 3 1 0 2 20 77 0 0 3 0 50 51 16 214 86 6 45 57 26 40 140 16 11 63 2 3 5 3 1 0 2 127 112 1 0 3 40 78 1 0 4 38 75 5 0 0 1 69 1 0 3 31 115 0 1 4 1 0 3 6 93 1 1 4 124 3 0 1 0 1 1 2 77 0 0 1 41 1 1 0 1 101 45 2 1 0 0 46 1 0 3 111 32 2 4 1 1 3 47 1 0 2 1 125 1 1 3 67 0 1 2 5 0 1 3 1 1 3 87 1 1 3 68 0 0 0 105 0 0 3 16 1 4 1 0 1 53 49 1 0 0 103 1 1 3 71 1 1 0 109 99 113 36 208 121 60 76 2 90 50 75 85 61 94 1 5 1 3 109 1 210 121 4 1 0 78 39 12 112 194 104 0 0 45 5 116 126 150 52 0 2 78 111 3 3 2 1 4 0 0 4 2 0 1 3 2 2 1 0 4 106 99 1 123 124 0 0 1 3 140 1 78 4 5 8 2 2 1 0 3 0 0 0 98 119 41 38 0 150 51 18 0 0 1 99 200 90 58 92 36 0 0 0 9 138 144 0 4 64 0 84 1 70 9 222 109 1 79 1 29 0 27 124 180 61 1 1 11 0 25 1 111 33 125 6 0 27 0 3 0 0 0 154 244 0 3 112 1 116 1 46 65 247 252 1 43 0 121 0 6 4 201 175 1 2 18 1 59 1 73 92 96 31 0 84 1 50 0 11 97 47 80 1 2 9 74 2 0 1 1 6 1 1 0 105 83 1 50 18 4 3 3 5 28 74 43 111 60 126 39 2 0 0 75 70 1 61 118 4 1 3 1 11 62 1 86 124 1 4 19 106 11 101 0 13 4 119 206 255 83 217 249 1 19 33 131 58 13 231 4 72 117 80 63 215 202 1 60 152 144 14 203 49 2 86 99 0 188 41 4 1 112 1 3 1 3 1 137 4 3 93 16 13 5 175 134 39 199 156 217 7 2 1 6 1 2 5 175 180 3 54 217 71 214 226 178 2 7 53 2 238 218 1 89 202 2 45 219 131 185 100 1 0 88 104 1 86 115 3 4 2 35 5 1 1 187 0 2 136 0 126 28 1 15 3 255 1 170 212 0 72 2 4 250 250 3 5 0 1 0 1 0 1 5 5 63 77 3 0 1 0 0 37 0 4 22 126 4 1 0 1 0 1 81 29 4 15 89 2 0 0 0 2 31 123 4 0 0 1 1 1 28 101 0 1 3 104 116 2 1 1 1 96 109 3 1 0 1 0 6 51 4 1 0 1 0 1 3 19 16 3 91 110 1 0 1 21 68 4 1 1 1 1 1 3 4 56 0 0 99 31 1 76 3 2 1 0 18 41 0 49 42 3 3 2 1 1 61 0 1 0 60 0 1 0 175 1 3 1 1 0 2 133 179 2 4 1 1 63 0 1 4 84 0 60 0 19 1 114 1 2 4 41 1 10 1 59 1 37 0 5 26 0 54 1 56 0 57 0 92 0 1 3 122 0 59 0 8 1 1 99 1 1 2 130 226 1 2 0 1 121 75 0 1 4 155 3 0 2 1 1 34 1 1 111 1 1 3 94 154 4 3 4 79 123 19 26 49 52 3 0 0 2 160 39 1 0 1 0 0 2 0 0 3 116 66 2 126 8 68 1 3 42 2 5 0 0 2 1 0 0 1 1 4 1 1 1 1 1 0 0 2 1 0 1 61 67 2 0 0 0 3 66 82 190 1 0 0 0 1 0 2 4 86 174 48 44 0 124 48 3 92 20 20 1 2 1 2 28 49 0 1 2 96 0 207 79 4 115 90 0 62 235 0 2 4 0 0 1 14 68 1 0 0 1 1 0 1 0 0 0 4 46 117 0 1 5 0 1 4 1 1 2 156 78 0 1 1 0 4 7 81 0 0 59 14 1 0 1 1 3 144 17 1 0 0 0 2 14 86 1 1 2 63 5 1 4 194 0 0 3 18 113 1 1 1 3 1 0 1 0 2 0 124 145 0 4 2 0 0 0 249 41 0 0 1 0 4 64 22 0 1 186 9 1 0 2 0 1 4 1 1 2 69 88 0 0 5 0 0 0 166 88 1 0 1 0 0 109 6 1 0 0 1 2 0 0 4 233 63 1 1 1 1 1 142 20 1 1 0 0 4 73 50 0 2 1 2 18 11 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 152 1 175 0 0 0 1 1 1 137 1 169 0 0 1 0 5 1 186 0 5 0 0 0 2 0 2 0 4 0 0 1 40 1 136 0 2 1 24 1 0 3 0 1 1 107 0 2 1 83 0 0 3 1 0 2 0 3 1 88 1 1 255 0 0 0 0 1 239 1 202 1 81 0 0 0 0 3 0 3 0 1 1 178 1 0 0 1 242 1 1 171 0 1 0 1 0 2 0 4 0 0 1 76 0 1 48 1 0 0 0 1 0 4 1 33 0 0 0 1 129 1 1 218 0 1 244 1 194 0 0 1 50 1 0 5 0 1 1 149 1 181 0 0 1 0 3 0 2 0 2 1 190 1 1 79 0 2 1 1 158 0 1 20 0 0 0 0 1 235 1 245 0 2 0 0 1 98 1 136 0 2 0 1 0 4 0 0 0 1 22 0 0 0 3 0 4 1 41 0 5 0 1 70 0 1 0 2 1 236 1 1 77 1 0 3 0 2 0 1 1 256 1 0 1 0 5 0 1 174 0 1 173 0 2 1 68 1 0 2 0 1 151 1 230 1 249 1 96 0 0 1 0 0 1 1 151 1 80 1 0 0 1 0 5 0 1 15 0 4 1 205 1 0 0 0 0 3 0 1 1 41 1 203 0 0 0 2 0 2 1 105 0 1 183 0 3 1 104 1 1 70 1 0 0 1 116 1 89 0 0 1 99 1 21 0 0 0 0 1 38 0 0 0 0 1 1 90 1 240 1 196 0 1 1 201 1 0 1 245 1 90 1 141 0 0 0 0 1 1 176 0 1 1 74 0 0 4 0 1 10 0 0 1 209 0 3 1 217 0 0 0 0 0 0 0 1 144 0 0 1 1 75 1 10 0 0 0 0 0 0 0 0 1 23 0 0 1 219 0 0 1 238 0 5 0 0 0 1 1 43 0 0 0 0 0 0 1 21 1 72 0 0 1 63 1 1 50 0 0 0 1 0 2 1 140 0 5 0 0 0 1 177 1 1 215 1 0 0 0 1 193 1 171 1 5 0 0 1 0 3 0 2 1 111 1 0 0 1 245 1 236 1 0 1 16 1 124 1 0 1 30 0 0 1 1 92 1 124 1 116 1 143 1 100 1 86 1 1 0 3 0 0 0 1 1 136 1 255 1 221 0 0 1 201 1 1 247 1 1 0 1 1 132 0 0 4 0 0 1 118 0 0 1 221 0 0 1 152 1 185 1 234 0 0 1 36 1 0 0 1 45 0 1 86 0 1 114 0 0 2 0 0 0 0 0 0 0 1 47 0 0 0 0 0 5 0 1 142 0 1 1 227 0 3 1 97 0 0 2 0 1 27 1 124 1 110 0 0 0 0 0 0 0 1 88 0 0 1 30 1 0 4 1 1 143 0 1 0 1 164 0 0 0 1 1 178 1 1 143 1 1 0 2 1 205 0 5 0 1 0 3 0 4 0 4 1 3 1 85 1 56 0 0 1 1 68 1 1 1 209 1 253 0 1 1 49 1 0 0 0 1 78 1 233 1 23 1 195 1 1 1 181 1 0 0 0 0 1 105 0 0 1 23 0 1 0 1 1 236 1 244 1 18 0 1 0 1 0 0 3 1 178 1 51 1 85 0 1 1 207 1 1 1 221 0 4 1 0 3 0 2 1 145 0 3 0 0 2 1 8 0 1 67 0 1 166 0 0 0 0 1 115 0 0 1 7 1 1 14 0 0 0 1 58 1 0 0 0 1 39 1 11 1 1 0 3 1 1 70 0 3 1 183 0 0 2 1 1 148 0 0 1 0 1 1 211 0 0 1 243 0 0 1 243 0 0 1 1 164 0 0 0 0 1 39 1 157 1 194 1 1 0 1 1 1 36 0 2 1 0 2 1 53 1 51 1 23 0 1 1 209 1 0 1 1 209 0 3 0 2 1 73 0 0 1 52 1 246 0 0 1 225 1 0 1 0 0 1 227 1 199 0 1 1 109 0 0 4 1 240 1 0 0 1 120 1 10 0 0 0 0 0 5 2 0 0 1 156 1 141 0 0 1 0 3 1 59 0 1 227 1 0 0 0 0 0 0 2 0 3 0 3 1 65 0 1 1 1 111 0 1 31 1 204 1 164 0 0 1 1 79 1 0 0 0 0 1 59 1 184 0 0 0 0 0 0 0 0 1 214 0 1 62 0 0 0 0 0 0 1 0 0 0 4 0 0 0 0 1 28 1 220 0 0 0 0 0 0 0 1 1 144 0 0 0 1 93 1 20 1 1 1 74 0 1 112 1 17 1 1 0 1 0 0 1 65 1 82 0 0 1 165 1 1 1 17 1 84 0 1 0 5 1 0 0 1 185 0 0 0 0 1 122 0 0 0 0 0 1 1 185 0 1 1 213 1 56 1 153 1 0 0 0 0 0 0 1 65 1 138 0 1 0 3 0 0 1 141 1 0 1 0 0 0 0 0 0 1 68 1 176 0 0 1 245 1 200 0 2 1 49 1 0 1 1 1 92 1 216 1 0 1 1 174 0 0 0 2 0 1 0 1 91 1 51 1 63 1 90 1 1 1 33 0 0 1 0 1 1 230 0 1 1 1 173 0 0 3 1 184 1 1 21 1 1 0 2 1 34 1 4 1 191 0 0 0 0 2 0 0 0 5 0 0 0 1 53 1 108 0 0 1 1 179 1 106 0 5 0 1 120 1 140 1 1 0 5 1 0 1 1 142 0 0 0 2 1 241 0 1 213 1 0 2 0 2 1 78 1 0 0 0 1 203 1 52 1 152 1 233 0 0 0 0 0 1 1 90 0 0 2 1 31 1 228 1 1 0 5 0 1 94 1 186 0 1 0 4 0 0 0 0 0 0 1 7 0 1 213 1 0 0 0 0 0 0 1 188 0 0 0 0 0 1 222 0 0 0 0 1 112 1 164 0 1 1 123 1 236 0 0 1 77 0 2 0 0 1 0 4 1 26 1 183 1 233 0 0 1 1 200 1 135 0 1 1 88 1 1 45 0 3 1 7 0 3 0 0 0 0 0 0 1 1 235 1 96 0 0 0 1 0 0 0 3 1 1 90 1 15 1 132 1 166 1 1 0 2 1 1 245 1 139 0 1 0 1 1 1 16 0 3 1 68 0 1 186 1 1 0 5 0 0 5 0 1 0 3 0 5 1 165 0 3 0 5 0 0 3 1 9 0 2 1 1 179 1 0 1 217 1 164 1 142 1 94 0 1 0 5 0 1 0 5 0 0 1 0 1 48 1 191 1 89 1 159 1 108 0 0 1 1 127 0 4 1 0 0 0 1 1 130 1 185 1 211 0 3 0 1 1 92 0 1 1 0 3 0 0 3 1 256 0 2 1 204 1 6 1 27 0 3 0 0 0 1 205 1 254 0 4 1 0 3 1 1 132 0 1 0 0 0 0 0 0 0 1 155 0 0 1 167 1 81 0 1 0 3 0 2 1 1 50 0 2 0 0 0 1 211 1 149 0 0 1 15 1 48 0 2 1 0 1 1 1 20 1 55 0 0 0 0 0 0 0 5 0 3 1 77 0 1 0 3 1 65 0 0 1 109 1 220 1 183 0 0 1 1 28 0 4 0 1 131 1 128 1 180 0 0 1 0 1 0 1 0 0 1 47 0 0 1 0 5 1 146 0 5 0 0 0 0 0 5 0 0 0 0 1 117 0 0 1 128 1 63 1 85 0 1 1 198 1 0 0 1 0 2 0 1 1 153 0 0 1 1 43 1 1 41 1 1 0 3 0 5 0 2 1 167 1 1 106 0 0 1 0 4 1 177 1 180 1 189 0 0 1 64 0 1 103 0 0 1 1 134 1 202 0 0 1 0 5 0 4 1 147 0 0 4 1 75 1 1 6 1 70 0 0 0 0 0 0 1 159 0 0 1 1 153 0 5 0 0 4 1 0 0 1 49 1 0 3 0 0 0 4 1 163 0 1 0 4 0 4 0 0 1 1 106 1 138 0 0 1 113 1 19 1 19 1 0 1 0 3 0 1 0 3 0 1 0 0 0 3 0 4 1 116 1 245 1 241 1 0 0 0 1 0 0 0 1 0 2 0 0 1 184 0 1 184 0 3 0 0 4 0 4 0 0 1 179 1 85 1 71 1 92 0 0 1 0 5 1 1 0 2 1 178 0 1 176 0 0 0 1 203 0 0 1 142 0 0 1 88 1 250 0 1 1 184 0 0 0 0 1 139 0 8 0 0 0 2 1 141 1 1 180 0 3 1 0 3 1 1 210 0 2 1 49 1 1 121 1 0 0 0 1 0 3 0 5 1 43 1 221 0 0 1 9 1 0 1 1 1 88 0 0 3 1 216 0 2 0 0 3 1 186 1 1 197 0 1 116 1 5 1 141 0 0 1 28 0 4 0 0 2 0 5 0 0 0 2 1 1 58 0 1 0 1 1 46 1 113 1 249 0 1 1 16 0 1 1 55 0 4 1 0 0 0 0 0 1 72 1 205 0 0 0 0 0 1 0 0 0 0 1 201 0 2 1 146 1 31 1 82 0 4 1 1 12 1 0 0 0 3 1 76 1 175 1 252 0 0 0 1 79 1 65 0 2 0 5 1 233 1 0 1 1 220 0 1 0 4 0 1 0 1 198 0 2 0 0 5 1 224 0 5 1 1 168 1 208 0 0 1 138 0 1 0 0 0 0 1 77 0 0 0 0 0 0 0 0 0 0 0 1 199 1 0 0 0 0 1 135 0 0 0 1 25 1 0 0 0 0 0 0 1 8 0 0 2 0 0 0 0 1 161 1 0 0 0 0 1 210 0 1 1 74 1 205 0 1 1 134 1 0 1 0 0 0 0 1 184 1 0 0 0 1 0 0 0 2 0 0 0 0 0 0 1 11 0 1 232 0 0 0 0 3 0 2 1 221 0 0 0 0 5 0 0 0 0 0 2 0 0 0 2 1 90 0 1 106 1 1 68 1 11 1 1 0 4 1 58 1 225 1 1 0 2 0 0 0 0 0 3 0 0 0 3 1 42 0 0 5 0 0 0 0 0 1 0 0 0 1 1 114 1 0 0 1 179 0 0 0 0 0 1 1 167 0 5 0 0 0 1 32 0 0 1 1 179 0 0 1 1 176 0 1 159 1 0 1 168 1 38 1 156 0 0 0 3 1 88 0 1 164 1 0 0 0 1 182 1 108 1 186 1 170 1 114 1 41 0 0 1 0 0 1 241 1 0 1 1 1 87 1 173 0 5 3 1 0 1 0 0 0 1 196 1 81 0 0 1 28 0 1 1 144 1 187 1 1 1 214 1 0 0 1 0 0 1 0 4 1 235 0 0 0 1 104 1 249 0 0 1 0 4 1 255 0 1 1 71 1 107 0 5 0 1 1 145 0 1 1 174 0 5 2 1 0 2 0 1 1 155 0 3 0 1 0 4 0 5 0 1 120 0 2 0 1 33 1 58 0 0 0 1 0 1 0 3 1 85 0 0 1 134 1 142 0 0 0 3 0 2 0 2 1 176 1 0 2 1 62 0 0 4 1 1 229 1 136 0 4 1 144 1 0 0 0 1 244 0 0 0 1 84 0 0 1 215 0 4 0 3 0 4 1 147 0 1 1 130 1 165 1 182 0 0 0 0 0 0 0 2 1 123 0 2 1 222 1 203 1 160 0 1 1 234 0 0 1 85 0 0 0 0 1 1 33 1 233 1 1 1 124 0 1 1 253 1 96 1 222 1 158 0 0 0 0 1 197 1 51 1 131 0 2 0 2 1 74 0 0 1 0 5 0 1 94 1 49 0 0 1 1 94 1 37 0 4 0 4 0 1 1 38 0 5 0 0 0 1 0 2 1 123 1 1 142 1 1 205 0 0 0 0 5 1 242 1 255 0 0 1 56 1 68 0 1 1 150 1 0 0 1 94 0 0 0 2 1 146 1 202 0 1 1 125 0 1 228 0 3 1 1 128 1 1 1 137 1 80 1 180 0 4 0 0 1 1 11 0 5 0 0 4 0 0 0 1 188 1 37 1 222 1 30 0 0 0 1 1 83 0 2 0 0 1 123 0 1 0 1 0 1 0 1 1 23 0 0 0 0 0 4 1 251 1 0 5 0 0 2 1 1 237 0 2 0 0 1 197 1 1 140 0 0 2 1 228 0 1 40 0 1 0 5 1 226 0 5 0 1 1 206 1 0 5 1 134 0 0 5 1 150 0 0 1 200 1 171 1 188 1 0 0 0 0 0 1 173 1 151 1 97 0 0 1 45 1 19 1 1 0 1 0 3 1 201 1 0 2 0 0 1 190 0 1 1 253 0 4 1 185 1 0 0 0 0 0 1 34 1 185 1 58 0 3 1 149 1 1 1 228 1 173 1 0 1 1 169 1 77 0 1 1 0 3 1 0 0 1 161 1 0 1 1 0 2 1 108 0 4 1 140 0 1 0 4 1 23 0 1 25 1 57 1 243 1 1 1 83 1 1 1 163 0 1 0 0 1 0 4 0 0 0 0 1 210 0 0 4 0 0 1 85 0 1 190 0 1 208 0 0 1 224 1 1 162 1 0 0 4 1 79 0 1 1 183 0 0 1 1 0 5 0 3 0 5 0 4 1 88 1 73 1 1 0 0 1 81 1 87 0 0 0 0 0 0 0 0 0 3 0 3 1 102 0 5 0 1 0 2 0 3 0 2 0 3 0 0 1 124 0 5 0 1 1 63 0 0 4 0 4 1 250 1 161 1 46 0 0 0 4 1 1 228 1 230 1 1 0 2 0 1 0 5 1 152 1 72 1 218 1 1 0 4 0 0 1 0 0 1 106 0 1 187 0 0 1 0 3 1 242 0 0 0 1 25 0 5 0 0 1 1 100 0 1 185 0 1 1 46 0 5 0 1 71 0 1 1 84 0 5 0 0 0 0 1 40 1 146 0 0 1 190 0 1 0 1 0 1 0 1 0 0 0 3 0 1 0 5 0 0 4 0 0 0 1 161 0 0 0 0 1 235 1 221 0 0 1 188 1 238 1 1 0 2 0 0 0 1 144 0 6 0 0 1 1 178 1 46 0 1 0 5 1 0 1 1 87 1 191 0 0 0 1 1 200 1 51 0 0 1 231 0 0 0 1 1 31 1 123 0 1 1 60 1 0 1 145 1 18 1 232 1 11 1 236 1 80 0 3 1 1 123 0 0 1 0 5 1 0 3 1 154 1 0 1 1 1 69 0 2 0 3 0 1 1 159 1 1 158 0 1 0 1 1 253 1 2 1 95 0 0 1 1 151 0 1 1 0 2 0 0 1 209 0 0 1 120 0 4 0 3 1 5 1 193 1 1 1 64 0 0 3 1 231 0 1 192 0 1 1 179 0 2 1 39 0 1 0 1 200 1 37 0 0 0 0 1 239 1 61 1 250 1 154 0 0 1 225 1 1 1 0 0 0 0 4 0 0 0 0 0 0 1 124 0 0 1 1 100 0 1 1 113 0 1 1 0 0 1 57 0 3 0 1 1 80 1 208 0 3 0 0 0 1 1 116 1 192 0 5 1 1 88 1 216 0 0 1 0 4 1 0 5 1 1 234 1 0 1 0 0 0 0 1 149 1 154 0 1 0 0 1 80 1 61 1 157 1 1 0 5 0 1 0 2 0 0 0 0 0 1 1 168 1 182 1 251 0 0 1 0 2 0 0 0 0 0 0 1 149 0 3 1 0 0 0 2 0 0 1 209 0 0 0 0 0 0 2 1 188 1 12 0 0 1 97 1 236 1 206 1 0 0 1 222 1 16 1 155 1 0 1 0 1 0 4 0 2 1 118 0 2 1 108 1 1 126 1 1 0 0 0 3 1 51 0 1 7 1 232 1 230 1 1 0 5 0 1 0 5 0 1 108 1 1 15 1 201 0 3 1 1 222 0 1 0 1 1 22 0 0 0 0 3 0 3 1 208 1 0 3 1 127 1 215 1 0 1 55 0 0 0 3 0 3 0 1 211 1 201 1 164 1 1 0 5 2 0 1 233 0 2 0 0 1 125 1 1 1 145 0 2 0 0 1 0 0 1 5 1 124 1 143 1 211 0 0 0 1 0 2 1 71 0 3 0 0 5 0 5 0 0 1 131 1 175 0 1 0 3 1 234 1 0 0 1 224 1 202 0 0 1 193 0 0 0 5 2 1 131 0 1 252 0 0 1 1 146 0 1 0 3 0 0 0 1 0 0 0 0 0 0 1 39 1 52 0 0 1 138 0 2 1 1 160 1 0 5 0 1 17 1 1 0 3 1 228 0 2 1 0 2 1 96 0 4 0 1 0 4 0 5 1 120 1 86 0 0 0 4 0 4 1 160 1 42 1 250 1 142 0 3 1 0 3 0 1 1 223 0 1 0 4 1 124 1 0 0 0 2 1 243 0 1 1 107 1 167 0 1 0 0 0 2 1 244 0 0 3 1 1 4 0 5 0 0 1 0 0 5 0 1 1 13 0 4 0 1 205 1 256 1 0 1 182 0 5 0 0 0 1 1 92 0 5 0 1 1 23 0 0 2 0 3 0 0 1 150 1 215 1 1 1 130 1 0 3 0 1 0 2 0 0 0 4 1 187 1 1 235 1 0 0 0 0 0 0 0 4 0 1 0 3 1 229 1 1 23 0 0 1 0 3 0 4 0 4 0 0 0 1 1 92 0 1 232 1 0 5 1 41 0 0 1 0 4 1 26 0 4 0 1 28 0 1 0 0 0 0 1 237 0 2 0 2 0 2 0 1 35 0 2 1 104 1 0 4 0 1 0 1 0 3 0 0 1 29 1 237 1 203 0 4 1 44 1 1 0 3 0 1 0 1 1 1 202 1 214 1 97 1 1 1 81 0 1 1 55 0 5 1 0 0 0 4 0 3 0 4 1 198 0 3 0 0 0 0 2 0 0 0 1 1 210 0 1 1 8 1 0 3 1 0 4 0 0 0 3 0 4 0 2 1 159 1 1 41 1 45 0 5 1 1 129 1 232 0 1 0 0 0 1 0 2 0 2 1 201 1 98 1 0 0 5 1 59 1 1 43 0 1 151 0 1 0 3 0 3 1 0 1 1 107 1 0 0 1 215 0 3 0 1 1 117 0 3 0 0 3 0 3 0 0 0 0 1 0 0 1 221 0 0 0 0 3 0 1 0 0 1 185 1 28 0 2 1 1 229 1 0 1 27 1 198 0 4 1 148 1 0 1 1 237 1 132 1 211 0 1 1 135 1 0 1 86 0 4 0 1 196 1 210 1 229 1 0 0 0 0 0 1 142 1 116 1 155 1 134 0 0 0 3 1 68 0 1 0 2 0 1 1 105 1 155 1 209 1 1 0 2 1 1 119 1 127 0 1 1 63 1 0 0 0 0 0 0 0 0 3 1 185 0 5 0 1 212 0 3 1 219 1 1 222 0 1 0 3 1 251 0 1 216 1 0 1 150 1 140 1 231 0 2 0 4 0 3 1 1 121 1 229 1 0 1 1 123 1 246 0 3 0 0 1 0 1 1 104 1 246 1 156 1 1 0 2 0 0 2 0 4 1 68 1 0 4 1 0 0 0 0 1 60 0 4 0 4 1 226 1 38 0 1 0 1 1 0 0 1 211 0 4 0 2 0 1 55 0 0 0 2 1 196 0 0 1 147 0 0 0 4 1 2 1 122 0 0 0 1 0 1 0 3 1 5 1 1 0 0 0 3 0 1 1 131 1 86 0 1 0 2 0 3 1 244 0 1 161 1 1 67 1 11 1 144 1 1 1 98 0 0 0 4 0 1 1 121 0 4 0 1 77 1 249 1 1 0 4 0 0 0 3 0 1 0 5 0 0 0 0 1 191 1 1 150 1 0 3 5 1 158 0 1 244 1 0 0 0 1 1 89 1 0 0 0 0 1 162 0 1 198 0 0 4 0 1 1 22 1 151 1 1 1 109 0 1 60 1 153 1 1 1 10 1 1 199 1 193 1 234 1 125 0 4 0 0 1 0 0 1 141 1 120 1 1 0 0 1 148 0 4 0 0 1 218 0 0 0 2 1 248 0 4 1 151 1 1 0 5 0 0 5 0 0 5 0 0 1 0 2 1 225 1 0 0 0 1 146 0 5 0 0 2 1 142 1 3 1 1 0 3 1 218 1 96 0 0 0 0 0 1 116 1 139 1 203 0 0 1 188 0 0 1 55 1 126 0 0 0 1 1 252 0 1 1 1 9 0 1 169 0 0 0 0 0 6 0 0 1 179 1 1 23 1 1 227 0 0 0 0 1 250 0 0 0 0 1 1 38 0 0 1 0 1 0 1 78 1 174 1 55 1 255 0 0 1 1 109 1 51 0 0 1 0 3 0 5 0 1 179 0 0 1 1 213 1 0 2 1 90 0 0 1 1 11 0 1 1 42 1 0 3 1 1 0 0 3 0 0 8 0 4 1 110 0 1 0 0 3 1 128 1 123 1 1 0 5 2 0 5 1 163 1 0 8 0 1 0 7 0 5 0 8 1 105 1 0 7 1 88 0 0 0 0 7 0 8 1 255 0 1 55 1 0 3 0 6 1 30 0 0 3 0 2 0 0 1 0 3 1 151 0 0 0 3 0 2 1 96 1 0 5 0 1 206 1 250 1 1 0 5 0 1 124 1 228 0 5 2 0 1 0 1 0 0 1 27 0 0 0 4 1 21 1 22 1 5 1 116 0 0 0 1 1 4 0 1 1 167 0 0 5 0 1 1 64 0 2 0 0 0 1 210 1 184 0 0 1 0 3 0 1 0 4 1 224 1 38 0 0 1 105 1 149 1 169 0 1 0 3 1 1 70 0 4 0 1 29 0 1 1 178 0 0 1 0 3 1 18 1 256 1 1 0 0 0 0 1 199 0 0 1 91 0 0 0 0 0 0 1 255 1 165 0 1 1 68 0 1 116 1 0 1 1 162 1 85 0 2 0 1 0 4 0 3 1 156 1 147 0 0 1 152 0 0 0 0 0 1 225 0 5 2 0 2 1 0 2 0 0 0 3 0 0 0 0 1 30 1 94 0 2 0 0 1 20 1 103 1 169 1 202 0 0 1 1 128 0 0 0 0 0 0 0 1 1 117 1 33 1 1 1 251 0 1 167 0 3 1 1 100 1 1 105 0 0 0 0 1 89 0 3 0 1 136 1 14 1 235 1 0 0 1 154 0 0 1 15 0 0 1 1 175 1 13 1 29 0 0 1 1 178 0 5 1 1 0 4 0 0 0 3 1 253 0 0 0 2 1 47 1 1 61 1 1 0 1 0 0 1 81 1 1 116 1 1 113 0 2 0 1 205 0 0 0 0 1 235 0 3 1 0 4 0 3 1 120 1 0 1 0 1 245 1 116 0 3 1 179 0 0 1 0 2 0 0 1 61 0 1 191 1 0 2 1 167 1 1 123 0 1 204 0 0 0 3 0 1 1 144 0 1 196 0 1 241 1 23 0 0 0 0 1 213 0 2 0 1 180 0 0 0 0 0 0 0 0 1 181 1 47 0 1 1 120 0 0 0 1 26 0 0 0 1 166 0 0 0 0 0 1 0 1 0 3 0 4 1 1 178 0 4 0 4 1 0 2 1 100 1 0 2 1 128 0 0 1 131 1 9 1 0 0 0 0 1 160 1 60 0 0 0 0 0 3 0 1 0 1 1 107 0 0 1 0 3 0 2 1 134 1 0 2 1 36 1 83 0 1 0 4 1 202 1 49 1 11 0 1 1 71 0 0 1 56 0 2 1 80 1 58 1 0 1 248 1 237 1 0 0 0 0 0 0 0 2 0 0 0 0 1 83 0 0 1 1 139 0 1 172 0 0 0 0 1 87 0 0 2 1 0 5 1 0 3 0 0 1 48 1 1 0 1 35 1 200 0 0 0 0 0 0 0 0 5 1 67 1 153 1 129 0 0 0 0 0 1 147 0 0 0 0 1 105 0 3 1 0 3 1 193 0 1 1 1 180 0 0 0 1 64 1 0 0 0 0 1 135 1 0 1 146 0 1 0 0 0 2 1 101 1 0 0 0 2 1 171 1 1 0 0 1 103 0 1 0 1 83 1 118 1 0 0 0 0 3 0 2 0 0 1 89 1 1 242 0 1 192 0 5 0 0 1 189 1 36 1 101 0 1 1 141 1 1 1 219 1 169 0 0 1 82 0 0 0 5 2 0 4 0 0 0 1 178 0 4 0 4 1 1 104 1 225 1 1 1 216 1 0 0 0 1 1 79 1 39 0 0 0 8 1 138 0 1 165 1 0 3 1 1 144 0 1 1 164 1 65 1 1 0 2 0 0 1 84 0 3 0 4 0 0 1 0 2 1 45 1 0 0 0 0 0 7 1 76 0 0 0 1 212 0 0 0 1 124 0 0 0 1 40 0 0 1 1 237 1 64 0 0 1 223 1 189 0 0 0 4 1 0 4 1 220 1 1 0 5 0 0 4 1 10 1 0 0 1 203 0 0 0 1 0 3 1 190 0 1 49 0 0 1 1 84 0 1 1 53 0 4 0 1 233 1 250 1 131 1 1 1 218 1 0 0 0 0 1 0 3 0 3 1 89 0 3 0 0 0 1 75 1 146 0 3 1 0 4 1 0 0 1 247 0 0 2 1 177 1 243 0 4 1 0 0 0 0 0 1 70 1 81 0 0 0 0 1 66 0 0 1 1 141 0 3 1 0 1 0 0 1 35 0 0 1 1 214 0 4 0 5 1 1 145 0 0 1 131 0 0 1 242 0 0 1 182 1 122 1 0 0 0 3 1 52 1 61 0 1 1 1 112 0 0 1 139 0 0 0 1 1 246 0 0 0 0 0 0 1 50 0 5 1 0 1 1 1 250 0 4 1 1 92 0 1 107 0 0 0 3 0 5 1 1 1 197 0 4 0 1 170 1 29 0 0 1 11 0 0 0 1 0 2 0 4 0 1 1 55 0 0 5 0 0 4 1 235 0 4 0 1 159 0 0 1 198 0 0 1 83 1 244 1 66 1 0 1 0 1 0 4 0 1 1 192 0 0 0 5 1 0 0 0 0 0 0 1 55 0 0 1 8 1 36 0 0 1 163 0 4 1 112 0 0 1 111 0 5 2 0 0 0 0 0 1 72 0 1 0 2 1 179 1 208 1 1 0 0 1 249 1 137 1 0 1 148 0 3 0 5 2 0 3 1 0 4 0 0 0 0 1 1 106 1 142 1 0 1 232 0 1 1 156 0 0 1 0 2 1 57 1 56 0 0 0 0 0 0 0 5 0 0 3 0 2 0 1 0 2 0 3 1 187 1 0 5 0 1 134 0 0 2 0 2 0 3 1 140 0 1 181 1 153 0 1 1 128 0 0 0 1 92 0 0 1 67 0 1 31 1 0 0 1 0 0 1 71 1 0 2 0 5 0 1 194 1 1 195 1 124 0 9 1 161 1 111 0 0 0 6 1 59 0 1 110 1 0 0 0 0 1 165 0 1 1 256 1 82 0 1 0 3 1 185 1 100 1 0 1 0 0 0 1 1 111 0 1 39 0 1 237 0 5 1 0 1 152 0 0 1 57 0 0 1 1 111 0 1 253 0 1 0 1 0 0 1 59 0 3 0 1 71 0 5 0 0 1 82 1 62 1 8 0 7 0 2 0 0 1 85 1 1 182 1 0 1 0 5 0 1 93 1 30 0 0 0 0 4 1 227 0 5 1 1 167 0 5 0 1 0 3 1 1 197 0 0 1 192 0 1 51 1 0 1 223 0 8 1 129 1 254 0 1 0 1 1 39 0 4 0 0 1 1 1 192 0 1 0 1 1 183 0 0 4 0 5 1 0 2 1 0 1 1 189 1 249 1 0 0 3 0 2 0 1 0 2 1 34 1 6 0 2 1 25 0 1 211 1 1 0 4 1 54 0 0 0 4 1 191 0 2 1 173 0 0 4 1 0 2 1 43 0 0 2 1 160 1 229 0 4 0 1 1 135 0 0 6 0 0 0 0 1 79 0 1 174 1 73 1 0 0 0 1 0 0 1 183 1 33 1 181 0 4 1 39 0 0 0 0 1 245 0 2 1 236 0 0 0 0 0 3 1 0 5 0 0 3 0 4 1 128 0 0 1 0 0 0 0 0 1 9 0 0 1 1 200 0 3 1 33 0 1 0 5 1 0 1 0 4 0 2 0 0 1 0 2 1 8 0 3 0 0 0 0 3 0 1 1 247 0 1 1 190 1 0 4 1 0 0 0 0 0 5 0 0 0 0 1 235 1 245 1 233 1 52 1 18 0 0 1 253 0 1 211 0 0 0 1 1 199 1 157 1 186 1 0 1 1 1 1 39 0 0 1 0 5 0 0 1 1 113 0 2 1 0 1 1 200 1 90 1 0 0 1 190 0 0 1 1 143 0 0 1 1 1 212 1 62 1 0 0 1 87 1 55 1 39 1 0 1 1 153 1 170 0 0 0 1 146 0 0 1 0 1 1 63 1 51 1 90 1 170 1 1 0 3 1 0 5 0 1 225 0 1 0 0 0 2 0 5 0 2 1 203 0 2 0 0 2 1 132 1 215 0 1 0 0 1 241 1 190 0 5 1 1 0 3 1 0 1 0 5 0 4 0 0 1 163 1 43 1 60 1 203 1 57 0 0 1 157 1 0 0 0 0 1 253 1 1 146 1 0 2 1 141 1 0 7 0 0 0 0 1 0 2 0 4 1 44 0 5 0 1 115 1 103 1 1 1 24 0 0 1 162 1 55 0 3 1 249 1 165 1 1 0 4 1 20 0 5 2 1 1 169 0 0 0 0 0 0 0 1 238 1 69 0 0 1 196 1 254 0 0 1 83 1 49 1 0 1 0 5 0 1 163 1 130 1 1 1 124 1 1 1 27 1 184 1 173 1 16 1 0 0 0 1 154 0 0 0 0 1 189 1 249 0 0 0 1 1 20 0 3 1 0 0 1 168 1 26 0 0 0 0 1 214 1 113 0 0 0 0 1 97 0 0 0 0 0 0 0 1 0 0 0 0 1 35 1 0 0 1 49 1 160 0 1 1 50 0 1 18 0 0 1 129 1 0 0 1 97 0 1 46 1 0 1 47 0 0 1 119 1 0 0 1 1 140 0 0 0 0 0 1 90 0 5 1 0 3 0 0 0 0 0 4 1 205 0 0 0 1 169 0 1 95 0 0 0 0 0 0 1 223 0 0 0 1 68 0 0 0 1 131 1 0 1 66 1 238 1 0 0 0 0 0 1 157 1 1 199 0 6 1 0 3 0 1 1 131 1 154 0 4 1 94 0 1 1 3 1 39 1 1 1 176 1 0 1 176 0 0 0 0 0 0 0 0 0 5 2 0 3 1 185 0 0 1 110 1 1 1 139 0 2 0 0 0 0 5 2 1 79 1 1 164 1 125 1 5 0 0 1 0 5 2 0 0 0 0 1 159 1 194 0 1 1 58 0 0 0 0 0 1 153 1 99 1 1 0 3 1 66 1 140 0 0 1 1 44 0 0 0 0 1 0 0 1 189 0 4 0 4 1 135 1 71 0 0 1 0 3 0 2 1 126 1 134 1 1 1 2 0 1 22 1 159 1 0 0 0 0 3 1 166 1 0 3 0 0 1 136 1 0 0 1 209 0 0 1 120 1 214 0 2 1 0 0 0 1 104 0 4 0 2 1 1 131 1 241 0 1 1 52 0 0 0 0 0 0 0 0 1 171 1 142 0 0 0 0 1 28 1 48 1 79 0 0 1 1 145 0 0 0 0 0 0 1 1 152 0 0 1 0 0 0 5 0 1 68 1 1 110 0 0 0 1 0 0 0 4 1 1 5 0 3 0 3 1 128 0 1 1 145 0 2 0 0 0 0 3 0 1 1 109 0 5 2 0 1 134 0 0 1 1 1 1 1 43 1 231 1 161 1 1 0 2 0 0 0 1 240 0 1 1 3 1 1 19 1 0 1 82 0 0 1 240 0 2 1 0 1 0 1 1 23 0 2 0 3 1 49 0 1 201 1 1 173 0 5 0 0 0 1 0 3 1 78 0 3 1 184 0 0 1 1 29 0 0 3 0 0 0 2 1 1 40 0 5 0 0 0 1 1 163 0 4 0 0 5 1 190 0 0 1 198 1 0 2 1 0 2 1 65 0 1 40 1 0 0 1 40 1 106 0 1 0 4 1 41 1 22 1 1 0 4 0 0 0 0 1 156 1 123 0 0 1 0 0 1 118 0 5 0 0 0 1 0 4 0 4 0 2 0 1 0 2 1 31 1 0 4 1 121 0 1 0 4 1 167 0 4 0 2 0 3 1 46 1 0 0 0 0 0 1 154 1 18 0 0 1 55 1 162 1 180 0 3 1 0 3 1 0 5 2 0 1 1 0 3 0 0 0 4 1 30 0 1 17 1 50 1 0 1 0 4 0 0 1 138 0 1 0 0 4 1 220 0 0 0 0 0 0 0 0 1 33 1 47 1 0 1 63 1 191 1 0 1 1 208 1 135 1 1 0 5 1 0 0 1 210 0 0 1 189 0 0 0 5 0 0 2 1 170 1 28 0 0 1 0 0 1 175 0 5 0 1 1 228 1 0 1 1 143 1 0 5 0 1 1 175 0 3 1 94 0 5 0 1 84 0 1 0 3 1 116 0 0 0 1 93 0 1 1 248 1 1 107 0 0 0 0 3 0 0 1 215 1 4 1 40 1 79 1 240 1 20 1 0 0 1 0 3 0 5 1 0 3 0 3 0 3 1 64 1 0 1 0 2 0 3 0 5 1 141 0 3 0 0 5 1 193 1 0 1 0 5 1 177 0 3 1 1 212 0 0 1 0 4 0 4 0 0 0 2 0 4 1 202 0 1 11 0 2 1 1 167 1 1 115 0 2 0 0 1 82 1 0 0 0 0 0 1 56 0 0 0 0 1 232 1 231 1 166 1 234 0 0 1 49 1 0 0 1 4 0 1 16 0 0 0 1 67 1 1 0 3 0 1 0 3 1 55 0 1 1 1 195 1 0 2 0 2 1 124 1 0 0 0 1 65 0 0 0 0 1 112 0 3 0 2 1 208 0 1 1 53 1 222 1 1 1 158 1 1 0 5 0 0 0 0 5 0 0 3 0 0 0 2 0 1 0 0 1 110 1 131 1 32 1 236 0 0 0 0 0 1 0 1 0 2 0 4 1 156 0 0 3 1 56 1 0 5 0 1 77 1 118 1 158 1 1 0 0 0 0 1 1 31 1 166 0 1 1 15 0 0 1 1 1 74 1 3 1 0 1 1 254 0 5 0 0 5 1 0 0 1 0 0 0 0 0 2 0 2 1 197 1 64 1 1 0 2 0 3 1 198 0 0 3 1 143 0 0 0 0 0 0 0 0 0 4 0 1 1 154 0 5 1 0 0 1 0 4 0 2 0 0 1 221 1 108 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 231 0 0 3 3 2 0 1 1 27 0 0 0 1 22 0 0 0 1 199 0 0 0 3 1 58 0 1 227 1 1 0 3 1 204 0 1 120 1 0 0 1 1 61 0 5 1 1 66 1 77 0 0 0 1 249 0 0 0 0 1 53 1 90 1 21 1 1 0 1 1 185 0 1 1 254 1 193 1 1 1 76 1 0 0 0 1 126 0 0 0 2 0 5 2 0 0 1 1 203 1 94 1 104 1 1 1 73 1 0 1 127 0 3 0 5 1 0 3 0 4 1 6 1 0 1 0 3 0 5 0 0 5 0 0 0 1 233 0 1 0 1 0 4 0 0 0 1 14 1 98 0 0 1 2 1 62 0 0 1 136 0 0 0 0 0 3 0 0 0 1 0 0 1 1 49 1 1 1 232 0 0 1 0 5 1 0 0 0 1 54 0 0 0 0 1 203 1 123 1 53 1 0 0 1 1 36 0 0 1 221 1 13 0 0 0 3 0 2 0 1 1 0 1 0 2 0 4 1 202 1 0 5 0 0 3 1 182 1 43 0 0 0 0 0 0 1 226 1 25 1 76 0 0 1 0 0 0 0 1 110 0 1 1 246 1 182 1 86 1 1 1 252 1 0 0 1 0 2 0 1 1 130 1 1 256 0 2 1 1 186 1 1 1 170 0 4 0 0 1 110 0 0 0 0 1 183 0 0 0 0 0 0 0 0 0 1 1 107 0 1 190 0 0 3 1 62 0 1 0 1 162 0 2 1 0 4 1 70 1 177 1 46 1 0 1 1 122 1 28 0 1 0 2 1 208 0 0 1 1 131 1 142 0 0 1 196 1 193 1 235 1 1 0 1 1 0 3 1 84 1 0 1 0 1 108 0 0 0 0 1 94 1 126 1 178 0 0 1 1 127 1 1 1 185 0 4 1 1 231 1 1 0 1 0 3 0 3 0 5 1 1 101 1 241 1 0 0 0 1 96 0 0 0 2 1 53 1 1 73 1 1 0 2 1 40 0 5 2 1 0 2 0 5 0 0 0 1 164 1 245 0 0 0 0 0 0 0 0 0 1 92 1 143 1 14 1 23 0 1 0 5 0 1 1 129 1 229 1 1 1 218 0 1 0 5 0 0 2 1 37 0 1 18 0 0 0 0 0 1 214 0 0 0 1 0 5 1 1 32 1 0 3 0 4 1 13 1 0 0 0 0 0 0 1 1 57 0 4 0 5 0 1 1 180 1 47 0 0 0 0 0 3 0 0 0 0 0 4 1 79 1 1 115 1 80 0 1 0 0 0 1 1 33 0 2 1 1 66 0 0 0 1 48 1 169 1 218 0 0 1 9 0 1 1 129 0 3 1 0 0 0 1 1 221 0 1 1 14 0 2 0 1 156 1 101 1 0 1 0 1 0 4 1 148 1 0 5 0 1 21 0 0 0 0 0 0 0 1 60 1 158 1 227 1 164 0 0 1 1 166 1 235 0 1 1 109 1 1 1 4 0 3 1 182 0 1 125 1 0 0 0 1 177 1 213 0 4 1 29 0 1 1 195 0 0 0 0 1 98 0 0 1 29 1 142 0 1 0 1 0 5 0 1 42 1 0 1 158 1 133 1 144 0 0 1 0 4 1 132 1 0 1 0 4 1 134 0 1 1 104 1 0 1 0 1 1 137 0 2 1 178 1 27 1 253 1 59 1 1 1 36 1 0 1 1 187 1 34 1 124 1 0 0 1 95 0 1 1 215 0 5 0 1 1 164 0 0 5 1 1 105 0 0 0 1 145 0 0 1 116 1 31 0 0 1 23 0 0 0 0 1 176 1 180 1 1 1 59 0 0 0 0 0 0 3 1 86 0 1 1 242 0 4 0 0 1 1 229 1 184 1 194 0 5 3 0 0 1 1 255 0 4 1 1 104 1 1 1 90 0 2 1 0 0 0 1 1 0 2 1 5 1 1 173 1 1 0 1 0 3 1 196 0 5 1 1 1 127 0 0 5 0 1 66 0 1 110 0 1 1 182 0 1 90 0 0 1 38 0 0 1 161 1 9 0 0 0 0 0 0 0 2 0 0 1 11 1 0 0 0 4 0 0 0 3 0 5 2 0 0 0 0 0 0 1 0 0 0 0 1 217 0 0 0 1 130 0 2 0 1 1 116 0 5 2 0 3 0 1 1 108 1 0 1 100 1 169 0 2 1 239 1 125 1 0 0 8 0 5 3 0 1 0 2 1 30 0 1 55 0 1 206 0 1 162 0 0 1 0 0 0 0 0 0 0 1 1 218 0 1 1 156 0 0 0 3 0 3 0 1 206 0 0 0 0 0 2 1 1 172 1 96 1 0 1 1 221 1 104 0 2 0 5 0 0 0 1 1 145 1 208 1 0 0 1 178 1 107 1 121 0 4 0 0 5 1 1 0 2 1 84 0 1 95 1 1 1 218 0 5 1 0 2 1 0 3 0 2 1 157 0 1 0 0 0 1 1 162 0 0 0 1 89 1 99 0 1 1 103 1 0 1 1 150 0 0 0 1 108 1 27 0 0 0 4 1 212 1 120 1 129 0 3 0 0 1 0 4 1 195 1 0 1 1 49 1 145 0 0 0 0 0 1 0 1 0 2 1 172 1 191 0 0 0 5 0 3 1 55 0 1 63 1 116 0 2 1 225 1 106 0 1 0 2 1 203 1 105 1 0 1 1 160 0 1 0 5 0 1 134 0 1 0 3 0 0 1 119 0 0 1 19 1 103 1 12 1 222 0 0 0 0 1 0 0 1 98 0 1 1 1 110 0 1 249 1 217 1 1 0 2 1 0 2 1 220 1 118 1 141 0 0 1 0 0 1 15 0 1 189 0 1 117 0 3 1 212 0 0 0 1 0 5 0 0 5 0 0 0 0 0 1 15 1 253 1 175 1 200 0 0 1 1 49 1 170 0 4 0 1 1 253 1 201 1 1 0 0 1 1 248 1 1 1 248 0 3 1 1 192 1 1 1 186 0 5 0 0 0 0 0 0 1 1 129 0 0 1 214 0 0 0 1 1 226 1 231 0 1 0 2 0 4 1 195 0 0 5 0 0 5 0 0 1 0 0 1 1 75 1 47 0 4 0 0 1 197 1 230 0 0 0 1 1 132 0 0 1 1 213 0 1 87 1 113 0 2 1 232 0 0 3 1 0 1 0 1 1 211 0 0 1 56 1 249 0 5 2 0 1 1 0 5 1 1 234 1 1 0 4 0 4 0 5 0 0 3 0 4 0 1 53 0 1 1 0 3 1 141 1 81 0 0 1 10 1 1 73 0 0 1 1 26 1 31 0 3 1 0 1 0 0 0 0 0 1 165 1 222 1 1 0 5 0 0 1 1 18 0 1 122 0 1 76 1 46 1 149 0 0 0 1 1 0 0 1 71 0 5 0 0 0 0 1 30 1 1 131 0 1 0 5 0 1 0 0 4 0 1 171 1 57 0 2 1 63 0 0 2 1 1 182 0 5 1 1 0 0 0 0 1 213 1 232 0 0 0 0 0 1 1 182 0 5 2 0 1 236 0 0 0 0 2 1 4 1 79 0 0 0 4 0 5 1 1 1 47 1 53 0 3 0 3 0 3 0 0 0 1 211 1 235 1 140 1 253 0 0 1 235 1 0 1 0 2 1 111 0 1 226 1 1 227 1 1 188 1 0 1 0 3 1 137 0 2 0 1 166 0 5 1 0 0 0 0 0 1 221 0 0 0 0 1 176 0 4 1 78 1 1 1 151 1 173 0 0 0 4 1 227 0 4 0 0 5 0 0 3 1 243 1 193 0 0 1 155 1 202 1 0 0 1 1 0 4 0 2 1 215 0 4 1 0 5 0 1 93 0 5 1 0 1 0 5 1 80 0 4 0 5 0 1 1 57 1 212 1 1 0 5 1 97 0 3 2 1 132 0 0 5 0 1 1 17 0 1 1 0 3 1 50 0 4 0 0 3 1 155 0 5 1 1 0 2 0 5 0 1 57 1 1 0 1 0 5 0 3 0 1 0 5 0 5 0 1 1 23 0 0 0 1 128 0 2 1 0 1 0 5 1 64 1 0 5 0 4 0 5 1 17 0 0 1 70 0 1 197 0 0 0 2 0 0 1 65 1 1 201 1 0 3 1 146 1 1 181 0 1 86 0 2 0 1 0 2 0 0 1 28 0 1 81 0 2 1 0 5 0 1 160 1 132 0 4 0 0 1 1 125 0 2 1 1 202 1 1 0 5 1 241 1 85 1 49 0 1 0 3 0 1 138 0 2 0 1 1 127 1 0 0 4 1 148 1 91 0 0 1 168 0 1 254 0 1 1 21 1 196 1 1 1 108 0 1 0 3 1 133 0 3 1 0 3 0 1 0 4 0 4 0 1 0 4 0 2 1 53 1 112 0 1 0 5 0 1 1 177 1 0 2 0 3 1 48 1 219 1 0 0 4 1 0 0 3 1 135 0 1 1 21 1 65 1 0 1 247 1 14 1 111 0 0 0 1 226 0 0 0 0 0 2 0 2 0 2 0 2 0 2 0 4 0 4 0 0 0 2 0 3 0 0 1 106 0 0 1 0 0 0 1 1 224 0 4 1 254 0 1 1 182 1 60 1 1 0 4 0 0 0 2 0 0 1 81 0 0 0 1 105 1 0 3 0 1 253 1 199 1 176 0 0 1 167 1 44 1 12 1 1 1 22 0 0 1 0 4 0 4 0 2 1 72 1 1 34 1 0 1 1 193 1 108 0 2 1 180 1 233 0 1 0 0 0 2 1 92 0 3 0 0 5 0 0 4 1 0 1 0 2 1 219 0 3 1 1 214 1 0 3 0 1 0 0 1 34 0 3 1 38 1 1 170 1 1 0 5 0 1 32 0 1 1 10 0 5 0 1 246 0 5 0 1 121 1 0 1 1 54 1 144 1 141 0 5 2 0 0 0 0 0 0 0 0 0 1 217 1 246 0 0 1 125 1 37 1 70 0 3 1 0 4 0 1 0 5 1 0 1 0 1 1 139 0 1 0 0 1 209 0 3 0 4 1 7 1 1 54 1 177 0 1 1 6 1 1 0 3 0 0 1 93 1 0 4 0 0 1 54 1 1 19 0 0 2 0 0 0 3 1 38 1 0 3 1 140 0 5 0 0 1 134 0 1 1 100 0 0 5 1 0 0 1 183 0 0 0 0 1 155 0 3 1 195 0 0 0 0 1 4 1 187 1 1 1 42 0 1 85 1 112 1 1 1 117 0 1 62 1 172 0 0 0 0 1 19 1 76 0 0 0 0 1 66 0 1 135 1 0 0 1 191 1 1 14 0 0 1 0 3 0 0 0 0 8 1 194 1 2 0 5 1 0 5 0 0 0 1 70 1 0 2 0 1 0 2 1 73 1 92 0 1 0 5 1 0 4 1 0 5 0 0 3 0 0 0 0 3 1 153 0 4 0 0 0 0 4 0 1 1 248 0 4 1 219 1 0 1 78 1 214 0 0 0 0 0 0 0 0 0 5 1 0 1 1 12 0 0 0 0 4 0 2 1 217 0 0 1 243 1 0 0 0 4 1 1 134 1 0 0 1 252 1 198 1 0 1 54 0 0 0 0 0 0 1 132 1 0 2 0 3 1 33 1 1 0 2 0 1 0 3 0 0 1 252 1 129 0 0 0 0 0 0 1 235 1 240 0 0 1 135 1 92 0 0 1 1 127 0 0 1 0 1 1 0 2 1 167 1 90 1 1 0 1 1 164 0 5 1 1 0 1 0 0 0 1 1 205 1 205 0 4 0 0 1 59 1 1 233 0 1 1 56 0 3 0 0 0 2 0 0 0 0 0 0 1 187 0 0 0 5 0 0 0 1 196 0 0 0 1 9 1 84 0 1 0 3 1 240 0 4 0 5 0 1 202 1 1 0 3 1 101 0 2 1 0 0 1 252 0 3 0 1 0 5 0 3 1 188 1 39 0 1 1 110 0 0 2 1 125 0 0 5 1 212 0 3 0 0 1 51 1 0 1 156 0 1 1 191 0 2 1 183 1 0 1 0 0 1 0 4 1 251 1 1 3 1 224 0 1 0 4 0 1 195 0 9 1 211 0 0 1 117 1 1 182 0 1 0 0 0 0 0 1 1 58 1 159 1 97 0 1 1 133 0 0 0 0 0 0 0 0 9 1 92 0 5 0 0 0 1 138 0 2 0 1 95 1 34 0 1 0 2 0 0 9 0 2 1 68 0 1 0 5 0 0 3 1 0 4 1 100 0 1 9 0 4 0 0 1 0 2 0 1 1 13 1 1 132 0 1 0 8 1 231 0 0 9 0 3 0 0 0 0 1 23 1 225 0 1 1 239 1 0 4 1 175 0 0 0 0 0 1 198 0 9 0 0 5 1 88 0 1 144 1 1 143 0 1 52 0 0 0 1 220 1 93 1 0 0 1 1 90 0 0 0 1 98 0 0 1 1 81 1 1 187 1 1 182 1 1 175 1 30 0 1 1 105 0 1 131 1 152 0 1 0 4 0 3 1 240 1 0 0 1 133 0 9 1 0 3 0 7 0 0 1 89 1 0 0 0 4 0 0 1 133 0 1 55 0 0 9 0 4 1 176 1 0 7 0 0 1 3 1 0 6 0 0 0 0 0 0 0 8 0 3 0 2 1 251 0 7 1 0 0 0 1 72 0 0 0 0 0 0 1 158 0 0 1 181 0 0 1 112 1 134 0 0 0 1 0 0 0 0 1 0 4 0 1 117 0 0 1 129 0 2 1 0 3 1 25 1 194 1 1 1 173 1 0 0 0 0 0 1 0 5 1 0 1 1 84 1 0 0 1 250 1 213 1 187 1 40 0 0 0 1 1 156 1 8 1 176 0 1 0 5 0 1 1 245 0 4 0 1 128 1 126 0 0 0 0 0 0 0 2 0 0 1 75 0 1 242 1 0 0 0 0 1 28 1 1 72 0 1 153 1 211 0 0 1 111 0 0 1 1 142 0 1 102 0 1 1 0 1 1 1 116 0 5 1 1 1 243 0 1 1 63 0 5 0 0 4 0 1 204 0 0 0 3 1 42 0 5 3 0 0 4 1 97 1 1 69 0 0 0 0 0 0 0 1 127 1 89 0 0 0 1 92 1 104 1 131 0 0 0 1 0 0 0 0 1 210 0 1 1 230 0 1 1 55 0 0 0 1 0 4 1 243 0 2 0 1 219 0 0 0 1 0 1 0 0 0 2 1 224 0 2 0 0 0 0 4 0 3 0 0 0 5 2 1 49 0 0 0 0 1 16 1 121 1 246 0 5 0 0 1 1 195 1 200 0 5 2 0 1 1 23 1 83 1 1 0 5 1 1 245 1 18 1 82 0 0 1 0 4 1 1 12 1 12 0 0 1 0 1 0 0 1 201 1 0 3 1 43 0 0 0 1 96 1 173 0 0 0 0 0 0 0 3 1 1 35 0 0 1 0 4 1 0 5 1 0 1 1 113 0 1 46 1 1 218 1 95 0 4 0 0 5 2 0 0 0 0 0 1 0 2 1 213 0 3 0 1 175 0 1 1 1 62 0 1 56 0 2 1 193 0 0 1 1 1 217 1 29 0 0 0 0 0 5 1 0 2 0 5 0 1 201 1 1 224 0 0 0 2 0 0 1 78 1 0 1 243 1 178 0 0 0 9 0 1 0 9 1 15 0 0 1 0 0 1 67 1 4 1 1 1 166 1 1 114 0 0 1 1 22 1 1 0 0 0 2 1 129 0 0 1 0 1 0 2 1 145 0 0 1 202 1 0 0 1 0 0 0 4 1 40 1 0 4 0 3 0 0 1 252 1 0 3 1 2 0 4 0 4 0 0 3 1 142 1 147 1 1 0 2 1 158 1 129 1 0 1 156 1 185 1 82 1 183 0 0 1 79 1 0 0 1 131 0 0 0 1 0 1 1 39 0 3 0 5 1 1 168 1 1 0 3 0 5 1 1 27 0 1 180 0 1 0 2 0 5 2 0 0 1 30 0 0 1 128 0 0 1 63 1 208 1 28 0 1 0 5 2 0 1 189 1 74 0 0 0 0 1 0 3 0 4 0 0 0 4 1 172 0 0 0 1 88 1 187 0 5 0 1 1 92 0 0 1 210 0 0 0 1 103 0 0 1 80 1 19 1 0 0 0 0 0 0 1 237 1 154 1 136 1 1 0 1 0 1 189 0 0 0 0 0 0 1 207 1 248 0 1 0 0 0 3 1 233 0 0 3 0 0 1 135 1 228 1 232 1 0 0 0 0 0 0 1 204 0 0 1 153 0 0 1 0 0 0 1 75 1 214 0 1 1 1 61 1 1 1 213 0 5 1 0 0 0 0 0 0 0 1 34 0 0 0 0 3 0 0 1 142 0 0 0 0 0 0 1 0 0 0 4 1 150 1 108 1 1 1 244 1 1 34 1 241 0 0 1 172 0 0 1 0 4 0 0 1 66 1 151 0 1 1 215 0 1 126 1 129 1 40 1 0 1 0 0 0 1 1 60 1 1 0 1 0 5 1 0 3 1 39 1 37 1 1 1 48 0 0 0 1 194 1 28 1 144 0 1 1 120 1 0 0 0 0 1 146 1 233 1 55 1 126 0 0 0 0 0 0 1 174 0 0 2 1 21 1 0 0 0 3 0 0 0 0 0 0 1 210 1 1 240 0 0 1 1 146 0 1 151 0 3 0 1 1 22 1 142 1 0 0 0 0 1 1 54 0 1 0 1 1 52 1 203 0 3 0 0 1 30 1 2 0 3 1 1 149 1 1 1 246 1 111 0 0 1 229 1 74 1 69 1 76 0 0 0 0 0 0 0 0 0 1 214 0 5 0 1 90 0 2 1 137 0 4 0 0 2 0 0 0 3 1 0 2 1 117 1 123 1 1 1 149 1 1 143 0 5 1 0 0 1 240 1 173 0 0 1 3 1 125 0 0 1 1 172 1 0 0 0 1 147 1 3 0 1 0 4 0 0 0 3 0 3 0 1 1 211 1 140 1 146 0 3 0 4 0 4 0 0 1 1 224 1 86 1 22 0 4 0 1 0 3 1 174 1 1 67 1 1 1 62 0 5 0 1 194 1 1 0 3 0 5 0 5 0 2 0 2 0 3 1 142 0 1 1 140 1 1 13 1 0 0 3 1 143 0 2 0 0 2 1 29 0 1 165 1 0 3 0 4 0 0 0 0 1 52 0 0 1 0 2 0 2 0 4 0 5 1 24 1 1 99 1 1 77 0 4 1 12 0 4 1 162 0 1 0 5 0 1 63 1 1 0 1 1 90 1 179 0 1 0 0 0 1 1 98 0 1 0 0 5 1 215 1 0 1 0 2 1 249 1 168 0 0 0 0 1 213 1 1 137 1 1 30 1 0 0 1 237 1 0 0 1 72 1 0 0 1 228 0 1 219 1 0 0 1 68 0 1 171 0 0 3 1 123 0 0 1 1 186 0 1 0 5 0 0 1 1 246 0 4 1 0 1 1 0 3 0 5 1 190 1 0 4 0 3 0 0 0 4 0 6 0 0 0 0 1 184 1 155 0 0 1 61 1 1 1 232 1 1 1 69 0 2 1 1 127 0 0 0 0 0 0 0 1 16 1 0 0 1 47 0 0 1 131 1 215 0 1 0 3 1 125 1 203 0 0 0 1 108 0 0 1 209 0 3 1 1 59 1 0 0 0 0 2 1 168 1 179 0 1 0 3 1 32 0 0 1 1 231 1 0 0 0 1 1 117 1 1 198 1 1 65 0 0 0 1 0 0 0 1 133 1 189 1 0 1 62 1 90 0 0 0 0 1 2 1 0 0 1 9 0 1 97 0 0 0 0 5 0 0 0 1 114 1 0 3 0 0 0 0 1 163 1 0 0 1 253 0 0 1 109 0 0 1 69 0 1 160 1 1 0 0 1 45 1 218 1 1 1 2 1 0 0 1 63 1 87 0 1 0 4 0 0 0 3 1 136 1 113 0 1 1 236 1 0 3 1 110 1 1 77 1 0 1 124 0 0 1 235 1 239 0 1 1 142 0 1 45 0 0 0 3 1 0 5 0 1 65 0 0 0 2 0 0 1 125 0 0 3 0 1 1 4 0 3 0 1 1 143 0 0 0 0 1 124 1 244 0 0 0 0 1 182 0 0 0 0 0 1 1 117 1 241 0 1 1 42 1 0 5 0 1 180 0 1 246 1 58 0 0 1 123 0 0 0 4 0 1 1 107 1 229 1 1 0 4 1 1 253 1 1 1 137 1 0 1 0 5 0 0 2 1 218 0 0 0 0 0 0 0 0 1 131 1 90 1 21 1 184 0 0 0 0 1 252 1 48 0 0 0 1 0 0 0 1 1 105 1 0 2 0 2 1 6 1 1 106 0 1 46 1 85 0 0 0 0 1 146 1 90 0 0 0 0 1 114 0 1 210 1 0 3 0 8 0 3 0 0 1 1 239 0 0 0 1 1 70 1 121 0 5 2 1 0 3 0 0 0 0 2 0 0 1 17 1 139 0 0 1 0 3 1 248 1 229 1 1 1 238 0 0 1 1 7 0 0 0 1 1 19 0 3 1 223 1 137 0 0 0 1 1 122 1 1 237 0 0 0 0 1 128 0 0 0 0 0 0 0 0 2 1 40 1 110 0 1 1 1 197 0 0 1 207 1 119 0 4 0 0 1 253 1 223 0 2 1 75 1 1 97 1 0 0 0 2 0 1 1 51 1 145 0 1 1 231 0 0 3 0 1 1 248 0 0 0 1 125 1 178 0 0 1 106 0 2 1 0 2 1 175 0 6 1 249 0 7 1 0 5 1 1 184 0 7 1 0 3 0 3 0 0 1 189 0 1 101 0 1 114 0 1 125 1 1 156 1 255 1 0 0 0 0 1 114 1 0 1 183 0 0 0 1 0 2 0 0 0 3 0 2 0 2 0 4 1 22 1 1 0 1 0 3 1 87 1 1 1 0 1 53 0 0 1 0 1 1 1 1 55 1 185 1 1 1 47 0 1 1 243 1 204 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 1 203 0 0 0 2 1 1 123 0 4 0 0 0 0 0 0 1 176 0 4 0 3 1 1 33 1 127 1 1 1 108 0 0 0 0 0 0 0 0 0 0 0 1 7 1 83 0 0 1 0 3 0 3 0 0 0 5 0 0 1 1 181 0 5 0 0 1 33 0 4 1 85 0 1 1 163 1 75 1 0 1 0 0 0 2 0 4 1 21 1 105 0 0 1 84 0 0 0 2 0 3 3 5 0 0 1 253 1 220 1 186 0 3 0 0 0 1 84 0 0 1 0 4 0 0 0 4 0 5 1 56 0 1 182 1 0 1 1 45 0 1 1 0 2 0 2 0 4 1 189 0 0 0 1 111 0 0 1 1 182 1 244 0 5 1 0 2 1 13 1 0 1 0 0 1 96 0 0 1 105 1 125 0 0 1 165 0 0 0 0 0 0 0 5 3 0 0 0 0 1 249 0 0 0 1 1 85 1 198 0 5 2 1 65 0 3 0 1 0 4 1 76 1 221 1 0 0 1 1 96 1 148 0 1 0 3 0 3 0 4 0 4 0 5 0 0 4 1 181 0 0 1 179 0 1 174 1 1 0 3 0 1 1 189 0 1 1 152 1 96 1 28 1 168 0 1 1 152 0 1 0 0 0 0 1 205 1 0 1 1 10 1 60 0 2 0 4 0 3 1 22 1 195 0 1 0 1 0 0 0 0 1 208 1 32 0 0 1 0 1 0 3 1 45 0 4 0 2 1 0 4 1 115 0 1 238 1 225 0 4 0 1 0 5 0 0 4 0 4 1 34 1 131 1 167 1 0 1 0 3 0 0 0 3 1 0 3 1 215 0 2 0 2 0 3 0 2 1 221 0 1 55 0 5 0 0 1 215 0 1 0 3 0 1 0 1 0 2 1 120 0 1 0 5 0 1 152 0 0 1 141 0 3 1 22 0 1 177 0 0 1 255 1 162 1 94 1 152 1 80 1 1 1 150 0 0 1 1 112 0 5 1 0 0 0 1 0 3 1 57 0 2 0 2 0 3 0 0 5 1 155 1 173 1 0 0 4 0 0 
\ No newline at end of file
+2 3 4 1 3 0 1 0 2 0 2 3 4 2 0 5 1 2 4 0 1 1 0 3 1 0 2 4 1 0 0 2 4 0 2 0 3 0 3 2 4 1 4 1 1 0 2 1 0 0 2 0 1 4 1 4 0 2 0 0 1 1 1 0 0 1 1 0 0 5 4 0 2 3 0 0 1 3 3 0 1 3 2 4 1 1 0 0 1 1 2 3 2 4 1 2 1 2 0 1 2 2 0 3 1 0 3 5 3 3 3 1 0 1 3 4 0 1 1 2 1 1 0 1 1 1 0 5 4 0 0 1 4 0 2 2 2 4 1 0 2 4 1 2 1 1 4 0 0 0 2 0 4 4 0 2 0 0 1 2 1 2 4 0 6 3 4 0 2 4 0 0 0 0 2 4 1 3 1 3 1 2 1 1 1 0 1 1 2 0 0 1 1 2 1 3 2 2 0 1 0 2 1 0 1 0 3 4 1 3 0 0 0 1 0 0 2 4 1 3 0 2 0 2 1 3 0 1 1 2 1 2 1 4 1 1 2 1 3 3 4 1 0 1 1 1 0 3 3 4 0 5 0 5 1 1 4 1 0 3 3 2 4 1 4 0 0 1 0 2 1 2 1 3 2 1 1 0 1 1 4 1 0 1 2 2 0 1 0 0 1 1 0 2 2 0 5 2 4 1 3 1 4 2 1 2 1 0 2 1 4 2 0 1 0 1 1 4 0 2 0 2 1 2 4 1 0 3 4 0 1 1 0 3 1 1 0 0 2 0 3 4 0 0 0 2 0 1 3 4 4 0 1 4 1 0 4 0 1 1 1 0 0 0 6 1 2 4 1 0 2 4 0 1 0 0 3 2 3 0 0 2 4 3 4 3 3 1 2 3 1 0 2 2 4 1 3 0 0 1 0 0 1 1 4 1 0 4 0 0 1 2 1 1 3 0 2 2 2 4 2 1 3 3 3 0 0 0 0 6 4 0 0 0 2 2 4 1 1 1 3 4 0 1 2 1 1 3 4 0 4 4 1 0 3 0 3 1 4 1 1 0 2 2 3 3 0 2 2 0 2 0 7 0 3 2 1 1 3 0 4 1 1 3 0 2 1 2 0 6 4 2 4 1 2 1 0 0 1 3 1 1 0 0 2 0 5 2 2 2 3 4 1 2 0 1 1 1 0 4 1 1 3 3 0 0 2 4 0 0 0 1 0 3 4 1 3 0 1 0 2 0 2 1 2 4 4 0 1 4 0 2 4 0 1 2 1 0 1 1 0 2 4 0 2 0 5 2 0 2 2 3 4 2 4 1 1 1 3 0 1 0 0 2 1 0 1 0 0 3 2 4 1 1 0 0 0 3 3 2 0 3 0 4 3 0 0 3 0 6 3 2 2 2 2 4 1 2 4 1 3 1 3 1 2 2 2 0 2 1 2 0 0 2 1 1 0 2 0 2 1 0 0 5 1 2 3 1 2 2 4 1 2 1 0 3 4 4 1 4 0 1 0 2 1 4 0 1 0 1 1 3 0 2 0 0 0 1 0 1 0 0 0 0 1 1 2 3 0 4 0 1 4 0 2 4 0 0 0 2 3 3 0 1 0 3 2 1 0 3 2 4 1 0 1 1 0 1 0 5 0 3 0 0 1 1 91 97 1 113 79 1 4 5 5 0 1 103 98 1 99 103 1 0 41 105 4 19 1 0 3 3 215 176 4 0 68 1 31 2 4 1 115 4 54 20 233 226 2 108 216 5 29 246 231 32 160 144 104 1 2 3 2 246 0 2 1 0 203 0 1 0 22 42 1 99 37 4 1 58 41 0 1 3 29 193 2 113 101 102 0 121 1 124 4 5 0 5 121 94 83 168 232 3 242 12 235 4 203 216 205 4 0 136 94 0 0 112 3 1 1 0 1 1 79 72 1 92 97 1 4 53 35 202 17 158 67 0 99 197 144 2 79 223 4 52 45 123 10 9 221 4 118 20 212 86 249 60 3 47 170 79 61 6 10 3 73 68 0 3 2 151 114 2 1 0 0 2 1 0 2 0 0 0 2 0 1 1 256 54 116 3 3 1 0 0 3 107 5 3 0 1 1 0 0 0 2 1 1 101 3 3 1 1 2 90 0 1 4 0 1 0 0 0 1 1 1 5 0 1 5 83 1 18 1 47 0 26 0 114 0 2 2 65 1 30 1 4 61 1 99 1 30 1 60 1 0 4 0 5 127 0 60 1 54 1 98 1 15 0 2 42 0 75 0 4 103 0 44 0 103 0 33 1 1 1 1 0 2 0 5 97 100 11 50 77 2 1 1 1 118 36 2 148 14 39 2 1 3 4 0 2 24 1 38 67 3 5 3 5 2 61 74 0 13 7 2 0 0 20 137 43 83 155 106 1 1 77 59 124 121 181 111 0 2 98 8 3 0 1 3 126 4 5 0 0 0 1 0 3 0 0 0 1 0 2 1 1 0 120 121 4 29 1 219 77 88 1 0 1 69 207 76 182 32 78 0 0 0 6 146 18 1 1 124 1 15 0 127 47 11 157 1 8 0 36 1 25 41 26 155 0 2 3 2 92 101 5 1 3 144 1 14 4 4 1 0 0 2 0 1 4 0 1 0 0 1 0 6 1 2 4 109 143 3 238 139 194 165 201 188 1 89 234 4 146 244 210 12 30 216 181 0 1 54 10 0 58 9 0 4 2 51 5 5 2 93 0 3 64 0 4 74 0 2 216 0 2 221 0 1 145 1 252 17 0 183 2 2 72 179 0 3 1 0 1 3 2 1 56 75 0 0 4 111 102 1 77 46 0 103 119 4 1 1 0 0 1 72 96 4 1 0 0 1 1 4 0 2 126 54 1 109 64 3 0 2 110 127 0 0 45 122 3 0 1 0 0 3 3 67 49 1 89 120 1 0 1 49 13 3 2 80 101 1 1 1 80 46 0 4 89 13 2 72 44 4 70 73 3 0 1 1 1 40 61 1 0 0 1 1 22 52 1 118 107 3 0 86 0 1 4 55 5 1 0 1 0 0 0 0 43 0 0 4 230 18 0 45 1 1 1 62 54 2 3 3 0 0 1 193 1 0 0 19 1 1 1 136 5 5 5 1 118 0 2 3 1 51 0 2 57 1 125 0 0 2 73 0 52 0 5 2 107 0 62 1 2 99 1 11 1 1 63 1 4 23 1 115 1 103 0 109 1 5 41 1 2 0 50 1 36 1 127 0 4 5 28 0 112 1 110 0 36 0 3 1 1 45 0 4 25 1 56 0 5 0 85 0 1 59 0 2 5 120 0 61 1 19 0 100 1 35 0 4 14 0 110 1 81 1 35 0 3 4 111 0 94 1 44 0 47 1 5 103 0 28 0 0 0 45 0 56 1 5 31 0 74 1 47 0 120 0 19 0 0 2 0 3 89 11 103 85 1 1 1 35 76 4 2 49 0 194 35 0 114 65 0 116 62 1 0 110 114 4 1 0 1 1 1 1 2 198 111 1 1 4 5 0 0 0 115 126 1 0 1 0 3 117 85 0 1 243 20 0 0 0 1 3 0 1 2 1 0 4 39 59 0 0 13 50 1 1 2 0 1 0 0 0 2 88 14 1 1 1 1 0 1 50 94 0 1 185 109 1 0 3 0 0 2 83 94 1 1 1 0 2 18 78 0 0 190 86 1 0 1 0 4 25 66 0 0 150 77 1 1 0 3 1 1 1 2 252 118 0 0 3 0 1 2 0 0 2 0 55 0 1 1 1 1 42 45 1 0 3 0 0 2 78 80 0 1 0 0 1 181 11 1 1 0 0 4 121 125 1 0 0 2 113 115 3 4 93 118 213 156 115 32 21 98 90 79 52 28 4 222 81 198 176 40 52 26 78 143 104 15 151 5 163 124 197 100 124 93 127 52 220 33 68 208 114 33 228 0 0 2 0 1 0 57 7 1 79 41 4 0 4 3 3 109 22 7 171 165 60 4 160 1 188 207 76 97 201 84 158 166 73 0 66 181 81 111 85 8 1 2 36 113 0 5 222 67 24 179 179 0 3 2 244 221 40 70 51 62 0 108 38 84 248 254 5 1 239 11 0 1 3 4 0 0 2 28 0 0 3 23 0 0 1 43 1 0 3 90 116 1 1 1 3 12 3 0 1 3 1 0 2 20 77 0 0 3 0 50 51 16 214 86 6 45 57 26 40 140 16 11 63 2 3 5 3 1 0 2 127 112 1 0 3 40 78 1 0 4 38 75 5 0 0 1 69 1 0 3 31 115 0 1 4 1 0 3 6 93 1 1 4 124 3 0 1 0 1 1 2 77 0 0 1 41 1 1 0 1 101 45 2 1 0 0 46 1 0 3 111 32 2 4 1 1 3 47 1 0 2 1 125 1 1 3 67 0 1 2 5 0 1 3 1 1 3 87 1 1 3 68 0 0 0 105 0 0 3 16 1 4 1 0 1 53 49 1 0 0 103 1 1 3 71 1 1 0 109 99 113 36 208 121 60 76 2 90 50 75 85 61 94 1 5 1 3 109 1 210 121 4 1 0 78 39 12 112 194 104 0 0 45 5 116 126 150 52 0 2 78 111 3 3 2 1 4 0 0 4 2 0 1 3 2 2 1 0 4 106 99 1 123 124 0 0 1 3 140 1 78 4 5 8 2 2 1 0 3 0 0 0 98 119 41 38 0 150 51 18 0 0 1 99 200 90 58 92 36 0 0 0 9 138 144 0 4 64 0 84 1 70 9 222 109 1 79 1 29 0 27 124 180 61 1 1 11 0 25 1 111 33 125 6 0 27 0 3 0 0 0 154 244 0 3 112 1 116 1 46 65 247 252 1 43 0 121 0 6 4 201 175 1 2 18 1 59 1 73 92 96 31 0 84 1 50 0 11 97 47 80 1 2 9 74 2 0 1 1 6 1 1 0 105 83 1 50 18 4 3 3 5 28 74 43 111 60 126 39 2 0 0 75 70 1 61 118 4 1 3 1 11 62 1 86 124 1 4 19 106 11 101 0 13 4 119 206 255 83 217 249 1 19 33 131 58 13 231 4 72 117 80 63 215 202 1 60 152 144 14 203 49 2 86 99 0 188 41 4 1 112 1 3 1 3 1 137 4 3 93 16 13 5 175 134 39 199 156 217 7 2 1 6 1 2 5 175 180 3 54 217 71 214 226 178 2 7 53 2 238 218 1 89 202 2 45 219 131 185 100 1 0 88 104 1 86 115 3 4 2 35 5 1 1 187 0 2 136 0 126 28 1 15 3 255 1 170 212 0 72 2 4 250 250 3 5 0 1 0 1 0 1 5 5 63 77 3 0 1 0 0 37 0 4 22 126 4 1 0 1 0 1 81 29 4 15 89 2 0 0 0 2 31 123 4 0 0 1 1 1 28 101 0 1 3 104 116 2 1 1 1 96 109 3 1 0 1 0 6 51 4 1 0 1 0 1 3 19 16 3 91 110 1 0 1 21 68 4 1 1 1 1 1 3 4 56 0 0 99 31 1 76 3 2 1 0 18 41 0 49 42 3 3 2 1 1 61 0 1 0 60 0 1 0 175 1 3 1 1 0 2 133 179 2 4 1 1 63 0 1 4 84 0 60 0 19 1 114 1 2 4 41 1 10 1 59 1 37 0 5 26 0 54 1 56 0 57 0 92 0 1 3 122 0 59 0 8 1 1 99 1 1 2 130 226 1 2 0 1 121 75 0 1 4 155 3 0 2 1 1 34 1 1 111 1 1 3 94 154 4 3 4 79 123 19 26 49 52 3 0 0 2 160 39 1 0 1 0 0 2 0 0 3 116 66 2 126 8 68 1 3 42 2 5 0 0 2 1 0 0 1 1 4 1 1 1 1 1 0 0 2 1 0 1 61 67 2 0 0 0 3 66 82 190 1 0 0 0 1 0 2 4 86 174 48 44 0 124 48 3 92 20 20 1 2 1 2 28 49 0 1 2 96 0 207 79 4 115 90 0 62 235 0 2 4 0 0 1 14 68 1 0 0 1 1 0 1 0 0 0 4 46 117 0 1 5 0 1 4 1 1 2 156 78 0 1 1 0 4 7 81 0 0 59 14 1 0 1 1 3 144 17 1 0 0 0 2 14 86 1 1 2 63 5 1 4 194 0 0 3 18 113 1 1 1 3 1 0 1 0 2 0 124 145 0 4 2 0 0 0 249 41 0 0 1 0 4 64 22 0 1 186 9 1 0 2 0 1 4 1 1 2 69 88 0 0 5 0 0 0 166 88 1 0 1 0 0 109 6 1 0 0 1 2 0 0 4 233 63 1 1 1 1 1 142 20 1 1 0 0 4 73 50 0 2 1 2 18 11 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 152 1 175 0 0 0 1 1 1 137 1 169 0 0 1 0 5 1 186 0 5 0 0 0 2 0 2 0 4 0 0 1 40 1 136 0 2 1 24 1 0 3 0 1 1 107 0 2 1 83 0 0 3 1 0 2 0 3 1 88 1 1 255 0 0 0 0 1 239 1 202 1 81 0 0 0 0 3 0 3 0 1 1 178 1 0 0 1 242 1 1 171 0 1 0 1 0 2 0 4 0 0 1 76 0 1 48 1 0 0 0 1 0 4 1 33 0 0 0 1 129 1 1 218 0 1 244 1 194 0 0 1 50 1 0 5 0 1 1 149 1 181 0 0 1 0 3 0 2 0 2 1 190 1 1 79 0 2 1 1 158 0 1 20 0 0 0 0 1 235 1 245 0 2 0 0 1 98 1 136 0 2 0 1 0 4 0 0 0 1 22 0 0 0 3 0 4 1 41 0 5 0 1 70 0 1 0 2 1 236 1 1 77 1 0 3 0 2 0 1 1 256 1 0 1 0 5 0 1 174 0 1 173 0 2 1 68 1 0 2 0 1 151 1 230 1 249 1 96 0 0 1 0 0 1 1 151 1 80 1 0 0 1 0 5 0 1 15 0 4 1 205 1 0 0 0 0 3 0 1 1 41 1 203 0 0 0 2 0 2 1 105 0 1 183 0 3 1 104 1 1 70 1 0 0 1 116 1 89 0 0 1 99 1 21 0 0 0 0 1 38 0 0 0 0 1 1 90 1 240 1 196 0 1 1 201 1 0 1 245 1 90 1 141 0 0 0 0 1 1 176 0 1 1 74 0 0 4 0 1 10 0 0 1 209 0 3 1 217 0 0 0 0 0 0 0 1 144 0 0 1 1 75 1 10 0 0 0 0 0 0 0 0 1 23 0 0 1 219 0 0 1 238 0 5 0 0 0 1 1 43 0 0 0 0 0 0 1 21 1 72 0 0 1 63 1 1 50 0 0 0 1 0 2 1 140 0 5 0 0 0 1 177 1 1 215 1 0 0 0 1 193 1 171 1 5 0 0 1 0 3 0 2 1 111 1 0 0 1 245 1 236 1 0 1 16 1 124 1 0 1 30 0 0 1 1 92 1 124 1 116 1 143 1 100 1 86 1 1 0 3 0 0 0 1 1 136 1 255 1 221 0 0 1 201 1 1 247 1 1 0 1 1 132 0 0 4 0 0 1 118 0 0 1 221 0 0 1 152 1 185 1 234 0 0 1 36 1 0 0 1 45 0 1 86 0 1 114 0 0 2 0 0 0 0 0 0 0 1 47 0 0 0 0 0 5 0 1 142 0 1 1 227 0 3 1 97 0 0 2 0 1 27 1 124 1 110 0 0 0 0 0 0 0 1 88 0 0 1 30 1 0 4 1 1 143 0 1 0 1 164 0 0 0 1 1 178 1 1 143 1 1 0 2 1 205 0 5 0 1 0 3 0 4 0 4 1 3 1 85 1 56 0 0 1 1 68 1 1 1 209 1 253 0 1 1 49 1 0 0 0 1 78 1 233 1 23 1 195 1 1 1 181 1 0 0 0 0 1 105 0 0 1 23 0 1 0 1 1 236 1 244 1 18 0 1 0 1 0 0 3 1 178 1 51 1 85 0 1 1 207 1 1 1 221 0 4 1 0 3 0 2 1 145 0 3 0 0 2 1 8 0 1 67 0 1 166 0 0 0 0 1 115 0 0 1 7 1 1 14 0 0 0 1 58 1 0 0 0 1 39 1 11 1 1 0 3 1 1 70 0 3 1 183 0 0 2 1 1 148 0 0 1 0 1 1 211 0 0 1 243 0 0 1 243 0 0 1 1 164 0 0 0 0 1 39 1 157 1 194 1 1 0 1 1 1 36 0 2 1 0 2 1 53 1 51 1 23 0 1 1 209 1 0 1 1 209 0 3 0 2 1 73 0 0 1 52 1 246 0 0 1 225 1 0 1 0 0 1 227 1 199 0 1 1 109 0 0 4 1 240 1 0 0 1 120 1 10 0 0 0 0 0 5 2 0 0 1 156 1 141 0 0 1 0 3 1 59 0 1 227 1 0 0 0 0 0 0 2 0 3 0 3 1 65 0 1 1 1 111 0 1 31 1 204 1 164 0 0 1 1 79 1 0 0 0 0 1 59 1 184 0 0 0 0 0 0 0 0 1 214 0 1 62 0 0 0 0 0 0 1 0 0 0 4 0 0 0 0 1 28 1 220 0 0 0 0 0 0 0 1 1 144 0 0 0 1 93 1 20 1 1 1 74 0 1 112 1 17 1 1 0 1 0 0 1 65 1 82 0 0 1 165 1 1 1 17 1 84 0 1 0 5 1 0 0 1 185 0 0 0 0 1 122 0 0 0 0 0 1 1 185 0 1 1 213 1 56 1 153 1 0 0 0 0 0 0 1 65 1 138 0 1 0 3 0 0 1 141 1 0 1 0 0 0 0 0 0 1 68 1 176 0 0 1 245 1 200 0 2 1 49 1 0 1 1 1 92 1 216 1 0 1 1 174 0 0 0 2 0 1 0 1 91 1 51 1 63 1 90 1 1 1 33 0 0 1 0 1 1 230 0 1 1 1 173 0 0 3 1 184 1 1 21 1 1 0 2 1 34 1 4 1 191 0 0 0 0 2 0 0 0 5 0 0 0 1 53 1 108 0 0 1 1 179 1 106 0 5 0 1 120 1 140 1 1 0 5 1 0 1 1 142 0 0 0 2 1 241 0 1 213 1 0 2 0 2 1 78 1 0 0 0 1 203 1 52 1 152 1 233 0 0 0 0 0 1 1 90 0 0 2 1 31 1 228 1 1 0 5 0 1 94 1 186 0 1 0 4 0 0 0 0 0 0 1 7 0 1 213 1 0 0 0 0 0 0 1 188 0 0 0 0 0 1 222 0 0 0 0 1 112 1 164 0 1 1 123 1 236 0 0 1 77 0 2 0 0 1 0 4 1 26 1 183 1 233 0 0 1 1 200 1 135 0 1 1 88 1 1 45 0 3 1 7 0 3 0 0 0 0 0 0 1 1 235 1 96 0 0 0 1 0 0 0 3 1 1 90 1 15 1 132 1 166 1 1 0 2 1 1 245 1 139 0 1 0 1 1 1 16 0 3 1 68 0 1 186 1 1 0 5 0 0 5 0 1 0 3 0 5 1 165 0 3 0 5 0 0 3 1 9 0 2 1 1 179 1 0 1 217 1 164 1 142 1 94 0 1 0 5 0 1 0 5 0 0 1 0 1 48 1 191 1 89 1 159 1 108 0 0 1 1 127 0 4 1 0 0 0 1 1 130 1 185 1 211 0 3 0 1 1 92 0 1 1 0 3 0 0 3 1 256 0 2 1 204 1 6 1 27 0 3 0 0 0 1 205 1 254 0 4 1 0 3 1 1 132 0 1 0 0 0 0 0 0 0 1 155 0 0 1 167 1 81 0 1 0 3 0 2 1 1 50 0 2 0 0 0 1 211 1 149 0 0 1 15 1 48 0 2 1 0 1 1 1 20 1 55 0 0 0 0 0 0 0 5 0 3 1 77 0 1 0 3 1 65 0 0 1 109 1 220 1 183 0 0 1 1 28 0 4 0 1 131 1 128 1 180 0 0 1 0 1 0 1 0 0 1 47 0 0 1 0 5 1 146 0 5 0 0 0 0 0 5 0 0 0 0 1 117 0 0 1 128 1 63 1 85 0 1 1 198 1 0 0 1 0 2 0 1 1 153 0 0 1 1 43 1 1 41 1 1 0 3 0 5 0 2 1 167 1 1 106 0 0 1 0 4 1 177 1 180 1 189 0 0 1 64 0 1 103 0 0 1 1 134 1 202 0 0 1 0 5 0 4 1 147 0 0 4 1 75 1 1 6 1 70 0 0 0 0 0 0 1 159 0 0 1 1 153 0 5 0 0 4 1 0 0 1 49 1 0 3 0 0 0 4 1 163 0 1 0 4 0 4 0 0 1 1 106 1 138 0 0 1 113 1 19 1 19 1 0 1 0 3 0 1 0 3 0 1 0 0 0 3 0 4 1 116 1 245 1 241 1 0 0 0 1 0 0 0 1 0 2 0 0 1 184 0 1 184 0 3 0 0 4 0 4 0 0 1 179 1 85 1 71 1 92 0 0 1 0 5 1 1 0 2 1 178 0 1 176 0 0 0 1 203 0 0 1 142 0 0 1 88 1 250 0 1 1 184 0 0 0 0 1 139 0 8 0 0 0 2 1 141 1 1 180 0 3 1 0 3 1 1 210 0 2 1 49 1 1 121 1 0 0 0 1 0 3 0 5 1 43 1 221 0 0 1 9 1 0 1 1 1 88 0 0 3 1 216 0 2 0 0 3 1 186 1 1 197 0 1 116 1 5 1 141 0 0 1 28 0 4 0 0 2 0 5 0 0 0 2 1 1 58 0 1 0 1 1 46 1 113 1 249 0 1 1 16 0 1 1 55 0 4 1 0 0 0 0 0 1 72 1 205 0 0 0 0 0 1 0 0 0 0 1 201 0 2 1 146 1 31 1 82 0 4 1 1 12 1 0 0 0 3 1 76 1 175 1 252 0 0 0 1 79 1 65 0 2 0 5 1 233 1 0 1 1 220 0 1 0 4 0 1 0 1 198 0 2 0 0 5 1 224 0 5 1 1 168 1 208 0 0 1 138 0 1 0 0 0 0 1 77 0 0 0 0 0 0 0 0 0 0 0 1 199 1 0 0 0 0 1 135 0 0 0 1 25 1 0 0 0 0 0 0 1 8 0 0 2 0 0 0 0 1 161 1 0 0 0 0 1 210 0 1 1 74 1 205 0 1 1 134 1 0 1 0 0 0 0 1 184 1 0 0 0 1 0 0 0 2 0 0 0 0 0 0 1 11 0 1 232 0 0 0 0 3 0 2 1 221 0 0 0 0 5 0 0 0 0 0 2 0 0 0 2 1 90 0 1 106 1 1 68 1 11 1 1 0 4 1 58 1 225 1 1 0 2 0 0 0 0 0 3 0 0 0 3 1 42 0 0 5 0 0 0 0 0 1 0 0 0 1 1 114 1 0 0 1 179 0 0 0 0 0 1 1 167 0 5 0 0 0 1 32 0 0 1 1 179 0 0 1 1 176 0 1 159 1 0 1 168 1 38 1 156 0 0 0 3 1 88 0 1 164 1 0 0 0 1 182 1 108 1 186 1 170 1 114 1 41 0 0 1 0 0 1 241 1 0 1 1 1 87 1 173 0 5 3 1 0 1 0 0 0 1 196 1 81 0 0 1 28 0 1 1 144 1 187 1 1 1 214 1 0 0 1 0 0 1 0 4 1 235 0 0 0 1 104 1 249 0 0 1 0 4 1 255 0 1 1 71 1 107 0 5 0 1 1 145 0 1 1 174 0 5 2 1 0 2 0 1 1 155 0 3 0 1 0 4 0 5 0 1 120 0 2 0 1 33 1 58 0 0 0 1 0 1 0 3 1 85 0 0 1 134 1 142 0 0 0 3 0 2 0 2 1 176 1 0 2 1 62 0 0 4 1 1 229 1 136 0 4 1 144 1 0 0 0 1 244 0 0 0 1 84 0 0 1 215 0 4 0 3 0 4 1 147 0 1 1 130 1 165 1 182 0 0 0 0 0 0 0 2 1 123 0 2 1 222 1 203 1 160 0 1 1 234 0 0 1 85 0 0 0 0 1 1 33 1 233 1 1 1 124 0 1 1 253 1 96 1 222 1 158 0 0 0 0 1 197 1 51 1 131 0 2 0 2 1 74 0 0 1 0 5 0 1 94 1 49 0 0 1 1 94 1 37 0 4 0 4 0 1 1 38 0 5 0 0 0 1 0 2 1 123 1 1 142 1 1 205 0 0 0 0 5 1 242 1 255 0 0 1 56 1 68 0 1 1 150 1 0 0 1 94 0 0 0 2 1 146 1 202 0 1 1 125 0 1 228 0 3 1 1 128 1 1 1 137 1 80 1 180 0 4 0 0 1 1 11 0 5 0 0 4 0 0 0 1 188 1 37 1 222 1 30 0 0 0 1 1 83 0 2 0 0 1 123 0 1 0 1 0 1 0 1 1 23 0 0 0 0 0 4 1 251 1 0 5 0 0 2 1 1 237 0 2 0 0 1 197 1 1 140 0 0 2 1 228 0 1 40 0 1 0 5 1 226 0 5 0 1 1 206 1 0 5 1 134 0 0 5 1 150 0 0 1 200 1 171 1 188 1 0 0 0 0 0 1 173 1 151 1 97 0 0 1 45 1 19 1 1 0 1 0 3 1 201 1 0 2 0 0 1 190 0 1 1 253 0 4 1 185 1 0 0 0 0 0 1 34 1 185 1 58 0 3 1 149 1 1 1 228 1 173 1 0 1 1 169 1 77 0 1 1 0 3 1 0 0 1 161 1 0 1 1 0 2 1 108 0 4 1 140 0 1 0 4 1 23 0 1 25 1 57 1 243 1 1 1 83 1 1 1 163 0 1 0 0 1 0 4 0 0 0 0 1 210 0 0 4 0 0 1 85 0 1 190 0 1 208 0 0 1 224 1 1 162 1 0 0 4 1 79 0 1 1 183 0 0 1 1 0 5 0 3 0 5 0 4 1 88 1 73 1 1 0 0 1 81 1 87 0 0 0 0 0 0 0 0 0 3 0 3 1 102 0 5 0 1 0 2 0 3 0 2 0 3 0 0 1 124 0 5 0 1 1 63 0 0 4 0 4 1 250 1 161 1 46 0 0 0 4 1 1 228 1 230 1 1 0 2 0 1 0 5 1 152 1 72 1 218 1 1 0 4 0 0 1 0 0 1 106 0 1 187 0 0 1 0 3 1 242 0 0 0 1 25 0 5 0 0 1 1 100 0 1 185 0 1 1 46 0 5 0 1 71 0 1 1 84 0 5 0 0 0 0 1 40 1 146 0 0 1 190 0 1 0 1 0 1 0 1 0 0 0 3 0 1 0 5 0 0 4 0 0 0 1 161 0 0 0 0 1 235 1 221 0 0 1 188 1 238 1 1 0 2 0 0 0 1 144 0 6 0 0 1 1 178 1 46 0 1 0 5 1 0 1 1 87 1 191 0 0 0 1 1 200 1 51 0 0 1 231 0 0 0 1 1 31 1 123 0 1 1 60 1 0 1 145 1 18 1 232 1 11 1 236 1 80 0 3 1 1 123 0 0 1 0 5 1 0 3 1 154 1 0 1 1 1 69 0 2 0 3 0 1 1 159 1 1 158 0 1 0 1 1 253 1 2 1 95 0 0 1 1 151 0 1 1 0 2 0 0 1 209 0 0 1 120 0 4 0 3 1 5 1 193 1 1 1 64 0 0 3 1 231 0 1 192 0 1 1 179 0 2 1 39 0 1 0 1 200 1 37 0 0 0 0 1 239 1 61 1 250 1 154 0 0 1 225 1 1 1 0 0 0 0 4 0 0 0 0 0 0 1 124 0 0 1 1 100 0 1 1 113 0 1 1 0 0 1 57 0 3 0 1 1 80 1 208 0 3 0 0 0 1 1 116 1 192 0 5 1 1 88 1 216 0 0 1 0 4 1 0 5 1 1 234 1 0 1 0 0 0 0 1 149 1 154 0 1 0 0 1 80 1 61 1 157 1 1 0 5 0 1 0 2 0 0 0 0 0 1 1 168 1 182 1 251 0 0 1 0 2 0 0 0 0 0 0 1 149 0 3 1 0 0 0 2 0 0 1 209 0 0 0 0 0 0 2 1 188 1 12 0 0 1 97 1 236 1 206 1 0 0 1 222 1 16 1 155 1 0 1 0 1 0 4 0 2 1 118 0 2 1 108 1 1 126 1 1 0 0 0 3 1 51 0 1 7 1 232 1 230 1 1 0 5 0 1 0 5 0 1 108 1 1 15 1 201 0 3 1 1 222 0 1 0 1 1 22 0 0 0 0 3 0 3 1 208 1 0 3 1 127 1 215 1 0 1 55 0 0 0 3 0 3 0 1 211 1 201 1 164 1 1 0 5 2 0 1 233 0 2 0 0 1 125 1 1 1 145 0 2 0 0 1 0 0 1 5 1 124 1 143 1 211 0 0 0 1 0 2 1 71 0 3 0 0 5 0 5 0 0 1 131 1 175 0 1 0 3 1 234 1 0 0 1 224 1 202 0 0 1 193 0 0 0 5 2 1 131 0 1 252 0 0 1 1 146 0 1 0 3 0 0 0 1 0 0 0 0 0 0 1 39 1 52 0 0 1 138 0 2 1 1 160 1 0 5 0 1 17 1 1 0 3 1 228 0 2 1 0 2 1 96 0 4 0 1 0 4 0 5 1 120 1 86 0 0 0 4 0 4 1 160 1 42 1 250 1 142 0 3 1 0 3 0 1 1 223 0 1 0 4 1 124 1 0 0 0 2 1 243 0 1 1 107 1 167 0 1 0 0 0 2 1 244 0 0 3 1 1 4 0 5 0 0 1 0 0 5 0 1 1 13 0 4 0 1 205 1 256 1 0 1 182 0 5 0 0 0 1 1 92 0 5 0 1 1 23 0 0 2 0 3 0 0 1 150 1 215 1 1 1 130 1 0 3 0 1 0 2 0 0 0 4 1 187 1 1 235 1 0 0 0 0 0 0 0 4 0 1 0 3 1 229 1 1 23 0 0 1 0 3 0 4 0 4 0 0 0 1 1 92 0 1 232 1 0 5 1 41 0 0 1 0 4 1 26 0 4 0 1 28 0 1 0 0 0 0 1 237 0 2 0 2 0 2 0 1 35 0 2 1 104 1 0 4 0 1 0 1 0 3 0 0 1 29 1 237 1 203 0 4 1 44 1 1 0 3 0 1 0 1 1 1 202 1 214 1 97 1 1 1 81 0 1 1 55 0 5 1 0 0 0 4 0 3 0 4 1 198 0 3 0 0 0 0 2 0 0 0 1 1 210 0 1 1 8 1 0 3 1 0 4 0 0 0 3 0 4 0 2 1 159 1 1 41 1 45 0 5 1 1 129 1 232 0 1 0 0 0 1 0 2 0 2 1 201 1 98 1 0 0 5 1 59 1 1 43 0 1 151 0 1 0 3 0 3 1 0 1 1 107 1 0 0 1 215 0 3 0 1 1 117 0 3 0 0 3 0 3 0 0 0 0 1 0 0 1 221 0 0 0 0 3 0 1 0 0 1 185 1 28 0 2 1 1 229 1 0 1 27 1 198 0 4 1 148 1 0 1 1 237 1 132 1 211 0 1 1 135 1 0 1 86 0 4 0 1 196 1 210 1 229 1 0 0 0 0 0 1 142 1 116 1 155 1 134 0 0 0 3 1 68 0 1 0 2 0 1 1 105 1 155 1 209 1 1 0 2 1 1 119 1 127 0 1 1 63 1 0 0 0 0 0 0 0 0 3 1 185 0 5 0 1 212 0 3 1 219 1 1 222 0 1 0 3 1 251 0 1 216 1 0 1 150 1 140 1 231 0 2 0 4 0 3 1 1 121 1 229 1 0 1 1 123 1 246 0 3 0 0 1 0 1 1 104 1 246 1 156 1 1 0 2 0 0 2 0 4 1 68 1 0 4 1 0 0 0 0 1 60 0 4 0 4 1 226 1 38 0 1 0 1 1 0 0 1 211 0 4 0 2 0 1 55 0 0 0 2 1 196 0 0 1 147 0 0 0 4 1 2 1 122 0 0 0 1 0 1 0 3 1 5 1 1 0 0 0 3 0 1 1 131 1 86 0 1 0 2 0 3 1 244 0 1 161 1 1 67 1 11 1 144 1 1 1 98 0 0 0 4 0 1 1 121 0 4 0 1 77 1 249 1 1 0 4 0 0 0 3 0 1 0 5 0 0 0 0 1 191 1 1 150 1 0 3 5 1 158 0 1 244 1 0 0 0 1 1 89 1 0 0 0 0 1 162 0 1 198 0 0 4 0 1 1 22 1 151 1 1 1 109 0 1 60 1 153 1 1 1 10 1 1 199 1 193 1 234 1 125 0 4 0 0 1 0 0 1 141 1 120 1 1 0 0 1 148 0 4 0 0 1 218 0 0 0 2 1 248 0 4 1 151 1 1 0 5 0 0 5 0 0 5 0 0 1 0 2 1 225 1 0 0 0 1 146 0 5 0 0 2 1 142 1 3 1 1 0 3 1 218 1 96 0 0 0 0 0 1 116 1 139 1 203 0 0 1 188 0 0 1 55 1 126 0 0 0 1 1 252 0 1 1 1 9 0 1 169 0 0 0 0 0 6 0 0 1 179 1 1 23 1 1 227 0 0 0 0 1 250 0 0 0 0 1 1 38 0 0 1 0 1 0 1 78 1 174 1 55 1 255 0 0 1 1 109 1 51 0 0 1 0 3 0 5 0 1 179 0 0 1 1 213 1 0 2 1 90 0 0 1 1 11 0 1 1 42 1 0 3 1 1 0 0 3 0 0 8 0 4 1 110 0 1 0 0 3 1 128 1 123 1 1 0 5 2 0 5 1 163 1 0 8 0 1 0 7 0 5 0 8 1 105 1 0 7 1 88 0 0 0 0 7 0 8 1 255 0 1 55 1 0 3 0 6 1 30 0 0 3 0 2 0 0 1 0 3 1 151 0 0 0 3 0 2 1 96 1 0 5 0 1 206 1 250 1 1 0 5 0 1 124 1 228 0 5 2 0 1 0 1 0 0 1 27 0 0 0 4 1 21 1 22 1 5 1 116 0 0 0 1 1 4 0 1 1 167 0 0 5 0 1 1 64 0 2 0 0 0 1 210 1 184 0 0 1 0 3 0 1 0 4 1 224 1 38 0 0 1 105 1 149 1 169 0 1 0 3 1 1 70 0 4 0 1 29 0 1 1 178 0 0 1 0 3 1 18 1 256 1 1 0 0 0 0 1 199 0 0 1 91 0 0 0 0 0 0 1 255 1 165 0 1 1 68 0 1 116 1 0 1 1 162 1 85 0 2 0 1 0 4 0 3 1 156 1 147 0 0 1 152 0 0 0 0 0 1 225 0 5 2 0 2 1 0 2 0 0 0 3 0 0 0 0 1 30 1 94 0 2 0 0 1 20 1 103 1 169 1 202 0 0 1 1 128 0 0 0 0 0 0 0 1 1 117 1 33 1 1 1 251 0 1 167 0 3 1 1 100 1 1 105 0 0 0 0 1 89 0 3 0 1 136 1 14 1 235 1 0 0 1 154 0 0 1 15 0 0 1 1 175 1 13 1 29 0 0 1 1 178 0 5 1 1 0 4 0 0 0 3 1 253 0 0 0 2 1 47 1 1 61 1 1 0 1 0 0 1 81 1 1 116 1 1 113 0 2 0 1 205 0 0 0 0 1 235 0 3 1 0 4 0 3 1 120 1 0 1 0 1 245 1 116 0 3 1 179 0 0 1 0 2 0 0 1 61 0 1 191 1 0 2 1 167 1 1 123 0 1 204 0 0 0 3 0 1 1 144 0 1 196 0 1 241 1 23 0 0 0 0 1 213 0 2 0 1 180 0 0 0 0 0 0 0 0 1 181 1 47 0 1 1 120 0 0 0 1 26 0 0 0 1 166 0 0 0 0 0 1 0 1 0 3 0 4 1 1 178 0 4 0 4 1 0 2 1 100 1 0 2 1 128 0 0 1 131 1 9 1 0 0 0 0 1 160 1 60 0 0 0 0 0 3 0 1 0 1 1 107 0 0 1 0 3 0 2 1 134 1 0 2 1 36 1 83 0 1 0 4 1 202 1 49 1 11 0 1 1 71 0 0 1 56 0 2 1 80 1 58 1 0 1 248 1 237 1 0 0 0 0 0 0 0 2 0 0 0 0 1 83 0 0 1 1 139 0 1 172 0 0 0 0 1 87 0 0 2 1 0 5 1 0 3 0 0 1 48 1 1 0 1 35 1 200 0 0 0 0 0 0 0 0 5 1 67 1 153 1 129 0 0 0 0 0 1 147 0 0 0 0 1 105 0 3 1 0 3 1 193 0 1 1 1 180 0 0 0 1 64 1 0 0 0 0 1 135 1 0 1 146 0 1 0 0 0 2 1 101 1 0 0 0 2 1 171 1 1 0 0 1 103 0 1 0 1 83 1 118 1 0 0 0 0 3 0 2 0 0 1 89 1 1 242 0 1 192 0 5 0 0 1 189 1 36 1 101 0 1 1 141 1 1 1 219 1 169 0 0 1 82 0 0 0 5 2 0 4 0 0 0 1 178 0 4 0 4 1 1 104 1 225 1 1 1 216 1 0 0 0 1 1 79 1 39 0 0 0 8 1 138 0 1 165 1 0 3 1 1 144 0 1 1 164 1 65 1 1 0 2 0 0 1 84 0 3 0 4 0 0 1 0 2 1 45 1 0 0 0 0 0 7 1 76 0 0 0 1 212 0 0 0 1 124 0 0 0 1 40 0 0 1 1 237 1 64 0 0 1 223 1 189 0 0 0 4 1 0 4 1 220 1 1 0 5 0 0 4 1 10 1 0 0 1 203 0 0 0 1 0 3 1 190 0 1 49 0 0 1 1 84 0 1 1 53 0 4 0 1 233 1 250 1 131 1 1 1 218 1 0 0 0 0 1 0 3 0 3 1 89 0 3 0 0 0 1 75 1 146 0 3 1 0 4 1 0 0 1 247 0 0 2 1 177 1 243 0 4 1 0 0 0 0 0 1 70 1 81 0 0 0 0 1 66 0 0 1 1 141 0 3 1 0 1 0 0 1 35 0 0 1 1 214 0 4 0 5 1 1 145 0 0 1 131 0 0 1 242 0 0 1 182 1 122 1 0 0 0 3 1 52 1 61 0 1 1 1 112 0 0 1 139 0 0 0 1 1 246 0 0 0 0 0 0 1 50 0 5 1 0 1 1 1 250 0 4 1 1 92 0 1 107 0 0 0 3 0 5 1 1 1 197 0 4 0 1 170 1 29 0 0 1 11 0 0 0 1 0 2 0 4 0 1 1 55 0 0 5 0 0 4 1 235 0 4 0 1 159 0 0 1 198 0 0 1 83 1 244 1 66 1 0 1 0 1 0 4 0 1 1 192 0 0 0 5 1 0 0 0 0 0 0 1 55 0 0 1 8 1 36 0 0 1 163 0 4 1 112 0 0 1 111 0 5 2 0 0 0 0 0 1 72 0 1 0 2 1 179 1 208 1 1 0 0 1 249 1 137 1 0 1 148 0 3 0 5 2 0 3 1 0 4 0 0 0 0 1 1 106 1 142 1 0 1 232 0 1 1 156 0 0 1 0 2 1 57 1 56 0 0 0 0 0 0 0 5 0 0 3 0 2 0 1 0 2 0 3 1 187 1 0 5 0 1 134 0 0 2 0 2 0 3 1 140 0 1 181 1 153 0 1 1 128 0 0 0 1 92 0 0 1 67 0 1 31 1 0 0 1 0 0 1 71 1 0 2 0 5 0 1 194 1 1 195 1 124 0 9 1 161 1 111 0 0 0 6 1 59 0 1 110 1 0 0 0 0 1 165 0 1 1 256 1 82 0 1 0 3 1 185 1 100 1 0 1 0 0 0 1 1 111 0 1 39 0 1 237 0 5 1 0 1 152 0 0 1 57 0 0 1 1 111 0 1 253 0 1 0 1 0 0 1 59 0 3 0 1 71 0 5 0 0 1 82 1 62 1 8 0 7 0 2 0 0 1 85 1 1 182 1 0 1 0 5 0 1 93 1 30 0 0 0 0 4 1 227 0 5 1 1 167 0 5 0 1 0 3 1 1 197 0 0 1 192 0 1 51 1 0 1 223 0 8 1 129 1 254 0 1 0 1 1 39 0 4 0 0 1 1 1 192 0 1 0 1 1 183 0 0 4 0 5 1 0 2 1 0 1 1 189 1 249 1 0 0 3 0 2 0 1 0 2 1 34 1 6 0 2 1 25 0 1 211 1 1 0 4 1 54 0 0 0 4 1 191 0 2 1 173 0 0 4 1 0 2 1 43 0 0 2 1 160 1 229 0 4 0 1 1 135 0 0 6 0 0 0 0 1 79 0 1 174 1 73 1 0 0 0 1 0 0 1 183 1 33 1 181 0 4 1 39 0 0 0 0 1 245 0 2 1 236 0 0 0 0 0 3 1 0 5 0 0 3 0 4 1 128 0 0 1 0 0 0 0 0 1 9 0 0 1 1 200 0 3 1 33 0 1 0 5 1 0 1 0 4 0 2 0 0 1 0 2 1 8 0 3 0 0 0 0 3 0 1 1 247 0 1 1 190 1 0 4 1 0 0 0 0 0 5 0 0 0 0 1 235 1 245 1 233 1 52 1 18 0 0 1 253 0 1 211 0 0 0 1 1 199 1 157 1 186 1 0 1 1 1 1 39 0 0 1 0 5 0 0 1 1 113 0 2 1 0 1 1 200 1 90 1 0 0 1 190 0 0 1 1 143 0 0 1 1 1 212 1 62 1 0 0 1 87 1 55 1 39 1 0 1 1 153 1 170 0 0 0 1 146 0 0 1 0 1 1 63 1 51 1 90 1 170 1 1 0 3 1 0 5 0 1 225 0 1 0 0 0 2 0 5 0 2 1 203 0 2 0 0 2 1 132 1 215 0 1 0 0 1 241 1 190 0 5 1 1 0 3 1 0 1 0 5 0 4 0 0 1 163 1 43 1 60 1 203 1 57 0 0 1 157 1 0 0 0 0 1 253 1 1 146 1 0 2 1 141 1 0 7 0 0 0 0 1 0 2 0 4 1 44 0 5 0 1 115 1 103 1 1 1 24 0 0 1 162 1 55 0 3 1 249 1 165 1 1 0 4 1 20 0 5 2 1 1 169 0 0 0 0 0 0 0 1 238 1 69 0 0 1 196 1 254 0 0 1 83 1 49 1 0 1 0 5 0 1 163 1 130 1 1 1 124 1 1 1 27 1 184 1 173 1 16 1 0 0 0 1 154 0 0 0 0 1 189 1 249 0 0 0 1 1 20 0 3 1 0 0 1 168 1 26 0 0 0 0 1 214 1 113 0 0 0 0 1 97 0 0 0 0 0 0 0 1 0 0 0 0 1 35 1 0 0 1 49 1 160 0 1 1 50 0 1 18 0 0 1 129 1 0 0 1 97 0 1 46 1 0 1 47 0 0 1 119 1 0 0 1 1 140 0 0 0 0 0 1 90 0 5 1 0 3 0 0 0 0 0 4 1 205 0 0 0 1 169 0 1 95 0 0 0 0 0 0 1 223 0 0 0 1 68 0 0 0 1 131 1 0 1 66 1 238 1 0 0 0 0 0 1 157 1 1 199 0 6 1 0 3 0 1 1 131 1 154 0 4 1 94 0 1 1 3 1 39 1 1 1 176 1 0 1 176 0 0 0 0 0 0 0 0 0 5 2 0 3 1 185 0 0 1 110 1 1 1 139 0 2 0 0 0 0 5 2 1 79 1 1 164 1 125 1 5 0 0 1 0 5 2 0 0 0 0 1 159 1 194 0 1 1 58 0 0 0 0 0 1 153 1 99 1 1 0 3 1 66 1 140 0 0 1 1 44 0 0 0 0 1 0 0 1 189 0 4 0 4 1 135 1 71 0 0 1 0 3 0 2 1 126 1 134 1 1 1 2 0 1 22 1 159 1 0 0 0 0 3 1 166 1 0 3 0 0 1 136 1 0 0 1 209 0 0 1 120 1 214 0 2 1 0 0 0 1 104 0 4 0 2 1 1 131 1 241 0 1 1 52 0 0 0 0 0 0 0 0 1 171 1 142 0 0 0 0 1 28 1 48 1 79 0 0 1 1 145 0 0 0 0 0 0 1 1 152 0 0 1 0 0 0 5 0 1 68 1 1 110 0 0 0 1 0 0 0 4 1 1 5 0 3 0 3 1 128 0 1 1 145 0 2 0 0 0 0 3 0 1 1 109 0 5 2 0 1 134 0 0 1 1 1 1 1 43 1 231 1 161 1 1 0 2 0 0 0 1 240 0 1 1 3 1 1 19 1 0 1 82 0 0 1 240 0 2 1 0 1 0 1 1 23 0 2 0 3 1 49 0 1 201 1 1 173 0 5 0 0 0 1 0 3 1 78 0 3 1 184 0 0 1 1 29 0 0 3 0 0 0 2 1 1 40 0 5 0 0 0 1 1 163 0 4 0 0 5 1 190 0 0 1 198 1 0 2 1 0 2 1 65 0 1 40 1 0 0 1 40 1 106 0 1 0 4 1 41 1 22 1 1 0 4 0 0 0 0 1 156 1 123 0 0 1 0 0 1 118 0 5 0 0 0 1 0 4 0 4 0 2 0 1 0 2 1 31 1 0 4 1 121 0 1 0 4 1 167 0 4 0 2 0 3 1 46 1 0 0 0 0 0 1 154 1 18 0 0 1 55 1 162 1 180 0 3 1 0 3 1 0 5 2 0 1 1 0 3 0 0 0 4 1 30 0 1 17 1 50 1 0 1 0 4 0 0 1 138 0 1 0 0 4 1 220 0 0 0 0 0 0 0 0 1 33 1 47 1 0 1 63 1 191 1 0 1 1 208 1 135 1 1 0 5 1 0 0 1 210 0 0 1 189 0 0 0 5 0 0 2 1 170 1 28 0 0 1 0 0 1 175 0 5 0 1 1 228 1 0 1 1 143 1 0 5 0 1 1 175 0 3 1 94 0 5 0 1 84 0 1 0 3 1 116 0 0 0 1 93 0 1 1 248 1 1 107 0 0 0 0 3 0 0 1 215 1 4 1 40 1 79 1 240 1 20 1 0 0 1 0 3 0 5 1 0 3 0 3 0 3 1 64 1 0 1 0 2 0 3 0 5 1 141 0 3 0 0 5 1 193 1 0 1 0 5 1 177 0 3 1 1 212 0 0 1 0 4 0 4 0 0 0 2 0 4 1 202 0 1 11 0 2 1 1 167 1 1 115 0 2 0 0 1 82 1 0 0 0 0 0 1 56 0 0 0 0 1 232 1 231 1 166 1 234 0 0 1 49 1 0 0 1 4 0 1 16 0 0 0 1 67 1 1 0 3 0 1 0 3 1 55 0 1 1 1 195 1 0 2 0 2 1 124 1 0 0 0 1 65 0 0 0 0 1 112 0 3 0 2 1 208 0 1 1 53 1 222 1 1 1 158 1 1 0 5 0 0 0 0 5 0 0 3 0 0 0 2 0 1 0 0 1 110 1 131 1 32 1 236 0 0 0 0 0 1 0 1 0 2 0 4 1 156 0 0 3 1 56 1 0 5 0 1 77 1 118 1 158 1 1 0 0 0 0 1 1 31 1 166 0 1 1 15 0 0 1 1 1 74 1 3 1 0 1 1 254 0 5 0 0 5 1 0 0 1 0 0 0 0 0 2 0 2 1 197 1 64 1 1 0 2 0 3 1 198 0 0 3 1 143 0 0 0 0 0 0 0 0 0 4 0 1 1 154 0 5 1 0 0 1 0 4 0 2 0 0 1 221 1 108 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 231 0 0 3 3 2 0 1 1 27 0 0 0 1 22 0 0 0 1 199 0 0 0 3 1 58 0 1 227 1 1 0 3 1 204 0 1 120 1 0 0 1 1 61 0 5 1 1 66 1 77 0 0 0 1 249 0 0 0 0 1 53 1 90 1 21 1 1 0 1 1 185 0 1 1 254 1 193 1 1 1 76 1 0 0 0 1 126 0 0 0 2 0 5 2 0 0 1 1 203 1 94 1 104 1 1 1 73 1 0 1 127 0 3 0 5 1 0 3 0 4 1 6 1 0 1 0 3 0 5 0 0 5 0 0 0 1 233 0 1 0 1 0 4 0 0 0 1 14 1 98 0 0 1 2 1 62 0 0 1 136 0 0 0 0 0 3 0 0 0 1 0 0 1 1 49 1 1 1 232 0 0 1 0 5 1 0 0 0 1 54 0 0 0 0 1 203 1 123 1 53 1 0 0 1 1 36 0 0 1 221 1 13 0 0 0 3 0 2 0 1 1 0 1 0 2 0 4 1 202 1 0 5 0 0 3 1 182 1 43 0 0 0 0 0 0 1 226 1 25 1 76 0 0 1 0 0 0 0 1 110 0 1 1 246 1 182 1 86 1 1 1 252 1 0 0 1 0 2 0 1 1 130 1 1 256 0 2 1 1 186 1 1 1 170 0 4 0 0 1 110 0 0 0 0 1 183 0 0 0 0 0 0 0 0 0 1 1 107 0 1 190 0 0 3 1 62 0 1 0 1 162 0 2 1 0 4 1 70 1 177 1 46 1 0 1 1 122 1 28 0 1 0 2 1 208 0 0 1 1 131 1 142 0 0 1 196 1 193 1 235 1 1 0 1 1 0 3 1 84 1 0 1 0 1 108 0 0 0 0 1 94 1 126 1 178 0 0 1 1 127 1 1 1 185 0 4 1 1 231 1 1 0 1 0 3 0 3 0 5 1 1 101 1 241 1 0 0 0 1 96 0 0 0 2 1 53 1 1 73 1 1 0 2 1 40 0 5 2 1 0 2 0 5 0 0 0 1 164 1 245 0 0 0 0 0 0 0 0 0 1 92 1 143 1 14 1 23 0 1 0 5 0 1 1 129 1 229 1 1 1 218 0 1 0 5 0 0 2 1 37 0 1 18 0 0 0 0 0 1 214 0 0 0 1 0 5 1 1 32 1 0 3 0 4 1 13 1 0 0 0 0 0 0 1 1 57 0 4 0 5 0 1 1 180 1 47 0 0 0 0 0 3 0 0 0 0 0 4 1 79 1 1 115 1 80 0 1 0 0 0 1 1 33 0 2 1 1 66 0 0 0 1 48 1 169 1 218 0 0 1 9 0 1 1 129 0 3 1 0 0 0 1 1 221 0 1 1 14 0 2 0 1 156 1 101 1 0 1 0 1 0 4 1 148 1 0 5 0 1 21 0 0 0 0 0 0 0 1 60 1 158 1 227 1 164 0 0 1 1 166 1 235 0 1 1 109 1 1 1 4 0 3 1 182 0 1 125 1 0 0 0 1 177 1 213 0 4 1 29 0 1 1 195 0 0 0 0 1 98 0 0 1 29 1 142 0 1 0 1 0 5 0 1 42 1 0 1 158 1 133 1 144 0 0 1 0 4 1 132 1 0 1 0 4 1 134 0 1 1 104 1 0 1 0 1 1 137 0 2 1 178 1 27 1 253 1 59 1 1 1 36 1 0 1 1 187 1 34 1 124 1 0 0 1 95 0 1 1 215 0 5 0 1 1 164 0 0 5 1 1 105 0 0 0 1 145 0 0 1 116 1 31 0 0 1 23 0 0 0 0 1 176 1 180 1 1 1 59 0 0 0 0 0 0 3 1 86 0 1 1 242 0 4 0 0 1 1 229 1 184 1 194 0 5 3 0 0 1 1 255 0 4 1 1 104 1 1 1 90 0 2 1 0 0 0 1 1 0 2 1 5 1 1 173 1 1 0 1 0 3 1 196 0 5 1 1 1 127 0 0 5 0 1 66 0 1 110 0 1 1 182 0 1 90 0 0 1 38 0 0 1 161 1 9 0 0 0 0 0 0 0 2 0 0 1 11 1 0 0 0 4 0 0 0 3 0 5 2 0 0 0 0 0 0 1 0 0 0 0 1 217 0 0 0 1 130 0 2 0 1 1 116 0 5 2 0 3 0 1 1 108 1 0 1 100 1 169 0 2 1 239 1 125 1 0 0 8 0 5 3 0 1 0 2 1 30 0 1 55 0 1 206 0 1 162 0 0 1 0 0 0 0 0 0 0 1 1 218 0 1 1 156 0 0 0 3 0 3 0 1 206 0 0 0 0 0 2 1 1 172 1 96 1 0 1 1 221 1 104 0 2 0 5 0 0 0 1 1 145 1 208 1 0 0 1 178 1 107 1 121 0 4 0 0 5 1 1 0 2 1 84 0 1 95 1 1 1 218 0 5 1 0 2 1 0 3 0 2 1 157 0 1 0 0 0 1 1 162 0 0 0 1 89 1 99 0 1 1 103 1 0 1 1 150 0 0 0 1 108 1 27 0 0 0 4 1 212 1 120 1 129 0 3 0 0 1 0 4 1 195 1 0 1 1 49 1 145 0 0 0 0 0 1 0 1 0 2 1 172 1 191 0 0 0 5 0 3 1 55 0 1 63 1 116 0 2 1 225 1 106 0 1 0 2 1 203 1 105 1 0 1 1 160 0 1 0 5 0 1 134 0 1 0 3 0 0 1 119 0 0 1 19 1 103 1 12 1 222 0 0 0 0 1 0 0 1 98 0 1 1 1 110 0 1 249 1 217 1 1 0 2 1 0 2 1 220 1 118 1 141 0 0 1 0 0 1 15 0 1 189 0 1 117 0 3 1 212 0 0 0 1 0 5 0 0 5 0 0 0 0 0 1 15 1 253 1 175 1 200 0 0 1 1 49 1 170 0 4 0 1 1 253 1 201 1 1 0 0 1 1 248 1 1 1 248 0 3 1 1 192 1 1 1 186 0 5 0 0 0 0 0 0 1 1 129 0 0 1 214 0 0 0 1 1 226 1 231 0 1 0 2 0 4 1 195 0 0 5 0 0 5 0 0 1 0 0 1 1 75 1 47 0 4 0 0 1 197 1 230 0 0 0 1 1 132 0 0 1 1 213 0 1 87 1 113 0 2 1 232 0 0 3 1 0 1 0 1 1 211 0 0 1 56 1 249 0 5 2 0 1 1 0 5 1 1 234 1 1 0 4 0 4 0 5 0 0 3 0 4 0 1 53 0 1 1 0 3 1 141 1 81 0 0 1 10 1 1 73 0 0 1 1 26 1 31 0 3 1 0 1 0 0 0 0 0 1 165 1 222 1 1 0 5 0 0 1 1 18 0 1 122 0 1 76 1 46 1 149 0 0 0 1 1 0 0 1 71 0 5 0 0 0 0 1 30 1 1 131 0 1 0 5 0 1 0 0 4 0 1 171 1 57 0 2 1 63 0 0 2 1 1 182 0 5 1 1 0 0 0 0 1 213 1 232 0 0 0 0 0 1 1 182 0 5 2 0 1 236 0 0 0 0 2 1 4 1 79 0 0 0 4 0 5 1 1 1 47 1 53 0 3 0 3 0 3 0 0 0 1 211 1 235 1 140 1 253 0 0 1 235 1 0 1 0 2 1 111 0 1 226 1 1 227 1 1 188 1 0 1 0 3 1 137 0 2 0 1 166 0 5 1 0 0 0 0 0 1 221 0 0 0 0 1 176 0 4 1 78 1 1 1 151 1 173 0 0 0 4 1 227 0 4 0 0 5 0 0 3 1 243 1 193 0 0 1 155 1 202 1 0 0 1 1 0 4 0 2 1 215 0 4 1 0 5 0 1 93 0 5 1 0 1 0 5 1 80 0 4 0 5 0 1 1 57 1 212 1 1 0 5 1 97 0 3 2 1 132 0 0 5 0 1 1 17 0 1 1 0 3 1 50 0 4 0 0 3 1 155 0 5 1 1 0 2 0 5 0 1 57 1 1 0 1 0 5 0 3 0 1 0 5 0 5 0 1 1 23 0 0 0 1 128 0 2 1 0 1 0 5 1 64 1 0 5 0 4 0 5 1 17 0 0 1 70 0 1 197 0 0 0 2 0 0 1 65 1 1 201 1 0 3 1 146 1 1 181 0 1 86 0 2 0 1 0 2 0 0 1 28 0 1 81 0 2 1 0 5 0 1 160 1 132 0 4 0 0 1 1 125 0 2 1 1 202 1 1 0 5 1 241 1 85 1 49 0 1 0 3 0 1 138 0 2 0 1 1 127 1 0 0 4 1 148 1 91 0 0 1 168 0 1 254 0 1 1 21 1 196 1 1 1 108 0 1 0 3 1 133 0 3 1 0 3 0 1 0 4 0 4 0 1 0 4 0 2 1 53 1 112 0 1 0 5 0 1 1 177 1 0 2 0 3 1 48 1 219 1 0 0 4 1 0 0 3 1 135 0 1 1 21 1 65 1 0 1 247 1 14 1 111 0 0 0 1 226 0 0 0 0 0 2 0 2 0 2 0 2 0 2 0 4 0 4 0 0 0 2 0 3 0 0 1 106 0 0 1 0 0 0 1 1 224 0 4 1 254 0 1 1 182 1 60 1 1 0 4 0 0 0 2 0 0 1 81 0 0 0 1 105 1 0 3 0 1 253 1 199 1 176 0 0 1 167 1 44 1 12 1 1 1 22 0 0 1 0 4 0 4 0 2 1 72 1 1 34 1 0 1 1 193 1 108 0 2 1 180 1 233 0 1 0 0 0 2 1 92 0 3 0 0 5 0 0 4 1 0 1 0 2 1 219 0 3 1 1 214 1 0 3 0 1 0 0 1 34 0 3 1 38 1 1 170 1 1 0 5 0 1 32 0 1 1 10 0 5 0 1 246 0 5 0 1 121 1 0 1 1 54 1 144 1 141 0 5 2 0 0 0 0 0 0 0 0 0 1 217 1 246 0 0 1 125 1 37 1 70 0 3 1 0 4 0 1 0 5 1 0 1 0 1 1 139 0 1 0 0 1 209 0 3 0 4 1 7 1 1 54 1 177 0 1 1 6 1 1 0 3 0 0 1 93 1 0 4 0 0 1 54 1 1 19 0 0 2 0 0 0 3 1 38 1 0 3 1 140 0 5 0 0 1 134 0 1 1 100 0 0 5 1 0 0 1 183 0 0 0 0 1 155 0 3 1 195 0 0 0 0 1 4 1 187 1 1 1 42 0 1 85 1 112 1 1 1 117 0 1 62 1 172 0 0 0 0 1 19 1 76 0 0 0 0 1 66 0 1 135 1 0 0 1 191 1 1 14 0 0 1 0 3 0 0 0 0 8 1 194 1 2 0 5 1 0 5 0 0 0 1 70 1 0 2 0 1 0 2 1 73 1 92 0 1 0 5 1 0 4 1 0 5 0 0 3 0 0 0 0 3 1 153 0 4 0 0 0 0 4 0 1 1 248 0 4 1 219 1 0 1 78 1 214 0 0 0 0 0 0 0 0 0 5 1 0 1 1 12 0 0 0 0 4 0 2 1 217 0 0 1 243 1 0 0 0 4 1 1 134 1 0 0 1 252 1 198 1 0 1 54 0 0 0 0 0 0 1 132 1 0 2 0 3 1 33 1 1 0 2 0 1 0 3 0 0 1 252 1 129 0 0 0 0 0 0 1 235 1 240 0 0 1 135 1 92 0 0 1 1 127 0 0 1 0 1 1 0 2 1 167 1 90 1 1 0 1 1 164 0 5 1 1 0 1 0 0 0 1 1 205 1 205 0 4 0 0 1 59 1 1 233 0 1 1 56 0 3 0 0 0 2 0 0 0 0 0 0 1 187 0 0 0 5 0 0 0 1 196 0 0 0 1 9 1 84 0 1 0 3 1 240 0 4 0 5 0 1 202 1 1 0 3 1 101 0 2 1 0 0 1 252 0 3 0 1 0 5 0 3 1 188 1 39 0 1 1 110 0 0 2 1 125 0 0 5 1 212 0 3 0 0 1 51 1 0 1 156 0 1 1 191 0 2 1 183 1 0 1 0 0 1 0 4 1 251 1 1 3 1 224 0 1 0 4 0 1 195 0 9 1 211 0 0 1 117 1 1 182 0 1 0 0 0 0 0 1 1 58 1 159 1 97 0 1 1 133 0 0 0 0 0 0 0 0 9 1 92 0 5 0 0 0 1 138 0 2 0 1 95 1 34 0 1 0 2 0 0 9 0 2 1 68 0 1 0 5 0 0 3 1 0 4 1 100 0 1 9 0 4 0 0 1 0 2 0 1 1 13 1 1 132 0 1 0 8 1 231 0 0 9 0 3 0 0 0 0 1 23 1 225 0 1 1 239 1 0 4 1 175 0 0 0 0 0 1 198 0 9 0 0 5 1 88 0 1 144 1 1 143 0 1 52 0 0 0 1 220 1 93 1 0 0 1 1 90 0 0 0 1 98 0 0 1 1 81 1 1 187 1 1 182 1 1 175 1 30 0 1 1 105 0 1 131 1 152 0 1 0 4 0 3 1 240 1 0 0 1 133 0 9 1 0 3 0 7 0 0 1 89 1 0 0 0 4 0 0 1 133 0 1 55 0 0 9 0 4 1 176 1 0 7 0 0 1 3 1 0 6 0 0 0 0 0 0 0 8 0 3 0 2 1 251 0 7 1 0 0 0 1 72 0 0 0 0 0 0 1 158 0 0 1 181 0 0 1 112 1 134 0 0 0 1 0 0 0 0 1 0 4 0 1 117 0 0 1 129 0 2 1 0 3 1 25 1 194 1 1 1 173 1 0 0 0 0 0 1 0 5 1 0 1 1 84 1 0 0 1 250 1 213 1 187 1 40 0 0 0 1 1 156 1 8 1 176 0 1 0 5 0 1 1 245 0 4 0 1 128 1 126 0 0 0 0 0 0 0 2 0 0 1 75 0 1 242 1 0 0 0 0 1 28 1 1 72 0 1 153 1 211 0 0 1 111 0 0 1 1 142 0 1 102 0 1 1 0 1 1 1 116 0 5 1 1 1 243 0 1 1 63 0 5 0 0 4 0 1 204 0 0 0 3 1 42 0 5 3 0 0 4 1 97 1 1 69 0 0 0 0 0 0 0 1 127 1 89 0 0 0 1 92 1 104 1 131 0 0 0 1 0 0 0 0 1 210 0 1 1 230 0 1 1 55 0 0 0 1 0 4 1 243 0 2 0 1 219 0 0 0 1 0 1 0 0 0 2 1 224 0 2 0 0 0 0 4 0 3 0 0 0 5 2 1 49 0 0 0 0 1 16 1 121 1 246 0 5 0 0 1 1 195 1 200 0 5 2 0 1 1 23 1 83 1 1 0 5 1 1 245 1 18 1 82 0 0 1 0 4 1 1 12 1 12 0 0 1 0 1 0 0 1 201 1 0 3 1 43 0 0 0 1 96 1 173 0 0 0 0 0 0 0 3 1 1 35 0 0 1 0 4 1 0 5 1 0 1 1 113 0 1 46 1 1 218 1 95 0 4 0 0 5 2 0 0 0 0 0 1 0 2 1 213 0 3 0 1 175 0 1 1 1 62 0 1 56 0 2 1 193 0 0 1 1 1 217 1 29 0 0 0 0 0 5 1 0 2 0 5 0 1 201 1 1 224 0 0 0 2 0 0 1 78 1 0 1 243 1 178 0 0 0 9 0 1 0 9 1 15 0 0 1 0 0 1 67 1 4 1 1 1 166 1 1 114 0 0 1 1 22 1 1 0 0 0 2 1 129 0 0 1 0 1 0 2 1 145 0 0 1 202 1 0 0 1 0 0 0 4 1 40 1 0 4 0 3 0 0 1 252 1 0 3 1 2 0 4 0 4 0 0 3 1 142 1 147 1 1 0 2 1 158 1 129 1 0 1 156 1 185 1 82 1 183 0 0 1 79 1 0 0 1 131 0 0 0 1 0 1 1 39 0 3 0 5 1 1 168 1 1 0 3 0 5 1 1 27 0 1 180 0 1 0 2 0 5 2 0 0 1 30 0 0 1 128 0 0 1 63 1 208 1 28 0 1 0 5 2 0 1 189 1 74 0 0 0 0 1 0 3 0 4 0 0 0 4 1 172 0 0 0 1 88 1 187 0 5 0 1 1 92 0 0 1 210 0 0 0 1 103 0 0 1 80 1 19 1 0 0 0 0 0 0 1 237 1 154 1 136 1 1 0 1 0 1 189 0 0 0 0 0 0 1 207 1 248 0 1 0 0 0 3 1 233 0 0 3 0 0 1 135 1 228 1 232 1 0 0 0 0 0 0 1 204 0 0 1 153 0 0 1 0 0 0 1 75 1 214 0 1 1 1 61 1 1 1 213 0 5 1 0 0 0 0 0 0 0 1 34 0 0 0 0 3 0 0 1 142 0 0 0 0 0 0 1 0 0 0 4 1 150 1 108 1 1 1 244 1 1 34 1 241 0 0 1 172 0 0 1 0 4 0 0 1 66 1 151 0 1 1 215 0 1 126 1 129 1 40 1 0 1 0 0 0 1 1 60 1 1 0 1 0 5 1 0 3 1 39 1 37 1 1 1 48 0 0 0 1 194 1 28 1 144 0 1 1 120 1 0 0 0 0 1 146 1 233 1 55 1 126 0 0 0 0 0 0 1 174 0 0 2 1 21 1 0 0 0 3 0 0 0 0 0 0 1 210 1 1 240 0 0 1 1 146 0 1 151 0 3 0 1 1 22 1 142 1 0 0 0 0 1 1 54 0 1 0 1 1 52 1 203 0 3 0 0 1 30 1 2 0 3 1 1 149 1 1 1 246 1 111 0 0 1 229 1 74 1 69 1 76 0 0 0 0 0 0 0 0 0 1 214 0 5 0 1 90 0 2 1 137 0 4 0 0 2 0 0 0 3 1 0 2 1 117 1 123 1 1 1 149 1 1 143 0 5 1 0 0 1 240 1 173 0 0 1 3 1 125 0 0 1 1 172 1 0 0 0 1 147 1 3 0 1 0 4 0 0 0 3 0 3 0 1 1 211 1 140 1 146 0 3 0 4 0 4 0 0 1 1 224 1 86 1 22 0 4 0 1 0 3 1 174 1 1 67 1 1 1 62 0 5 0 1 194 1 1 0 3 0 5 0 5 0 2 0 2 0 3 1 142 0 1 1 140 1 1 13 1 0 0 3 1 143 0 2 0 0 2 1 29 0 1 165 1 0 3 0 4 0 0 0 0 1 52 0 0 1 0 2 0 2 0 4 0 5 1 24 1 1 99 1 1 77 0 4 1 12 0 4 1 162 0 1 0 5 0 1 63 1 1 0 1 1 90 1 179 0 1 0 0 0 1 1 98 0 1 0 0 5 1 215 1 0 1 0 2 1 249 1 168 0 0 0 0 1 213 1 1 137 1 1 30 1 0 0 1 237 1 0 0 1 72 1 0 0 1 228 0 1 219 1 0 0 1 68 0 1 171 0 0 3 1 123 0 0 1 1 186 0 1 0 5 0 0 1 1 246 0 4 1 0 1 1 0 3 0 5 1 190 1 0 4 0 3 0 0 0 4 0 6 0 0 0 0 1 184 1 155 0 0 1 61 1 1 1 232 1 1 1 69 0 2 1 1 127 0 0 0 0 0 0 0 1 16 1 0 0 1 47 0 0 1 131 1 215 0 1 0 3 1 125 1 203 0 0 0 1 108 0 0 1 209 0 3 1 1 59 1 0 0 0 0 2 1 168 1 179 0 1 0 3 1 32 0 0 1 1 231 1 0 0 0 1 1 117 1 1 198 1 1 65 0 0 0 1 0 0 0 1 133 1 189 1 0 1 62 1 90 0 0 0 0 1 2 1 0 0 1 9 0 1 97 0 0 0 0 5 0 0 0 1 114 1 0 3 0 0 0 0 1 163 1 0 0 1 253 0 0 1 109 0 0 1 69 0 1 160 1 1 0 0 1 45 1 218 1 1 1 2 1 0 0 1 63 1 87 0 1 0 4 0 0 0 3 1 136 1 113 0 1 1 236 1 0 3 1 110 1 1 77 1 0 1 124 0 0 1 235 1 239 0 1 1 142 0 1 45 0 0 0 3 1 0 5 0 1 65 0 0 0 2 0 0 1 125 0 0 3 0 1 1 4 0 3 0 1 1 143 0 0 0 0 1 124 1 244 0 0 0 0 1 182 0 0 0 0 0 1 1 117 1 241 0 1 1 42 1 0 5 0 1 180 0 1 246 1 58 0 0 1 123 0 0 0 4 0 1 1 107 1 229 1 1 0 4 1 1 253 1 1 1 137 1 0 1 0 5 0 0 2 1 218 0 0 0 0 0 0 0 0 1 131 1 90 1 21 1 184 0 0 0 0 1 252 1 48 0 0 0 1 0 0 0 1 1 105 1 0 2 0 2 1 6 1 1 106 0 1 46 1 85 0 0 0 0 1 146 1 90 0 0 0 0 1 114 0 1 210 1 0 3 0 8 0 3 0 0 1 1 239 0 0 0 1 1 70 1 121 0 5 2 1 0 3 0 0 0 0 2 0 0 1 17 1 139 0 0 1 0 3 1 248 1 229 1 1 1 238 0 0 1 1 7 0 0 0 1 1 19 0 3 1 223 1 137 0 0 0 1 1 122 1 1 237 0 0 0 0 1 128 0 0 0 0 0 0 0 0 2 1 40 1 110 0 1 1 1 197 0 0 1 207 1 119 0 4 0 0 1 253 1 223 0 2 1 75 1 1 97 1 0 0 0 2 0 1 1 51 1 145 0 1 1 231 0 0 3 0 1 1 248 0 0 0 1 125 1 178 0 0 1 106 0 2 1 0 2 1 175 0 6 1 249 0 7 1 0 5 1 1 184 0 7 1 0 3 0 3 0 0 1 189 0 1 101 0 1 114 0 1 125 1 1 156 1 255 1 0 0 0 0 1 114 1 0 1 183 0 0 0 1 0 2 0 0 0 3 0 2 0 2 0 4 1 22 1 1 0 1 0 3 1 87 1 1 1 0 1 53 0 0 1 0 1 1 1 1 55 1 185 1 1 1 47 0 1 1 243 1 204 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 1 203 0 0 0 2 1 1 123 0 4 0 0 0 0 0 0 1 176 0 4 0 3 1 1 33 1 127 1 1 1 108 0 0 0 0 0 0 0 0 0 0 0 1 7 1 83 0 0 1 0 3 0 3 0 0 0 5 0 0 1 1 181 0 5 0 0 1 33 0 4 1 85 0 1 1 163 1 75 1 0 1 0 0 0 2 0 4 1 21 1 105 0 0 1 84 0 0 0 2 0 3 3 5 0 0 1 253 1 220 1 186 0 3 0 0 0 1 84 0 0 1 0 4 0 0 0 4 0 5 1 56 0 1 182 1 0 1 1 45 0 1 1 0 2 0 2 0 4 1 189 0 0 0 1 111 0 0 1 1 182 1 244 0 5 1 0 2 1 13 1 0 1 0 0 1 96 0 0 1 105 1 125 0 0 1 165 0 0 0 0 0 0 0 5 3 0 0 0 0 1 249 0 0 0 1 1 85 1 198 0 5 2 1 65 0 3 0 1 0 4 1 76 1 221 1 0 0 1 1 96 1 148 0 1 0 3 0 3 0 4 0 4 0 5 0 0 4 1 181 0 0 1 179 0 1 174 1 1 0 3 0 1 1 189 0 1 1 152 1 96 1 28 1 168 0 1 1 152 0 1 0 0 0 0 1 205 1 0 1 1 10 1 60 0 2 0 4 0 3 1 22 1 195 0 1 0 1 0 0 0 0 1 208 1 32 0 0 1 0 1 0 3 1 45 0 4 0 2 1 0 4 1 115 0 1 238 1 225 0 4 0 1 0 5 0 0 4 0 4 1 34 1 131 1 167 1 0 1 0 3 0 0 0 3 1 0 3 1 215 0 2 0 2 0 3 0 2 1 221 0 1 55 0 5 0 0 1 215 0 1 0 3 0 1 0 1 0 2 1 120 0 1 0 5 0 1 152 0 0 1 141 0 3 1 22 0 1 177 0 0 1 255 1 162 1 94 1 152 1 80 1 1 1 150 0 0 1 1 112 0 5 1 0 0 0 1 0 3 1 57 0 2 0 2 0 3 0 0 5 1 155 1 173 1 0 0 4 0 0 
index b951b89..255417d 100644 (file)
@@ -1335,296 +1335,295 @@ val19 = 169;
 val1 = Cons21 ;
 val2 = Cons14 ;
 val3 = Cons2 (array ((False, '[', 'a'), (False, 'q', 'O')) []) (array ((),
-()) [() := Cons13 [array ((), ()) [() := (Cons5 (array ((('g'), (), 'b',
-False), (('c'), (), 'g', False)) []) (array (')', '-') [')' := (), '*'
-:= (), '+' := (), ',' := (), '-' := ()]), 19.000000000000000, False, Cons1
-)], array ((), ()) [() := (Cons7 (Cons4 , (array ((215), (176)) [], (array
+()) [((), Cons13 [array ((), ()) [((), (Cons5 (array ((('g'), (), 'b',
+False), (('c'), (), 'g', False)) []) (array (')', '-') [(')', ()), ('*',
+()), ('+', ()), (',', ()), ('-', ())]), 19.000000000000000, False, Cons1
+))], array ((), ()) [((), (Cons7 (Cons4 , (array ((215), (176)) [], (array
 ((True, 'D'), (False, '\US')) [], [[115.00000000000000], [54.000000000000000,
 20.000000000000000, 233.00000000000000, 226.00000000000000], [108.00000000000000,
 216.00000000000000], [29.000000000000000, 246.00000000000000, 231.00000000000000,
 32.000000000000000, 160.00000000000000]])), 144.00000000000000), 104.00000000000000,
-False, Cons3 )], array ((), ()) [() := (Cons6 , 246.00000000000000, True,
-Cons3 )], array ((), ()) [() := (Cons4 , 203.00000000000000, True, Cons2
-(array ((True, '\SYN', '*'), (False, 'c', '%')) []) (array ((), ()) [()
-:= Cons8 ]) (array (':', ')') []))], array ((), ()) [() := (Cons7 (Cons4
-, (array ((29), (31)) [(29) := 'q', (30) := 'e', (31) := 'f'], (array ((True,
+False, Cons3 ))], array ((), ()) [((), (Cons6 , 246.00000000000000, True,
+Cons3 ))], array ((), ()) [((), (Cons4 , 203.00000000000000, True, Cons2
+(array ((True, '\SYN', '*'), (False, 'c', '%')) []) (array ((), ()) [((),
+Cons8 )]) (array (':', ')') [])))], array ((), ()) [((), (Cons7 (Cons4
+, (array ((29), (31)) [((29), 'q'), ((30), 'e'), ((31), 'f')], (array ((True,
 'y'), (False, '|')) [], [[], [121.00000000000000, 94.000000000000000, 83.000000000000000,
 168.00000000000000, 232.00000000000000], [242.00000000000000, 12.000000000000000,
 235.00000000000000], [203.00000000000000, 216.00000000000000, 205.00000000000000,
 4.0000000000000000], []])), 136.00000000000000), 94.000000000000000, True,
-Cons1 )]]]) (array ('p', '\ETX') []);
+Cons1 ))]])]) (array ('p', '\ETX') []);
 val4 = Cons4 ;
 val5 = Cons5 (array ((('O'), (), 'H', False), (('O'), (), 'L', False))
-[(('O'), (), 'H', False) := array (('5', 35, (202), ()), ('\DC1', 158,
-(67), ())) [], (('O'), (), 'I', False) := array (('c', 197, (144), ()),
-('\STX', 79, (223), ())) [], (('O'), (), 'J', False) := array (('4', 45,
-(123), ()), ('\n', 9, (221), ())) [], (('O'), (), 'K', False) := array
-(('v', 20, (212), ()), ('V', 249, (60), ())) [], (('O'), (), 'L', False)
-:= array (('/', 170, (79), ()), ('=', 6, (10), ())) []]) (array ('I', 'D')
-[]);
-val6 = Cons16 (array (151, 114) []) (array (False, False) [False := array
-((), ()) [() := array (False, True) [False := True, True := True]]], Cons1
-, Cons27 (array (True, False) []) 256.000000 (array ('6', '9') ['6' :=
-Cons24 [array (((), True), ((), True)) [((), True) := (107)]] [Cons24 []
-[Cons21 ] [[]] True, Cons21 , Cons23 False () ['e'] (Cons25 ), Cons24 [array
-(((), False), ((), False)) [((), False) := (90)], array (((), True), ((),
-False)) [], array (((), True), ((), False)) []] [] [] False, Cons22 False
-()] [[], [[('S', Cons4 , False, Cons17 ), ('\DC2', Cons4 , False, Cons17
-), ('/', Cons4 , True, Cons17 ), ('\SUB', Cons4 , True, Cons17 ), ('r',
-Cons4 , True, Cons17 )]], [[('A', Cons4 , False, Cons17 ), ('\RS', Cons4
-, False, Cons17 )], [('=', Cons4 , False, Cons17 ), ('c', Cons4 , False,
-Cons17 ), ('\RS', Cons4 , False, Cons17 ), ('<', Cons4 , False, Cons17
-)]], [], [[], [('\DEL', Cons4 , True, Cons17 ), ('<', Cons4 , False, Cons17
-), ('6', Cons4 , False, Cons17 ), ('b', Cons4 , False, Cons17 ), ('\SI',
-Cons4 , True, Cons17 )], [('*', Cons4 , True, Cons17 ), ('K', Cons4 , True,
-Cons17 )], [('g', Cons4 , True, Cons17 ), (',', Cons4 , True, Cons17 ),
-('g', Cons4 , True, Cons17 ), ('!', Cons4 , False, Cons17 )]]] False, '7'
-:= Cons22 False (), '8' := Cons21 , '9' := Cons23 True () ['a', 'd', '\v',
-'2', 'M'] (Cons27 (array (False, False) [False := array ('v', '$') []])
-148.000000 (array ('\SO', '\DLE') ['\SO' := Cons21 , '\SI' := Cons21 ,
-'\DLE' := Cons21 ]) [Cons8 ])]) [Cons12 (Cons25 ) (Cons10 '\CAN' False
-(array (38, 41) [38 := [Cons17 , Cons17 , Cons17 , Cons17 , Cons17 ], 39
-:= [Cons17 , Cons17 , Cons17 ], 40 := [Cons17 , Cons17 , Cons17 , Cons17
-, Cons17 ], 41 := [Cons17 , Cons17 ]]) (array ('=', '=') ['=' := Cons1
-]), array (13, 7) [], array ((((True, True), (), ('\DC4')), 137, (('+',
-'S', 155), 'j')), (((False, False), (), ('M')), 59, (('|', 'y', 181), 'o')))
+[((('O'), (), 'H', False), array (('5', 35, (202), ()), ('\DC1', 158, (67),
+())) []), ((('O'), (), 'I', False), array (('c', 197, (144), ()), ('\STX',
+79, (223), ())) []), ((('O'), (), 'J', False), array (('4', 45, (123),
+()), ('\n', 9, (221), ())) []), ((('O'), (), 'K', False), array (('v',
+20, (212), ()), ('V', 249, (60), ())) []), ((('O'), (), 'L', False), array
+(('/', 170, (79), ()), ('=', 6, (10), ())) [])]) (array ('I', 'D') []);
+val6 = Cons16 (array (151, 114) []) (array (False, False) [(False, array
+((), ()) [((), array (False, True) [(False, True), (True, True)])])], Cons1
+, Cons27 (array (True, False) []) 256.000000 (array ('6', '9') [('6', Cons24
+[array (((), True), ((), True)) [(((), True), (107))]] [Cons24 [] [Cons21
+] [[]] True, Cons21 , Cons23 False () ['e'] (Cons25 ), Cons24 [array (((),
+False), ((), False)) [(((), False), (90))], array (((), True), ((), False))
+[], array (((), True), ((), False)) []] [] [] False, Cons22 False ()] [[],
+[[('S', Cons4 , False, Cons17 ), ('\DC2', Cons4 , False, Cons17 ), ('/',
+Cons4 , True, Cons17 ), ('\SUB', Cons4 , True, Cons17 ), ('r', Cons4 ,
+True, Cons17 )]], [[('A', Cons4 , False, Cons17 ), ('\RS', Cons4 , False,
+Cons17 )], [('=', Cons4 , False, Cons17 ), ('c', Cons4 , False, Cons17
+), ('\RS', Cons4 , False, Cons17 ), ('<', Cons4 , False, Cons17 )]], [],
+[[], [('\DEL', Cons4 , True, Cons17 ), ('<', Cons4 , False, Cons17 ), ('6',
+Cons4 , False, Cons17 ), ('b', Cons4 , False, Cons17 ), ('\SI', Cons4 ,
+True, Cons17 )], [('*', Cons4 , True, Cons17 ), ('K', Cons4 , True, Cons17
+)], [('g', Cons4 , True, Cons17 ), (',', Cons4 , True, Cons17 ), ('g',
+Cons4 , True, Cons17 ), ('!', Cons4 , False, Cons17 )]]] False), ('7',
+Cons22 False ()), ('8', Cons21 ), ('9', Cons23 True () ['a', 'd', '\v',
+'2', 'M'] (Cons27 (array (False, False) [(False, array ('v', '$') [])])
+148.000000 (array ('\SO', '\DLE') [('\SO', Cons21 ), ('\SI', Cons21 ),
+('\DLE', Cons21 )]) [Cons8 ]))]) [Cons12 (Cons25 ) (Cons10 '\CAN' False
+(array (38, 41) [(38, [Cons17 , Cons17 , Cons17 , Cons17 , Cons17 ]), (39,
+[Cons17 , Cons17 , Cons17 ]), (40, [Cons17 , Cons17 , Cons17 , Cons17 ,
+Cons17 ]), (41, [Cons17 , Cons17 ])]) (array ('=', '=') [('=', Cons1 )]),
+array (13, 7) [], array ((((True, True), (), ('\DC4')), 137, (('+', 'S',
+155), 'j')), (((False, False), (), ('M')), 59, (('|', 'y', 181), 'o')))
 [], Cons16 (array (98, 8) []) (array (True, False) [], Cons1 , Cons25 ,
-'~') (array ((), ()) [() := [array (True, True) [True := Cons1 ], array
-(False, True) [False := Cons1 , True := Cons1 ], array (True, True) [True
-:= Cons1 ], array (False, True) [False := Cons1 , True := Cons1 ], array
-(False, False) [False := Cons1 ]]])) (array ((120, (), 'y'), (4, (), '\GS'))
+'~') (array ((), ()) [((), [array (True, True) [(True, Cons1 )], array
+(False, True) [(False, Cons1 ), (True, Cons1 )], array (True, True) [(True,
+Cons1 )], array (False, True) [(False, Cons1 ), (True, Cons1 )], array
+(False, False) [(False, Cons1 )]])])) (array ((120, (), 'y'), (4, (), '\GS'))
 []) (array ((219, 'M', (('X', False, True), False), ((), ('E', 207), 76,
 ())), (182, ' ', (('N', True, True), True), ((), ('\ACK', 146), 18, ())))
 [], [array ((('|', False, '\SI', True), '\DEL', ('/', 11, 157, False)),
 (('\b', True, '$', False), '\EM', (')', 26, 155, True))) []]), Cons11 ['\\',
-'e'], Cons13 [array ((), ()) [() := (Cons4 , 144.00000000000000, False,
-Cons1 )]]], '\SO') (array ((), ()) [() := [array (False, False) [False
-:= Cons3 ], array (True, False) [], array (True, False) [], array (True,
-False) []]]);
-val7 = Cons26 (Cons3 ) [array (109, 112) [109 := 238.00000000000000, 110
-:= 139.00000000000000, 111 := 194.00000000000000, 112 := 165.00000000000000],
-array (201, 188) [], array (89, 93) [89 := 146.00000000000000, 90 := 244.00000000000000,
-91 := 210.00000000000000, 92 := 12.000000000000000, 93 := 30.000000000000000],
+'e'], Cons13 [array ((), ()) [((), (Cons4 , 144.00000000000000, False,
+Cons1 ))]]], '\SO') (array ((), ()) [((), [array (False, False) [(False,
+Cons3 )], array (True, False) [], array (True, False) [], array (True,
+False) []])]);
+val7 = Cons26 (Cons3 ) [array (109, 112) [(109, 238.00000000000000), (110,
+139.00000000000000), (111, 194.00000000000000), (112, 165.00000000000000)],
+array (201, 188) [], array (89, 93) [(89, 146.00000000000000), (90, 244.00000000000000),
+(91, 210.00000000000000), (92, 12.000000000000000), (93, 30.000000000000000)],
 array (216, 181) []] (array ((False, '6', '\n'), (True, ':', '\t')) []);
-val8 = Cons19 (('3', (Cons13 [array ((), ()) [() := (Cons4 , 93.000000000000000,
-True, Cons1 )], array ((), ()) [() := (Cons4 , 64.000000000000000, True,
-Cons1 )], array ((), ()) [() := (Cons4 , 74.000000000000000, True, Cons1
-)], array ((), ()) [() := (Cons4 , 216.00000000000000, True, Cons1 )],
-array ((), ()) [() := (Cons4 , 221.00000000000000, True, Cons1 )]]), [array
-((145, False, 252), (17, T