nyacc: lots of fixes to make CPP more robust; now need to test
authorMatt Wette <matt.wette@gmail.com>
Sun, 8 Jan 2017 00:06:09 +0000 (16:06 -0800)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sun, 8 Jan 2017 00:06:09 +0000 (16:06 -0800)
20 files changed:
module/nyacc/ChangeLog
module/nyacc/lalr.scm
module/nyacc/lang/c99/body.scm
module/nyacc/lang/c99/cpp.scm
module/nyacc/lang/c99/cppbody.scm
module/nyacc/lang/c99/cppmach.scm
module/nyacc/lang/c99/mach.d/c99act.scm
module/nyacc/lang/c99/mach.d/c99tab.scm
module/nyacc/lang/c99/mach.d/c99xact.scm
module/nyacc/lang/c99/mach.d/c99xtab.scm
module/nyacc/lang/c99/mach.d/cppact.scm
module/nyacc/lang/c99/mach.d/cpptab.scm
module/nyacc/lang/c99/mach.scm
module/nyacc/lang/c99/parser.scm
module/nyacc/lang/c99/pprint.scm
module/nyacc/lang/c99/xparser.scm
module/nyacc/lang/util.scm
module/nyacc/lex.scm
module/nyacc/parse.scm
module/nyacc/util.scm

index 67fe250c48e3978d7c817e6f705de44fe1900a05..33ddd25e378b8166afbe81dc647f857870706ba5 100644 (file)
@@ -1,3 +1,26 @@
+2017-01-07  Matt Wette  <mwette@alumni.caltech.edu>
+
+       * lang/c99/body.scm (read-cpp-line): cpp statement should not
+       include newline?  Changed to unread final newline.
+
+       * lang/util.scm: add report-error: prints msg w/ file, line 
+
+       * parse.scm (make-lalr-parser): changed printout of parse error to
+       (throw 'parse-error . args) and expect the full parser to catch
+       the error
+
+       * lang/c99/mach.scm (c99-spec): from
+        2017-01-07 Jan Nieuwenhuizen  <janneke@gnu.org>
+       mising unquote in output sx for goto: `(goto $2) => `(goto ,$2)
+
+2017-01-06  Matt Wette  <mwette@alumni.caltech.edu>
+
+       * lang/c99/parser.scm: default parser #:mode is now 'code; done
+       since the CPP should now be working (??)
+
+       * lalr.scm (process-spec): in add-el changed memq to member since
+       we are using strings for terminals
+
 2017-01-02  Matt Wette  <mwette@alumni.caltech.edu>
 
        * lang/c99/mach.scm (c99-spec): added hooks (cpp-ok!, no-cpp!) to
index 6e295a4dc04865d9ba63dbe0f9cef27be9642369..eff183e7f2c4b55192f7a9d6b22d2e7ba1736080 100644 (file)
   (let* ((gram (assq-ref tree 'grammar))
         (start-symbol (and=> (assq-ref tree 'start) atomize))
         (start-rule (lambda () (list start-symbol)))
-        (add-el (lambda (e l) (if (memq e l) l (cons e l))))
+        (add-el (lambda (e l) (if (member e l) l (cons e l))))
         (pna (prec-n-assc tree)))
     ;; We sweep through the grammar to generate a canonical specification.
     ;; Note: the local rhs is used to hold RHS terms, but a
                     (else '($1)))))
          (if with (simple-format #t "WITH WHAT?\n"))
          (iter (cons lhs ll)
-               (cons
-                (cons* (cons 'rhs (list->vector (reverse pel)))
-                       (cons* 'act nrg act) (cons 'ref ref) attr)
-                @l)
+               (cons (cons* (cons 'rhs (list->vector (reverse pel)))
+                            (cons* 'act nrg act) (cons 'ref ref) attr) @l)
                tl nl head prox lhs tail rhs-l attr pel #f)))
 
        ((pair? rhs-l)
index d2fb3edfbd2a634de1d47f5f3cda2d2a6d50f482..94db22a0661b45a651e631226e45240800ebbbd3 100644 (file)
@@ -1,6 +1,6 @@
 ;;; lang/c99/body.scm
 ;;;
-;;; Copyright (C) 2015 Matthew R. Wette
+;;; Copyright (C) 2015-2017 Matthew R. Wette
 ;;;
 ;;; This program is free software: you can redistribute it and/or modify
 ;;; it under the terms of the GNU General Public License as published by 
 ;;; You should have received a copy of the GNU General Public License
 ;;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-;; C parser body, with cpp and tables makes a parser
+;; @section The C99 Parser Body
+;; This code provides the front end to the C99 parser, including the lexical
+;; analyzer and optional CPP processing.  In @code{'file} mode the lex'er
+;; passes CPP statements to the parser; in @code{'code} mode the lex'er
+;; parses and evaluates the CPP statements.  In the case of included files
+;; (e.g., via @code{#include <file.h>}) the include files are parsed if
+;; not in the @code{td-dict}.  The @code{td-dict} is a dictionary that maps
+;; include file names to typedefs (e.g., @code{stdio.h} to @code{FILE}).
 
-;;(use-modules (ice-9 pretty-print))
+(use-modules ((srfi srfi-9) #:select (define-record-type)))
+(use-modules ((sxml xpath) #:select (sxpath)))
 
-(define std-dict
-  '(
-    ("alloca.h")
+(define c99-std-dict
+  '(("alloca.h")
     ("complex.h" "complex" "imaginary")
     ("ctype.h")
     ("fenv.h" "fenv_t" "fexcept_t")
@@ -37,7 +44,6 @@
     ("regex.h" "regex_t" "regmatch_t")
     ("setjmp.h" "jmp_buf")
     ("signal.h" "sig_atomic_t")
-    ("string.h" "size_t")
     ("stdarg.h" "va_list")
     ("stddef.h" "ptrdiff_t" "size_t" "wchar_t")
     ("stdint.h"
      "int_least32_t" "uint_least32_t" "int_least64_t" "uint_least64_t")
     ("stdio.h" "FILE" "size_t")
     ("stdlib.h" "div_t" "ldiv_t" "lldiv_t" "wchar_t")
+    ("string.h" "size_t")
     ("time.h" "time_t" "clock_t" "size_t")
     ("unistd.h" "size_t" "ssize_t" "div_t" "ldiv_t")
     ("wchar.h" "wchar_t" "wint_t" "mbstate_t" "size_t")
     ("wctype.h" "wctrans_t" "wctype_t" "wint_t")
     ))
 
+;; @subsubsection CPP if-then-else Logic Block (ITLB) Processing
+;; The parser needs to have a "CPI" (CPP processing info) stack to deal with
+;; types (re)defined in multiple branches of a #if...#endif statement chain.
+;; If we are in "code" mode then we may be skipping code so need to track
+;; when to shift and when not to.
+;; 
+;; The state is contained in a stack @code{ppxs}
+;; States are
+;; @table code
+;; @item skip-done
+;; skip code
+;; @item skip-look
+;; skipping code, but still looking for true at this level
+;; @item keep
+;; keep code
+;; @item skip1-pop
+;; skip one token and pop skip-stack
+;; @end table
+;; Also, if we want to pass on all the sections of an ITLB to the parser
+;; we need to remove typedef names because a typedef may appear multiple
+;; times, as in
+;; @example
+;; #ifdef SIXTYFOURBIT
+;; typedef short int32_t;
+;; #else
+;; typedef long int32_t;
+;; #endif
+;; @end example
+;; @noindent
+;; To achieve this we keep a stack of valid typedefs.  On @code{#if} we push,
+;; on @code{#elif} we shift (i.e., pop, then push) and on @code{#endif} we pop.
+;;
+;; The grammar looks like
+;; @example
+;; (code
+;;  ("if" cond code "endif")
+;;  ("if" cond code "else" code "endif")
+;;  ("if" cond code elif-list "endif")
+;;  ("if" cond code elif-list "else" code "endif")
+;;  (other))
+;; (elif-list
+;;  ("elif" cond code)
+;;  (elif-list "elif" cond code))
+;; @end example
+;; @noindent
+
 (define-record-type cpi
   (make-cpi-1)
   cpi?
   (tn-dict cpi-tynd set-cpi-tynd!)     ; typename dict (("<x>" foo_t ..
   (ptl cpi-ptl set-cpi-ptl!)           ; parent typename list
   (ctl cpi-ctl set-cpi-ctl!)           ; current typename list
-  (cppok cpi-cppok set-cpi-cppok!)     ; OK to pass CPP stmts to parser
   )
 
 (define (make-cpi debug defines incdirs tn-dict)
   (let* ((cpi (make-cpi-1)))
-    (set-cpi-debug! cpi debug)
-    (set-cpi-defs! cpi defines)
-    (set-cpi-incs! cpi incdirs)
-    (set-cpi-tynd! cpi (append tn-dict std-dict))
-    (set-cpi-ptl! cpi '())             ; list of lists of typedef strings
-    (set-cpi-ctl! cpi '())             ; list of typedef strings
-    (set-cpi-cppok! cpi #f)            ; don't assume OK to pass CPP stmts
+    (set-cpi-debug! cpi debug)   ; print states debug 
+    (set-cpi-defs! cpi defines)          ; list of define strings??
+    (set-cpi-incs! cpi incdirs)          ; list of include dir's
+    (set-cpi-tynd! cpi tn-dict)          ; typename dict by include-file name
+    (set-cpi-ptl! cpi '())       ; list of lists of typedef strings
+    (set-cpi-ctl! cpi '())       ; list of typedef strings
     cpi))
 
-;; Need to have a "CPI" stack to deal with types (re)defined in multiple
-;; branches of a #if...#endif statement.  If we are in "code" mode then we
-;; may be skipping code so need to track when to shift and when not to.
-
 (define *info* (make-fluid #f))
 
 ;; given tyns
 ;; Called by lexer to determine if symbol is a typename.
 ;; Check current sibling for each generation.
 (define (typename? name)
-  ;;(simple-format #t "typename? ~S\n" name)
   (let ((cpi (fluid-ref *info*)))
-    (when #f ;;(string=? name "SpiceInt")
-      (simple-format #t "tn? ~S  ~S\n" (cpi-ctl cpi) (cpi-ptl cpi)))
     (if (member name (cpi-ctl cpi)) #t
         (let iter ((ptl (cpi-ptl cpi)))
          (if (null? ptl) #f
 ;; @deffn add-typename name
 ;; Helper for @code{save-typenames}.
 (define (add-typename name)
-  ;;(simple-format #t "add-typename ~S\n" name)
   (let ((cpi (fluid-ref *info*)))
-    (set-cpi-ctl! cpi (cons name (cpi-ctl cpi)))
-    ;;(simple-format #t "at: ~S  ~S\n" (cpi-ctl cpi) (cpi-ptl cpi))
-    ))
+    (set-cpi-ctl! cpi (cons name (cpi-ctl cpi)))))
 
 (define (cpi-push)     ;; on #if
   (let ((cpi (fluid-ref *info*)))
     (set-cpi-ptl! cpi (cons (cpi-ctl cpi) (cpi-ptl cpi)))
-    (set-cpi-ctl! cpi '())
-    (simple-format #t "pu: ~S\n" (cpi-ctl cpi))
-    ))
+    (set-cpi-ctl! cpi '())))
 
 (define (cpi-shift)    ;; on #elif #else
-  (simple-format #t "sh\n")
   (set-cpi-ctl! (fluid-ref *info*) '()))
 
 (define (cpi-pop)      ;; on #endif
   (let ((cpi (fluid-ref *info*)))
-    (simple-format #t "po<: ~S ~S\n" (cpi-ctl cpi) (cpi-ptl cpi))
     (set-cpi-ctl! cpi (append (cpi-ctl cpi) (car (cpi-ptl cpi))))
-    (set-cpi-ptl! cpi (cdr (cpi-ptl cpi)))
-    (simple-format #t "po>: ~S ~S\n" (cpi-ctl cpi) (cpi-ptl cpi))
-    ))
-
-;; The following three routines are used to allow pass cpp-statements to the
-;; parser.  See how include is handled in the lexer.
-
-(define (cpp-ok!) ;; declare OK to pass cpp-stmt to parser
-  (simple-format #t "cpp-ok! ~S\n" (port-line (current-input-port)))
-  (let ((info (fluid-ref *info*)))
-    (set-cpi-cppok! info #t)))
+    (set-cpi-ptl! cpi (cdr (cpi-ptl cpi)))))
 
-(define (no-cpp!) ;; declare not OK to pass cpp-stmt to parser
-  (simple-format #t "no-cpp! ~S\n" (port-line (current-input-port)))
-  (let ((info (fluid-ref *info*)))
-    (set-cpi-cppok! info #f)))
-
-(define (cpp-ok?) ;; predicate called by lexer
-  ;;(simple-format #t "cpp-ok? ~S\n" (port-line (current-input-port)))
-  (cpi-cppok (fluid-ref *info*)))
-
-(define (no-cpp?) ;; predicate called by lexer
-  ;;(simple-format #t "no-cpp? ~S\n" (port-line (current-input-port)))
-  (not (cpi-cppok (fluid-ref *info*))))
-  
 ;; @deffn find-new-typenames decl
 ;; Helper for @code{save-typenames}.
 ;; Given declaration return a list of new typenames (via @code{typedef}).
 
 ;; ------------------------------------------------------------------------
 
+(define (p-err . args)
+  (apply throw 'c99-error args))
+
 ;; @deffn read-cpp-line ch => #f | (cpp-xxxx)??
 ;; Given if ch is #\# read a cpp-statement
 ;; includes BUG: #define ABC 123 /* \n
   (if (not (eq? ch #\#)) #f
       (let iter ((cl '()) (ch (read-char)))
        (cond
-        ((eq? ch #\newline) (list->string (reverse cl)))
+        ((eq? ch #\newline) (unread-char ch) (list->string (reverse cl)))
         ((eq? ch #\\)
          (let ((c2 (read-char)))
            (if (eq? c2 #\newline)
        (let ((p (string-append (car dirl) "/" file)))
          (if (access? p R_OK) p (iter (cdr dirl)))))))
 
-
-;; @subsubsection CPP if-then-else Logic Block (ITLB) Processing
-;; The state is contained in a stack @code{ppxs}
-;; States are
-;; @table code
-;; @item skip-done
-;; skip code
-;; @item skip-look
-;; skipping code, but still looking for true at this level
-;; @item keep
-;; keep code
-;; @item skip1-pop
-;; skip one token and pop skip-stack
-;; @end table
-;; Also, if we want to pass on all the sections of an ITLB to the parser
-;; we need to remove typedef names because a typedef may appear multiple
-;; times, as in
-;; @example
-;; #ifdef SIXTYFOURBIT
-;; typedef short int32_t;
-;; #else
-;; typedef long int32_t;
-;; #endif
-;; @end example
-;; @noindent
-;; To achieve this we keep a stack of valid typedefs.  On @code{#if} we push,
-;; on @code{#elif} we shift (i.e., pop, then push) and on @code{#endif} we pop.
-
-;; @example
-;; (code
-;;  ("if" cond code "endif")
-;;  ("if" cond code "else" code "endif")
-;;  ("if" cond code elif-list "endif")
-;;  ("if" cond code elif-list "else" code "endif")
-;;  (other))
-;; (elif-list
-;;  ("elif" cond code)
-;;  (elif-list "elif" cond code))
-;; @end example
-;; @noindent
-;; For each level of "if" we track the state.  
-
-;; NOTE: if file mode we usually keep #ifdefs.  The lone exception is
-;; @code{#if 0}
-
-;; @deffn gen-c-lexer [#:mode mode] => thunk
-;; Generate a context-sensitive lexer for the C language.
-;; The key-arg @var{mode} can be @code{'code} or @code{'file}.  If @code{'code}
-;; @enumerate
-;; @item
-;; CPP defines are expanded (future work)
-;; @item
-;; CPP if/def is executed
-;; @end enumerate
 (define (def-xdef? name mode)
   (eqv? mode 'code))
 
-;; @deffn gen-c-lexer [#:mode mode] [#:xdef? proc] => thunk
-
+;; @deffn gen-c-lexer [#:mode mode] [#:xdef? proc] => procedure
+;; Generate a context-sensitive lexer for the C99 language.  The generated
+;; lexical analyzer reads and passes comments and optionally CPP statements
+;; to the parser.  The keyword argument @var{mode} will determine if CPP
+;; statements are passed (@code{'file} mode) or parsed and executed
+;; (@code{'file} mode) as described above.  Comments will be passed as
+;; ``line'' comments or ``lone'' comments: lone comments appear on a line
+;; without code.  The @code{xdef?} keyword argument allows user to pass
+;; a predicate which determines whether CPP symbols in code are expanded.
+;; The default predicate is
+;; @example
+;; (define (def-xdef? mode name) (eqv? mode 'code))
+;; @end example
 (define gen-c-lexer
   ;; This gets ugly in order to handle cpp.
   ;;.need to add support for num's w/ letters like @code{14L} and @code{1.3f}.
         (xp2 (sxpath '(decl))))
     ;; mode: 'code|'file
     ;; xdef?: (proc name mode) => #t|#f  : do we expand #define?
-    ;; ppev?: (proc ???) => #t|#f : do we eval-and-honor #if/#else ?
     (lambda* (#:key (mode 'code) (xdef? #f))
       (let ((bol #t)                 ; begin-of-line condition
            (ppxs (list 'keep))       ; CPP execution state stack
            (info (fluid-ref *info*)) ; assume make and run in same thread
-           (pstk '())                ; port stack
            (x-def? (or xdef? def-xdef?)))
        ;; Return the first (tval . lval) pair not excluded by the CPP.
        (lambda ()
 
-         (define (eval-flow?)
-           (or (no-cpp?) (eqv? mode 'code)))
+         (define (exec-cpp-stmts?)     ; exec (vs pass to parser) CPP stmts?
+           (eqv? mode 'code))
       
          (define (add-define tree)
            (let* ((tail (cdr tree))
          (define (rem-define name)
              (set-cpi-defs! info (delete name (cpi-defs info))))
          
-         (define (exec-cpp line)
-           (simple-format #t "exec-cpp: (cpp-ok=~S) ~S\n" (cpp-ok?) line)
-           ;; Parse the line into a CPP stmt, execute it, and return it.
-           (let* ((stmt (read-cpp-stmt line)))
-             (case (car stmt)
-               ((include)
-                (let* ((parg (cadr stmt)) (leng (string-length parg))
-                       (file (substring parg 1 (1- leng)))
-                       (path (find-file-in-dirl file (cpi-incs info)))
-                       (tynd (assoc-ref (cpi-tynd info) file)))
+         ;; Evaluate expression text in #if of #elif statement.
+         (define (eval-cpp-cond-text text)
+           (with-throw-handler
+            'cpp-error
+            (lambda ()
+              (let* ((defs (cpi-defs info))
+                     ;;(x (simple-format #t "eval-cpp-cond-text: ~S\n" text))
+                     (rhs (cpp-expand-text text defs))
+                     ;;(x (simple-format #t "  rhs=>~S\n" rhs))
+                     (exp (parse-cpp-expr rhs))
+                     ;;(x (simple-format #t "  exp=>~S\n" exp))
+                     )
+                (if (not exp) (throw 'c99-error "CPP parse failed"))
+                (eval-cpp-expr exp defs)))
+            (lambda (key fmt . args)
+              (report-error fmt args)
+              (throw 'c99-error "CPP error"))))
+           
+         (define (eval-cpp-stmt stmt)
+           (case (car stmt)
+             ((include)
+              (let* ((parg (cadr stmt)) (leng (string-length parg))
+                     (file (substring parg 1 (1- leng)))
+                     (path (find-file-in-dirl file (cpi-incs info)))
+                     (tynd (assoc-ref (cpi-tynd info) file)))
+                (cond
+                 (tynd (for-each add-typename tynd)) ; in dot-h dict
+                 ((not path) (p-err "not found: ~S" file))
+                 ((exec-cpp-stmts?) (push-input (open-input-file path)))
+                 (else         ; include as tree
+                  (let* ((tree (with-input-from-file path run-parse)))
+                    (if (not tree) (p-err "included from ~S" path))
+                    (for-each add-define (xp1 tree)) ; add def's 
+                    (set! stmt (append stmt (list tree)))))))
+              (if (exec-cpp-stmts?) (set! ppxs (cons 'skip1-pop ppxs))))
+             ((define)
+              (add-define stmt)
+              (if (exec-cpp-stmts?) (set! ppxs (cons 'skip1-pop ppxs))))
+             ((undef)
+              (rem-define (cadr stmt))
+              (if (exec-cpp-stmts?) (set! ppxs (cons 'skip1-pop ppxs))))
+             ((if) ;; covers (if ifdef ifndef)
+              (cond
+               ((exec-cpp-stmts?)
+                (let ((val (eval-cpp-cond-text (cadr stmt))))
                   (cond
-                   (tynd (for-each add-typename tynd)) ; in dot-h dict
-                   ((or (no-cpp?) (eqv? mode 'code))   ; include flat
-                    (if (not path) (throw 'parse-error "not found: ~S" file))
-                    (push-input (open-input-file path))
-                    (set! stmt #f))
-                   (else               ; include as tree
-                    (if (not path) (throw 'parse-error "not found: ~A" path))
-                    (let* ((tree (with-input-from-file path run-parse)))
-                      (if (not tree) (throw 'parse-error "~A" path))
-                      (for-each add-define (xp1 tree)) ; add def's 
-                      ;; Attach tree onto "include" statement.
-                      (if (pair? tree)
-                          (set! stmt (append stmt (list tree)))
-                          stmt))))))
-               ((define)
-                (add-define stmt))
-               ((undef)
-                (rem-define (cadr stmt)))
-               ((if) ;; and ifdef, ifndef
-                (cpi-push)
-                (if (eval-flow?)
-                    (let* ((defs (cpi-defs info))
-                           (rhs (cpp-expand-text (cadr stmt) defs))
-                           (exp (parse-cpp-expr rhs))
-                           (val (eval-cpp-expr exp defs)))
-                      (cond
-                       ((not val)
-                        (throw 'parse-error "unresolved: ~S" (cadr stmt)))
-                       ((zero? val)
-                        (set! ppxs (cons* 'skip1-pop 'skip-look ppxs)))
-                       (else
-                        (set! ppxs (cons* 'skip1-pop (car ppxs) ppxs)))))))
-               ((elif)
-                (if (eval-flow?)
-                    (let* ((defs (cpi-defs info))
-                           (rhs (cpp-expand-text (cadr stmt) defs))
-                           (exp (parse-cpp-expr rhs))
-                           (val (eval-cpp-expr exp defs)))
-                      (cond
-                       ((not val)
-                        (throw 'parse-error "unresolved: ~S" (cadr stmt)))
-                       ((eq? 'keep (car ppxs))
-                        (set! ppxs (cons* 'skip1-pop 'skip-done (cdr ppxs))))
-                       ((zero? val)
-                        (set! ppxs (cons* 'skip1-pop ppxs)))
-                       ((eq? 'skip-look (car ppxs))
-                        (cpi-shift)
-                        (set! ppxs (cons* 'skip1-pop 'keep (cdr ppxs))))
-                       (else
-                        (cpi-shift)
-                        (set! ppxs (cons* 'skip1-pop 'skip-done (cdr ppxs))))))
-                    (cpi-shift)))
-               ((else)
-                (if (eval-flow?)
-                    (cond
-                     ((eq? 'skip-look (car ppxs))
-                      (cpi-shift)
-                      (set! ppxs (cons* 'skip1-pop 'keep (cdr ppxs))))
-                     (else
-                      (set! ppxs (cons* 'skip1-pop 'skip-done (cdr ppxs)))))
-                    (cpi-shift)))
-               ((endif)
-                (cpi-pop)
-                (if (eval-flow?)
-                    (set! ppxs (cons 'skip1-pop (cdr ppxs)))))
-               ((error)
-                stmt)
-               (else
-                (error "unhandled cpp stmt")))
-             (if stmt (cons 'cpp-stmt stmt) '())))
+                   ((not val) (p-err "unresolved: ~S" (cadr stmt)))
+                   ((zero? val) (set! ppxs (cons* 'skip1-pop 'skip-look ppxs)))
+                   (else (set! ppxs (cons* 'skip1-pop (car ppxs) ppxs))))))
+               (else (cpi-push))))
+             ((elif)
+              (cond
+               ((exec-cpp-stmts?)
+                (let ((val (eval-cpp-cond-text (cadr stmt))))
+                  (cond
+                   ((not val)
+                    (p-err "unresolved: ~S" (cadr stmt)))
+                   ((eq? 'keep (car ppxs))
+                    (set! ppxs (cons* 'skip1-pop 'skip-done (cdr ppxs))))
+                   ((zero? val) (set! ppxs (cons* 'skip1-pop ppxs)))
+                   ((eq? 'skip-look (car ppxs))
+                    (set! ppxs (cons* 'skip1-pop 'keep (cdr ppxs))))
+                   (else
+                    (set! ppxs (cons* 'skip1-pop 'skip-done (cdr ppxs)))))))
+               (else (cpi-shift))))
+             ((else)
+              (cond
+               ((exec-cpp-stmts?)
+                (cond
+                 ((eq? 'skip-look (car ppxs))
+                  (set! ppxs (cons* 'skip1-pop 'keep (cdr ppxs))))
+                 (else
+                  (set! ppxs (cons* 'skip1-pop 'skip-done (cdr ppxs))))))
+               (else (cpi-shift))))
+             ((endif)
+              (cond
+               ((exec-cpp-stmts?)
+                (set! ppxs (cons 'skip1-pop (cdr ppxs))))
+               (else (cpi-pop))))
+             ((error)
+              stmt)
+             (else
+              (error "unhandled cpp stmt")))
+           (cons 'cpp-stmt stmt))
          
-         ;; Composition of @code{read-cpp-line} and @code{exec-cpp}.
+         (define (eval-cpp-line line)
+           (with-throw-handler
+            'cpp-error
+            (lambda () (eval-cpp-stmt (read-cpp-stmt line)))
+            (lambda (key fmt . rest)
+              (report-error fmt rest)
+              (throw 'c99-error "CPP error"))))
+
+         ;; Composition of @code{read-cpp-line} and @code{eval-cpp-line}.
          (define (read-cpp ch)
-           (and=> (read-cpp-line ch) exec-cpp))
+           (and=> (read-cpp-line ch) eval-cpp-line))
 
          (define (read-token)
            (let iter ((ch (read-char)))
                (cond
                 ((read-comm ch bol) => assc-$)
                 ((read-cpp ch) =>
-                 (lambda (res)
-                   ;; not pair means expand include file, so loop again
+                 (lambda (res) ;; if '() stmt expanded so re-read
                    (if (pair? res) (assc-$ res) (iter (read-char)))))
                 (else (set! bol #f) (iter ch))))
               ((read-ident ch) =>
               (else (cons ch (string ch))))))
 
          ;; Loop between reading tokens and skipping tokens via CPP logic.
-         (let loop ((pair (read-token)))
-           (simple-format #t "ppxs=~S ~S\n" ppxs
-                          (port-line (current-input-port)))
+         (let iter ((pair (read-token)))
            (case (car ppxs)
              ((keep)
-              (no-cpp!)
-              (simple-format #t "token=~S\n" pair)
               pair)
              ((skip-done skip-look)
-              (loop (read-token)))
+              (iter (read-token)))
              ((skip1-pop)
               (set! ppxs (cdr ppxs))
-              (loop (read-token)))))
+              (iter (read-token)))))
          )))))
-
+  
 ;; --- last line ---
index 0555d7b232e9e5cd521392eb9e4e3a1bf300f92a..aefaf2721f7684f64326115838e88b1db82f8b25 100644 (file)
@@ -1,6 +1,6 @@
 ;;; lang/c/cpp.scm
 ;;;
-;;; Copyright (C) 2015 Matthew R. Wette
+;;; Copyright (C) 2015-2017 Matthew R. Wette
 ;;;
 ;;; This program is free software: you can redistribute it and/or modify
 ;;; it under the terms of the GNU General Public License as published by 
@@ -40,9 +40,6 @@
 #|
   #define  #undef  #include  #if  #ifdef  #ifndef  #else  #endif  #elif
   #line  defined  #-operator  ##-operator  #pragma  #error
-
-strategy:
-  don't expand macro calls -- treat like function calls, but provide dict
 todo:
   pragma
   #-op ##-op
index 090b9ed115e8d6c86e0fcc08a03fa01325e473ef..ca5f167e2e0de15a8e7955ccf571d2f99f554023 100644 (file)
@@ -1,6 +1,6 @@
 ;;; nyacc/lang/c99/cppbody.scm
 ;;;
-;;; Copyright (C) 2016 Matthew R. Wette
+;;; Copyright (C) 2016-2017 Matthew R. Wette
 ;;;
 ;;; This program is free software: you can redistribute it and/or modify
 ;;; it under the terms of the GNU General Public License as published by
 ;;; You should have received a copy of the GNU General Public License
 ;;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-(define gen-cpp-lexer (make-lexer-generator mtab))
+(define (cpp-err fmt . args)
+  (apply throw 'cpp-error fmt args))
+
+;; Since we want to be able to get CPP statements with comment in tact
+;; (e.g., for passing to @code{pretty-print-c99}) we need to remove
+;; comments when parsing CPP expressions.  We convert a comm-reader
+;; into a comm-skipper here.  And from that generate a lexer generator.
+(define cpp-comm-skipper
+  (let ((reader (make-comm-reader '(("/*" . "*/")))))
+    (lambda (ch)
+      (reader ch #f))))
+
+(define gen-cpp-lexer
+  (make-lexer-generator mtab #:comm-skipper cpp-comm-skipper))
 
 ;; @deffn parse-cpp-expr text => tree
 ;; Given a string returns a cpp parse tree.  This is called by
-;; @code{parse-cpp-stmt} and @code{eval-cpp-expr}.  The latter because the
-;; parsed expression may include terms which are cpp-defined
-;; and should be evaluated lazy mode.
+;; @code{eval-cpp-expr}.  The text will have had all CPP defined symbols
+;; expanded already so no identifiers should appear in the text.
+;; A @code{cpp-error} will be thrown if a parse error occurs.
 (define (parse-cpp-expr text)
-  (with-input-from-string text
-    (lambda () (raw-parser (gen-cpp-lexer)))))
+  (catch
+   'nyacc-error
+   (lambda ()
+     (with-input-from-string text
+       (lambda () (raw-parser (gen-cpp-lexer)))))
+   (lambda (key fmt . args)
+     (apply throw 'cpp-error fmt args))))
 
 ;; @deffn eval-cpp-expr tree dict => datum
-;; Evaluate a tree produced from
-;; This should be updated to use @code{expand-cpp-def}.  See below.
-(use-modules (ice-9 pretty-print))
+;; Evaluate a tree produced from @code{parse-cpp-expr}.
+;; The tree passed to this routine is 
 (define (eval-cpp-expr tree dict)
   ;;(display "eval-cpp-expr:\n") (pretty-print tree)
   (letrec
       ((tx (lambda (tr ix) (list-ref tr ix)))
        (tx1 (lambda (tr) (tx tr 1)))
        (ev (lambda (ex ix) (eval-expr (list-ref ex ix))))
-       (ev1 (lambda (ex) (ev ex 1)))
-       (ev2 (lambda (ex) (ev ex 2)))
-       (ev3 (lambda (ex) (ev ex 3)))
-       #;(parse-and-eval
-       (lambda (str)
-         (if (not (string? str)) (throw 'parse-error "cpp-eval"))
-         (let ((idtr (parse-cpp-expr str)))
-           (eval-cpp-expr idtr dict))))
+       (ev1 (lambda (ex) (ev ex 1)))   ; eval expr in arg 1
+       (ev2 (lambda (ex) (ev ex 2)))   ; eval expr in arg 2
+       (ev3 (lambda (ex) (ev ex 3)))   ; eval expr in arg 3
        (eval-expr
        (lambda (tree)
          (case (car tree)
-           ;;((ident) (parse-and-eval (assoc-ref dict (tx1 tree))))
            ((fixed) (string->number (tx1 tree)))
            ((char) (char->integer (tx1 tree)))
            ((defined) (if (assoc-ref dict (tx1 tree)) 1 0))
@@ -77,8 +88,9 @@
            ((or) (if (and (zero? (ev1 tree)) (zero? (ev2 tree))) 0 1))
            ((and) (if (or (zero? (ev1 tree)) (zero? (ev2 tree))) 0 1))
            ((cond-expr) (if (zero? (ev1 tree)) (ev3 tree) (ev2 tree)))
+           ((ident) (error "text should not have identifiers"))
            (else (error "incomplete implementation"))))))
-    (catch 'parse-error
+    (catch 'cpp-error
           (lambda () (eval-expr tree))
           (lambda () #f))))
 
   ;; E.g., scanned "defined", now scan "(FOO)", and return "defined(FOO)".
   (define (scan-defined)
     (let iter ((chl '()) (ch (read-char)))
-      (cond ((eof-object? ch) (throw 'parse-error "bad CPP defined"))
+      (cond ((eof-object? ch) (cpp-err "bad CPP defined"))
            ((char=? #\) ch)
             (string-append "defined" (list->string (reverse (cons ch chl)))))
            (else (iter (cons ch chl) (read-char))))))
             (nxt #f)           ; next string 
             (lvl 0)            ; level
             (ch (read-char)))  ; next character
-    ;;(simple-format #t "iter stl=~S chl=~S nxt=~S ch=~S\n" stl chl nxt ch)
     (cond
      ;; have item to add, but first add in char's
      (nxt (iter (cons nxt (add-chl chl stl)) '() #f lvl ch))
       (lambda (st) (iter stl chl st lvl (read-char))))
      ((read-c-ident ch) =>
       (lambda (iden)
-       ;;(simple-format #t "    iden=~S\n" iden)
        (if (equal? iden "defined")
            ;; "defined" is a special case
            (iter stl chl (scan-defined) lvl (read-char))
       (iter stl (cons ch chl) #f lvl (read-char))))))
   
 (define (collect-args argd dict used)
-  ;;(simple-format #t "collect-args\n")
-  (if (not (eqv? (skip-ws (read-char)) #\())
-      (let ((fn (or (port-filename (current-input-port)) "(unknown)"))
-           (ln (1+ (port-line (current-input-port)))))
-       (throw 'parse-error "~A:~A: CPP expecting `('" fn ln)))
+  (if (not (eqv? (skip-ws (read-char)) #\()) (cpp-err "CPP expecting `('"))
   (let iter ((argl (list (scan-cpp-input argd dict used #t))))
-    ;;(simple-format #t "args: ~S\n" argl)
     (let ((ch (read-char)))
       (if (eqv? ch #\)) (reverse argl)
          (iter (cons (scan-cpp-input argd dict used #t) argl))))))
     
 (define (expand-cpp-repl repl argd dict used)
-  ;;(simple-format #t "expand-cpp-repl repl=~S argd=~S\n" repl argd)
   (with-input-from-string repl
     (lambda () (scan-cpp-input argd dict used #f))))
 
 ;; @deffn cpp-expand-text text dict => string
 (define (cpp-expand-text text dict)
-  ;;(simple-format #t "cpp-expand-text: ~S\n" text)
   (with-input-from-string text
     (lambda () (scan-cpp-input '() dict '() #f))))
 
 ;; to a macro with arguments, then the arguments will be read from the
 ;; current input.
 (define (expand-cpp-mref ident dict . rest)
-
   (let ((used (if (pair? rest) (car rest) '()))
        (rval (assoc-ref dict ident)))
     (cond
      ((member ident used) ident)
      ((string? rval)
       (let ((expd (expand-cpp-repl rval '() dict (cons ident used))))
-       ;;(simple-format #t "expand ~S => ~S\n" ident expd)
        expd))
      ((pair? rval)
       (let* ((args (car rval)) (repl (cdr rval))
             (argv (collect-args '() dict '()))
             (argd (map cons args argv))
             (expd (expand-cpp-repl repl argd dict (cons ident used))))
-       ;;(simple-format #t "expand ~S => ~S\n" ident expd)
        expd)))))
 
 ;;; --- last line ---
index 4c4c77667b822a98a87c86f69181069366b3319d..cfa47fdf77f983571a4de70d0900729a452af520 100644 (file)
@@ -32,7 +32,8 @@
 
 (define cpp-spec
   (lalr-spec
-   (notice lang-crn-lic)
+   (notice (string-append "Copyright (C) 2016,2017 Matthew R. Wette"
+                         lang-crn-lic))
    (expect 0)
    (start conditional-expression)
    (grammar
        (b (move-if-changed (xtra-dir "cpptab.scm.new")
                            (xtra-dir "cpptab.scm"))))
     (when (or a b) 
-      (system (string-append "touch " (lang-dir "cpp.scm")))
-      #;(compile-file (lang-dir "cpp.scm"))
-      )))
+      (system (string-append "touch " (lang-dir "cpp.scm"))))))
 
 ;; --- last line ---
index 0d7c7db0159e38c9e572b7272fe9a9ff61815c26..d54164ab3a2e4c6e83f119489973ae5a022c611c 100644 (file)
@@ -1,6 +1,6 @@
 ;; ./mach.d/c99act.scm
 
-;; Copyright 2016,2017 Matthew R. Wette
+;; Copyright (C) 2016,2017 Matthew R. Wette
 ;; 
 ;; This software is covered by the GNU GENERAL PUBLIC LICENCE, Version 3,
 ;; or any later version published by the Free Software Foundation.  See
@@ -8,10 +8,8 @@
 
 (define act-v
   (vector
-   ;; $start => translation-unit-proxy
+   ;; $start => translation-unit
    (lambda ($1 . $rest) $1)
-   ;; translation-unit-proxy => translation-unit
-   (lambda ($1 . $rest) (tl->list $1))
    ;; primary-expression => identifier
    (lambda ($1 . $rest) `(p-expr ,$1))
    ;; primary-expression => constant
    (lambda ($3 $2 $1 . $rest) (list 'array-dsgr $2))
    ;; designator => "." identifier
    (lambda ($2 $1 . $rest) (list 'sel-dsgr $2))
-   ;; statement => $P2 statement-1
-   (lambda ($2 $1 . $rest) $2)
-   ;; $P2 => 
-   (lambda $rest (cpp-ok!))
-   ;; statement-1 => labeled-statement
+   ;; statement => labeled-statement
    (lambda ($1 . $rest) $1)
-   ;; statement-1 => compound-statement
+   ;; statement => compound-statement
    (lambda ($1 . $rest) $1)
-   ;; statement-1 => expression-statement
+   ;; statement => expression-statement
    (lambda ($1 . $rest) $1)
-   ;; statement-1 => selection-statement
+   ;; statement => selection-statement
    (lambda ($1 . $rest) $1)
-   ;; statement-1 => iteration-statement
+   ;; statement => iteration-statement
    (lambda ($1 . $rest) $1)
-   ;; statement-1 => jump-statement
+   ;; statement => jump-statement
    (lambda ($1 . $rest) $1)
-   ;; statement-1 => cpp-statement
+   ;; statement => cpp-statement
    (lambda ($1 . $rest) $1)
    ;; labeled-statement => identifier ":" statement
    (lambda ($3 $2 $1 . $rest)
    ;; opt-expression => expression
    (lambda ($1 . $rest) $1)
    ;; jump-statement => "goto" identifier ";"
-   (lambda ($3 $2 $1 . $rest) `(goto $2))
+   (lambda ($3 $2 $1 . $rest) `(goto ,$2))
    ;; jump-statement => "continue" ";"
    (lambda ($2 $1 . $rest) '(continue))
    ;; jump-statement => "break" ";"
    (lambda ($3 $2 $1 . $rest) `(return ,$2))
    ;; jump-statement => "return" ";"
    (lambda ($2 $1 . $rest) `(return (expr)))
-   ;; translation-unit => external-declaration
+   ;; translation-unit => external-declaration-list
+   (lambda ($1 . $rest) (tl->list $1))
+   ;; external-declaration-list => external-declaration
    (lambda ($1 . $rest) (make-tl 'trans-unit $1))
-   ;; translation-unit => translation-unit external-declaration
+   ;; external-declaration-list => external-declaration-list external-decla...
    (lambda ($2 $1 . $rest)
      (if (eqv? (sx-tag $2) 'extern-block)
-       (tl-extend $1 (sx-tail $2))
+       (tl-extend $1 (sx-tail $2 2))
        (tl-append $1 $2)))
-   ;; external-declaration => $P3 external-declaration-1
-   (lambda ($2 $1 . $rest) $2)
-   ;; $P3 => 
-   (lambda $rest (cpp-ok!))
-   ;; external-declaration-1 => function-definition
+   ;; external-declaration => function-definition
    (lambda ($1 . $rest) $1)
-   ;; external-declaration-1 => declaration
+   ;; external-declaration => declaration
    (lambda ($1 . $rest) $1)
-   ;; external-declaration-1 => lone-comment
+   ;; external-declaration => lone-comment
    (lambda ($1 . $rest) $1)
-   ;; external-declaration-1 => cpp-statement
+   ;; external-declaration => cpp-statement
    (lambda ($1 . $rest) $1)
-   ;; external-declaration-1 => "extern" '$string "{" translation-unit "}"
+   ;; external-declaration => "extern" '$string "{" external-declaration-li...
    (lambda ($5 $4 $3 $2 $1 . $rest)
      `(extern-block
-        $2
-        (extern-C-begin)
-        $4
-        (extern-C-end)))
+        ,$2
+        (extern-begin ,$2)
+        ,@(sx-tail (tl->list $4) 1)
+        (extern-end)))
    ;; function-definition => declaration-specifiers declarator declaration-...
    (lambda ($4 $3 $2 $1 . $rest)
      `(knr-fctn-defn
index f6444c417e88b2ad935c2c5cb36b00f604407db2..570e131a5f2b3cb5542a48486f5dd4bb6264e3f1 100644 (file)
 ;; ./mach.d/c99tab.scm
 
-;; Copyright 2016,2017 Matthew R. Wette
+;; Copyright (C) 2016,2017 Matthew R. Wette
 ;; 
 ;; This software is covered by the GNU GENERAL PUBLIC LICENCE, Version 3,
 ;; or any later version published by the Free Software Foundation.  See
 ;; the file COPYING included with the this distribution.
 
 (define len-v
-  #(1 1 1 1 1 3 1 4 4 3 3 3 2 2 6 7 1 3 1 3 2 1 1 2 2 2 2 4 1 1 1 1 1 1 1 4 
-    1 3 3 3 1 3 3 1 3 3 1 3 3 3 3 1 3 3 1 3 1 3 1 3 1 3 1 3 1 5 1 3 1 1 1 1 1 
-    1 1 1 1 1 1 1 3 1 5 3 0 1 2 1 2 1 2 1 2 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 
-    1 2 2 3 1 1 2 1 2 2 3 2 3 3 4 3 2 2 1 3 2 4 3 1 2 2 1 1 2 1 2 2 3 5 4 2 5 
-    4 2 1 1 1 1 2 2 4 2 1 2 1 1 3 1 3 2 5 6 4 5 2 1 3 1 3 1 1 1 1 2 1 1 3 5 4 
-    4 3 6 6 5 4 4 4 3 2 1 3 2 1 2 1 3 1 3 2 2 1 1 3 2 1 1 2 1 3 5 4 4 3 6 5 6 
-    4 3 3 2 5 4 5 4 3 4 3 3 2 1 1 3 4 2 1 4 3 2 1 2 3 2 2 0 1 1 1 1 1 1 1 3 4 
-    3 3 2 1 2 1 1 2 1 5 7 5 5 7 8 2 1 1 0 1 3 2 2 3 2 1 2 2 0 1 1 1 1 5 4 3 1 
-    2 0 1 1 1 1 1 1 1 2 1 1 1))
+  #(1 1 1 1 3 1 4 4 3 3 3 2 2 6 7 1 3 1 3 2 1 1 2 2 2 2 4 1 1 1 1 1 1 1 4 1 
+    3 3 3 1 3 3 1 3 3 1 3 3 3 3 1 3 3 1 3 1 3 1 3 1 3 1 3 1 5 1 3 1 1 1 1 1 1 
+    1 1 1 1 1 1 3 1 5 3 0 1 2 1 2 1 2 1 2 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
+    2 2 3 1 1 2 1 2 2 3 2 3 3 4 3 2 2 1 3 2 4 3 1 2 2 1 1 2 1 2 2 3 5 4 2 5 4 
+    2 1 1 1 1 2 2 4 2 1 2 1 1 3 1 3 2 5 6 4 5 2 1 3 1 3 1 1 1 1 2 1 1 3 5 4 4 
+    3 6 6 5 4 4 4 3 2 1 3 2 1 2 1 3 1 3 2 2 1 1 3 2 1 1 2 1 3 5 4 4 3 6 5 6 4 
+    3 3 2 5 4 5 4 3 4 3 3 2 1 1 3 4 2 1 4 3 2 1 2 3 2 1 1 1 1 1 1 1 3 4 3 3 2 
+    1 2 1 1 2 1 5 7 5 5 7 8 2 1 1 0 1 3 2 2 3 2 1 1 2 1 1 1 1 5 4 3 1 2 0 1 1 
+    1 1 1 1 1 2 1 1 1))
 
 (define pat-v
-  #(((352 . 1) (353 . 2) (434 . 3) (435 . 4) (345 . -286) (-1 . -286)) ((68 
-    . 6) (161 . 7) (180 . 8) (187 . 9) (194 . 10) (195 . 11) (200 . 12) (206 
-    . 13) (207 . 14) (196 . 15) (214 . 16) (209 . 17) (226 . 18) (155 . 19) (
-    156 . 20) (157 . 21) (158 . 22) (390 . 23) (391 . 24) (392 . 25) (393 . 26
-    ) (264 . 27) (394 . 28) (395 . 29) (265 . 30) (266 . 31) (84 . 32) (268 . 
-    33) (270 . 34) (399 . 35) (400 . 36) (401 . 37) (402 . 38) (1 . 39) (345 
-    . 40) (422 . 41) (10 . 42) (360 . 43) (386 . 44) (356 . 45) (350 . 46) (
-    351 . 47)) ((345 . -283) (-1 . -283)) ((352 . 1) (353 . 5) (345 . -286) (
-    347 . -1) (-1 . -286)) ((347 . 0)) ((345 . -284) (-1 . -284)) ((-1 . -234)
-    ) ((8 . 85) (5 . 52) (6 . 53) (68 . 6) (390 . 80) (433 . 81) (389 . 86)) (
-    (8 . 83) (5 . 52) (6 . 53) (68 . 6) (390 . 80) (433 . 81) (389 . 84)) ((8 
-    . 79) (5 . 52) (6 . 53) (68 . 6) (390 . 80) (433 . 81) (389 . 82)) ((-1 . 
-    -139)) ((194 . 78) (-1 . -137)) ((194 . 77) (-1 . -136)) ((-1 . -133)) ((
-    226 . 73) (214 . 74) (196 . 75) (206 . 76) (-1 . -128)) ((214 . 70) (196 
-    . 71) (195 . 72) (-1 . -117)) ((-1 . -114)) ((226 . 66) (214 . 67) (196 . 
-    68) (206 . 69) (-1 . -115)) ((214 . 65) (-1 . -110)) ((-1 . -177)) ((-1 . 
-    -176)) ((-1 . -175)) ((-1 . -174)) ((-1 . -109)) ((-1 . -108)) ((-1 . -107
-    )) ((-1 . -106)) ((-1 . -105)) ((-1 . -104)) ((-1 . -103)) ((-1 . -102)) (
-    (-1 . -101)) ((-1 . -100)) ((-1 . -99)) ((-1 . -97)) ((68 . 6) (161 . 7) (
-    180 . 8) (187 . 9) (194 . 10) (195 . 11) (200 . 12) (206 . 13) (207 . 14) 
-    (196 . 15) (214 . 16) (209 . 17) (226 . 18) (155 . 19) (156 . 20) (157 . 
-    21) (158 . 22) (390 . 23) (391 . 24) (392 . 25) (393 . 26) (264 . 27) (394
-    . 28) (395 . 29) (265 . 30) (266 . 31) (84 . 32) (268 . 33) (10 . 60) (
-    270 . 34) (399 . 35) (400 . 36) (401 . 37) (402 . 38) (422 . 64) (-1 . -91
-    )) ((68 . 6) (161 . 7) (180 . 8) (187 . 9) (194 . 10) (195 . 11) (200 . 12
-    ) (206 . 13) (207 . 14) (196 . 15) (214 . 16) (209 . 17) (226 . 18) (155 
-    . 19) (156 . 20) (157 . 21) (158 . 22) (390 . 23) (391 . 24) (392 . 25) (
-    393 . 26) (264 . 27) (394 . 28) (395 . 29) (265 . 30) (266 . 31) (84 . 32)
-    (268 . 33) (10 . 60) (270 . 34) (399 . 35) (400 . 36) (401 . 37) (402 . 
-    38) (422 . 63) (-1 . -89)) ((68 . 6) (161 . 7) (180 . 8) (187 . 9) (194 . 
-    10) (195 . 11) (200 . 12) (206 . 13) (207 . 14) (196 . 15) (214 . 16) (209
-    . 17) (226 . 18) (155 . 19) (156 . 20) (157 . 21) (158 . 22) (390 . 23) (
-    391 . 24) (392 . 25) (393 . 26) (264 . 27) (394 . 28) (395 . 29) (265 . 30
-    ) (266 . 31) (84 . 32) (268 . 33) (10 . 60) (270 . 34) (399 . 35) (400 . 
-    36) (401 . 37) (402 . 38) (422 . 62) (-1 . -87)) ((68 . 6) (161 . 7) (180 
-    . 8) (187 . 9) (194 . 10) (195 . 11) (200 . 12) (206 . 13) (207 . 14) (196
-    . 15) (214 . 16) (209 . 17) (226 . 18) (155 . 19) (156 . 20) (157 . 21) (
-    158 . 22) (390 . 23) (391 . 24) (392 . 25) (393 . 26) (264 . 27) (394 . 28
-    ) (395 . 29) (265 . 30) (266 . 31) (84 . 32) (268 . 33) (10 . 60) (270 . 
-    34) (399 . 35) (400 . 36) (401 . 37) (402 . 38) (422 . 61) (-1 . -85)) ((
-    345 . -307) (-1 . -307)) ((345 . -306) (-1 . -306)) ((398 . 49) (405 . 50)
-    (11 . 51) (5 . 52) (6 . 53) (78 . 54) (25 . 55) (433 . 56) (378 . 57) (
-    379 . 58) (397 . 59)) ((9 . 48) (-1 . -98)) ((345 . -290) (-1 . -290)) ((
-    345 . -289) (-1 . -289)) ((345 . -288) (-1 . -288)) ((345 . -287) (-1 . 
-    -287)) ((345 . -285) (-1 . -285)) ((8 . 126)) ((11 . -93) (61 . -93)) ((
-    404 . 124) (61 . 125) (11 . -84)) ((344 . 121) (348 . 122) (403 . 123) (
-    345 . -296) (-1 . -296)) ((-1 . -299)) ((-1 . -298)) ((156 . 20) (157 . 21
-    ) (158 . 22) (400 . 118) (377 . 119) (78 . 54) (379 . 120) (-1 . -194)) ((
-    5 . 52) (6 . 53) (78 . 54) (25 . 55) (433 . 56) (378 . 57) (379 . 58) (397
-    . 117)) ((-1 . -180)) ((59 . 115) (25 . 116) (-1 . -179)) ((5 . 52) (6 . 
-    53) (25 . 55) (433 . 56) (378 . 114)) ((8 . 108) (365 . 109) (68 . 6) (161
-    . 7) (180 . 8) (187 . 9) (194 . 10) (195 . 11) (200 . 12) (206 . 13) (207
-    . 14) (196 . 15) (214 . 16) (209 . 17) (226 . 18) (155 . 19) (156 . 20) (
-    157 . 21) (158 . 22) (390 . 23) (391 . 24) (392 . 25) (393 . 26) (264 . 27
-    ) (394 . 28) (395 . 29) (265 . 30) (266 . 31) (84 . 32) (268 . 33) (10 . 
-    60) (270 . 34) (399 . 35) (400 . 36) (401 . 37) (402 . 38) (422 . 110) (
-    356 . 111) (349 . 112) (60 . 113) (11 . -95) (61 . -95)) ((-1 . -98)) ((-1
-    . -86)) ((-1 . -88)) ((-1 . -90)) ((-1 . -92)) ((-1 . -111)) ((214 . 107)
-    (-1 . -112)) ((-1 . -116)) ((196 . 105) (214 . 106) (-1 . -119)) ((-1 . 
-    -134)) ((-1 . -118)) ((214 . 104) (-1 . -121)) ((194 . 103) (-1 . -138)) (
-    (214 . 102) (-1 . -126)) ((-1 . -127)) ((196 . 100) (214 . 101) (-1 . -130
-    )) ((-1 . -135)) ((-1 . -140)) ((-1 . -141)) ((68 . 6) (161 . 7) (180 . 8)
-    (187 . 9) (194 . 10) (195 . 11) (200 . 12) (206 . 13) (207 . 14) (196 . 
-    15) (214 . 16) (209 . 17) (226 . 18) (156 . 20) (157 . 21) (158 . 22) (390
-    . 23) (391 . 24) (392 . 25) (393 . 26) (264 . 27) (394 . 28) (395 . 29) (
-    265 . 30) (400 . 92) (401 . 93) (345 . 40) (385 . 94) (386 . 95) (387 . 96
-    ) (388 . 99)) ((-1 . -150)) ((-1 . -149)) ((8 . 98) (-1 . -145)) ((68 . 6)
-    (161 . 7) (180 . 8) (187 . 9) (194 . 10) (195 . 11) (200 . 12) (206 . 13)
-    (207 . 14) (196 . 15) (214 . 16) (209 . 17) (226 . 18) (156 . 20) (157 . 
-    21) (158 . 22) (390 . 23) (391 . 24) (392 . 25) (393 . 26) (264 . 27) (394
-    . 28) (395 . 29) (265 . 30) (400 . 92) (401 . 93) (345 . 40) (385 . 94) (
-    386 . 95) (387 . 96) (388 . 97)) ((8 . 91) (-1 . -148)) ((5 . 52) (6 . 53)
-    (433 . 88) (380 . 89) (381 . 90)) ((8 . 87) (-1 . -169)) ((5 . 52) (6 . 
-    53) (433 . 88) (380 . 89) (381 . 207)) ((60 . 206) (7 . -172) (61 . -172))
-    ((7 . -170) (61 . -170)) ((7 . 204) (61 . 205)) ((68 . 6) (161 . 7) (180 
-    . 8) (187 . 9) (194 . 10) (195 . 11) (200 . 12) (206 . 13) (207 . 14) (196
-    . 15) (214 . 16) (209 . 17) (226 . 18) (156 . 20) (157 . 21) (158 . 22) (
-    390 . 23) (391 . 24) (392 . 25) (393 . 26) (264 . 27) (394 . 28) (395 . 29
-    ) (265 . 30) (400 . 92) (401 . 93) (345 . 40) (385 . 94) (386 . 95) (387 
-    . 96) (388 . 203)) ((68 . 6) (161 . 7) (180 . 8) (187 . 9) (194 . 10) (195
-    . 11) (200 . 12) (206 . 13) (207 . 14) (196 . 15) (214 . 16) (209 . 17) (
-    226 . 18) (156 . 20) (157 . 21) (158 . 22) (390 . 23) (391 . 24) (392 . 25
-    ) (393 . 26) (264 . 27) (394 . 28) (395 . 29) (265 . 30) (400 . 92) (401 
-    . 93) (385 . 202) (-1 . -159)) ((68 . 6) (161 . 7) (180 . 8) (187 . 9) (
-    194 . 10) (195 . 11) (200 . 12) (206 . 13) (207 . 14) (196 . 15) (214 . 16
-    ) (209 . 17) (226 . 18) (156 . 20) (157 . 21) (158 . 22) (390 . 23) (391 
-    . 24) (392 . 25) (393 . 26) (264 . 27) (394 . 28) (395 . 29) (265 . 30) (
-    400 . 92) (401 . 93) (385 . 201) (-1 . -157)) ((5 . 52) (6 . 53) (78 . 54)
-    (25 . 55) (433 . 56) (378 . 57) (379 . 58) (52 . 197) (397 . 198) (383 . 
-    199) (384 . 200)) ((345 . -152) (-1 . -152)) ((345 . -151) (-1 . -151)) ((
-    7 . 196) (68 . 6) (161 . 7) (180 . 8) (187 . 9) (194 . 10) (195 . 11) (200
-    . 12) (206 . 13) (207 . 14) (196 . 15) (214 . 16) (209 . 17) (226 . 18) (
-    156 . 20) (157 . 21) (158 . 22) (390 . 23) (391 . 24) (392 . 25) (393 . 26
-    ) (264 . 27) (394 . 28) (395 . 29) (265 . 30) (400 . 92) (401 . 93) (385 
-    . 94) (387 . 193) (345 . 40) (386 . 194)) ((68 . 6) (161 . 7) (180 . 8) (
-    187 . 9) (194 . 10) (195 . 11) (200 . 12) (206 . 13) (207 . 14) (196 . 15)
-    (214 . 16) (209 . 17) (226 . 18) (156 . 20) (157 . 21) (158 . 22) (390 . 
-    23) (391 . 24) (392 . 25) (393 . 26) (264 . 27) (394 . 28) (395 . 29) (265
-    . 30) (400 . 92) (401 . 93) (345 . 40) (385 . 94) (386 . 95) (387 . 96) (
-    388 . 195)) ((7 . 192) (68 . 6) (161 . 7) (180 . 8) (187 . 9) (194 . 10) (
-    195 . 11) (200 . 12) (206 . 13) (207 . 14) (196 . 15) (214 . 16) (209 . 17
-    ) (226 . 18) (156 . 20) (157 . 21) (158 . 22) (390 . 23) (391 . 24) (392 
-    . 25) (393 . 26) (264 . 27) (394 . 28) (395 . 29) (265 . 30) (400 . 92) (
-    401 . 93) (385 . 94) (387 . 193) (345 . 40) (386 . 194)) ((214 . 191) (-1 
-    . -132)) ((-1 . -129)) ((-1 . -125)) ((-1 . -142)) ((-1 . -122)) ((214 . 
-    190) (-1 . -123)) ((-1 . -120)) ((-1 . -113)) ((68 . 6) (161 . 7) (180 . 8
-    ) (187 . 9) (194 . 10) (195 . 11) (200 . 12) (206 . 13) (207 . 14) (196 . 
-    15) (214 . 16) (209 . 17) (226 . 18) (155 . 19) (156 . 20) (157 . 21) (158
-    . 22) (390 . 23) (391 . 24) (392 . 25) (393 . 26) (264 . 27) (394 . 28) (
-    395 . 29) (265 . 30) (266 . 31) (84 . 32) (268 . 33) (10 . 60) (270 . 34) 
-    (399 . 35) (400 . 36) (401 . 37) (402 . 38) (368 . 184) (422 . 110) (359 
-    . 185) (356 . 186) (357 . 187) (358 . 188) (7 . 189) (-1 . -248)) ((345 . 
-    -293) (-1 . -293)) ((5 . 52) (6 . 53) (78 . 54) (25 . 55) (433 . 56) (378 
-    . 57) (379 . 58) (397 . 128) (398 . 49) (405 . 50) (11 . 51)) ((-1 . -294)
-    ) ((8 . 108) (365 . 182) (68 . 6) (161 . 7) (180 . 8) (187 . 9) (194 . 10)
-    (195 . 11) (200 . 12) (206 . 13) (207 . 14) (196 . 15) (214 . 16) (209 . 
-    17) (226 . 18) (155 . 19) (156 . 20) (157 . 21) (158 . 22) (390 . 23) (391
-    . 24) (392 . 25) (393 . 26) (264 . 27) (394 . 28) (395 . 29) (265 . 30) (
-    266 . 31) (84 . 32) (268 . 33) (10 . 60) (270 . 34) (399 . 35) (400 . 36) 
-    (401 . 37) (402 . 38) (422 . 110) (356 . 183)) ((418 . 143) (417 . 144) (
-    416 . 145) (415 . 146) (414 . 147) (413 . 148) (412 . 149) (9 . 150) (2 . 
-    151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411 . 154) (410 . 155) (431 . 
-    156) (432 . 157) (433 . 158) (409 . 159) (309 . 160) (310 . 161) (302 . 
-    162) (303 . 163) (78 . 178) (293 . 165) (25 . 166) (429 . 167) (408 . 168)
-    (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (420 . 174) (
-    407 . 175) (8 . 179) (424 . 180) (396 . 181)) ((59 . 115) (25 . 116) (-1 
-    . -178)) ((84 . 141) (58 . 142) (418 . 143) (417 . 144) (416 . 145) (415 
-    . 146) (414 . 147) (413 . 148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (
-    4 . 153) (5 . 52) (6 . 53) (411 . 154) (410 . 155) (431 . 156) (432 . 157)
-    (433 . 158) (409 . 159) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (
-    78 . 164) (293 . 165) (25 . 166) (429 . 167) (408 . 168) (317 . 169) (419 
-    . 170) (319 . 171) (320 . 172) (428 . 173) (420 . 174) (407 . 175) (424 . 
-    176) (156 . 20) (157 . 21) (158 . 22) (400 . 118) (377 . 177)) ((23 . 134)
-    (5 . 52) (6 . 53) (433 . 135) (375 . 136) (68 . 6) (161 . 7) (180 . 8) (
-    187 . 9) (194 . 10) (195 . 11) (200 . 12) (206 . 13) (207 . 14) (196 . 15)
-    (214 . 16) (209 . 17) (226 . 18) (155 . 19) (156 . 20) (157 . 21) (158 . 
-    22) (390 . 23) (391 . 24) (392 . 25) (393 . 26) (264 . 27) (394 . 28) (395
-    . 29) (265 . 30) (266 . 31) (84 . 32) (268 . 33) (10 . 60) (270 . 34) (
-    399 . 35) (400 . 36) (401 . 37) (402 . 38) (422 . 137) (373 . 138) (374 . 
-    139) (376 . 140)) ((23 . 133)) ((-1 . -197)) ((78 . 54) (379 . 131) (156 
-    . 20) (157 . 21) (158 . 22) (400 . 132) (-1 . -193)) ((-1 . -196)) ((345 
-    . -305) (-1 . -305)) ((345 . -297) (-1 . -297)) ((345 . -83) (-1 . -83)) (
-    (11 . 130)) ((5 . 52) (6 . 53) (78 . 54) (25 . 55) (433 . 56) (378 . 57) (
-    379 . 58) (397 . 128) (398 . 129)) ((352 . 1) (353 . 2) (434 . 127) (345 
-    . -286) (-1 . -286)) ((7 . 321) (352 . 1) (353 . 5) (345 . -286) (-1 . 
-    -286)) ((60 . 113) (11 . -95) (61 . -95)) ((11 . -94) (61 . -94)) ((344 . 
-    121) (348 . 122) (403 . 320) (345 . -296) (-1 . -296)) ((-1 . -195)) ((-1 
-    . -198)) ((-1 . -181)) ((-1 . -192)) ((23 . -206) (61 . -206)) ((23 . 318)
-    (61 . 319)) ((5 . 52) (6 . 53) (433 . 56) (378 . 57) (397 . 312) (59 . 
-    313) (25 . 314) (78 . 54) (372 . 315) (379 . 316) (421 . 317) (23 . -205) 
-    (61 . -205)) ((61 . -201) (23 . -201)) ((61 . 311) (23 . -199)) ((23 . 310
-    )) ((156 . 20) (157 . 21) (158 . 22) (400 . 118) (377 . 309)) ((-1 . -185)
-    ) ((-1 . -36)) ((78 . 306) (305 . 307) (304 . 308) (-1 . -40)) ((303 . 304
-    ) (302 . 305) (-1 . -43)) ((301 . 302) (300 . 303) (-1 . -46)) ((299 . 298
-    ) (298 . 299) (297 . 300) (296 . 301) (-1 . -51)) ((295 . 296) (294 . 297)
-    (-1 . -54)) ((293 . 295) (-1 . -56)) ((-1 . -303)) ((-1 . -302)) ((-1 . 
-    -301)) ((-1 . -300)) ((292 . 294) (-1 . -58)) ((291 . 293) (-1 . -60)) ((9
-    . 292) (-1 . -4)) ((-1 . -3)) ((-1 . -2)) ((290 . 291) (-1 . -62)) ((-1 
-    . -33)) ((-1 . -32)) ((-1 . -31)) ((-1 . -30)) ((58 . 290) (-1 . -29)) ((
-    -1 . -28)) ((418 . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (
-    413 . 148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6
-    . 53) (411 . 154) (410 . 155) (431 . 156) (432 . 157) (433 . 158) (409 . 
-    159) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165
-    ) (25 . 166) (429 . 167) (408 . 168) (317 . 169) (419 . 170) (319 . 171) (
-    320 . 172) (428 . 173) (420 . 174) (407 . 175) (424 . 223) (430 . 284) (68
-    . 6) (161 . 7) (180 . 8) (187 . 9) (194 . 10) (195 . 11) (200 . 12) (206 
-    . 13) (207 . 14) (196 . 15) (214 . 16) (209 . 17) (226 . 18) (155 . 19) (
-    156 . 20) (157 . 21) (158 . 22) (390 . 23) (391 . 24) (392 . 25) (393 . 26
-    ) (264 . 27) (394 . 28) (395 . 29) (265 . 30) (266 . 31) (84 . 32) (268 . 
-    33) (10 . 60) (270 . 34) (399 . 35) (400 . 285) (401 . 286) (402 . 38) (
-    422 . 287) (385 . 288) (426 . 289)) ((-1 . -6)) ((288 . 282) (289 . 283) (
-    -1 . -64)) ((9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (431
-    . 156) (432 . 157) (433 . 158) (309 . 160) (310 . 161) (302 . 162) (303 
-    . 163) (78 . 178) (293 . 165) (429 . 167) (317 . 169) (419 . 170) (319 . 
-    171) (320 . 172) (428 . 173) (420 . 280) (25 . 281)) ((9 . 150) (2 . 151) 
-    (3 . 152) (4 . 153) (5 . 52) (6 . 53) (431 . 156) (432 . 157) (433 . 158) 
-    (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (
-    429 . 167) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (25
-    . 166) (420 . 210) (418 . 279)) ((9 . 150) (2 . 151) (3 . 152) (4 . 153) 
-    (5 . 52) (6 . 53) (431 . 156) (432 . 157) (433 . 158) (309 . 160) (310 . 
-    161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (25 . 276) (429 . 167)
-    (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (420 . 278)) 
-    ((9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (431 . 156) (
-    432 . 157) (433 . 158) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78
-    . 178) (293 . 165) (25 . 276) (429 . 167) (317 . 169) (419 . 170) (319 . 
-    171) (320 . 172) (428 . 173) (420 . 277)) ((59 . 270) (25 . 271) (57 . 272
-    ) (334 . 273) (320 . 274) (319 . 275) (-1 . -22)) ((276 . 258) (277 . 259)
-    (278 . 260) (279 . 261) (280 . 262) (281 . 263) (282 . 264) (283 . 265) (
-    284 . 266) (285 . 267) (60 . 268) (406 . 269) (-1 . -34)) ((-1 . -66)) ((
-    58 . 257)) ((418 . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (
-    413 . 148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6
-    . 53) (411 . 154) (410 . 155) (431 . 156) (432 . 157) (433 . 158) (409 . 
-    159) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (293 . 165) (25 . 166
-    ) (429 . 167) (408 . 168) (317 . 169) (419 . 170) (319 . 171) (320 . 172) 
-    (428 . 173) (420 . 174) (407 . 175) (424 . 253) (156 . 20) (157 . 21) (158
-    . 22) (400 . 132) (58 . 254) (84 . 255) (78 . 256)) ((-1 . -29)) ((418 . 
-    143) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (413 . 148) (412 . 
-    149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411 . 154)
-    (410 . 155) (431 . 156) (432 . 157) (433 . 158) (409 . 159) (309 . 160) (
-    310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (25 . 166) (429 
-    . 167) (57 . 246) (59 . 247) (408 . 168) (317 . 169) (419 . 170) (319 . 
-    171) (320 . 172) (428 . 173) (369 . 248) (420 . 174) (407 . 175) (370 . 
-    249) (8 . 179) (424 . 180) (396 . 250) (371 . 251) (425 . 252)) ((61 . 
-    -235) (7 . -235) (11 . -235)) ((11 . -96) (61 . -96)) ((345 . -292) (-1 . 
-    -292)) ((-1 . -295)) ((418 . 143) (417 . 144) (416 . 145) (415 . 146) (414
-    . 147) (413 . 148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (
-    411 . 154) (410 . 155) (431 . 156) (432 . 157) (409 . 159) (309 . 160) (
-    310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (25 . 166) (429 
-    . 167) (408 . 168) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 
-    173) (420 . 174) (407 . 175) (5 . 52) (6 . 53) (424 . 223) (1 . 39) (12 . 
-    224) (16 . 225) (18 . 226) (20 . 227) (26 . 228) (31 . 229) (30 . 230) (37
-    . 231) (41 . 232) (11 . 233) (430 . 234) (8 . 108) (53 . 235) (55 . 236) 
-    (433 . 237) (360 . 238) (361 . 239) (362 . 240) (363 . 241) (364 . 242) (
-    365 . 243) (366 . 244) (367 . 245)) ((-1 . -264)) ((-1 . -263)) ((-1 . 
-    -261)) ((7 . 221) (68 . 6) (161 . 7) (180 . 8) (187 . 9) (194 . 10) (195 
-    . 11) (200 . 12) (206 . 13) (207 . 14) (196 . 15) (214 . 16) (209 . 17) (
-    226 . 18) (155 . 19) (156 . 20) (157 . 21) (158 . 22) (390 . 23) (391 . 24
-    ) (392 . 25) (393 . 26) (264 . 27) (394 . 28) (395 . 29) (265 . 30) (266 
-    . 31) (84 . 32) (268 . 33) (10 . 60) (270 . 34) (399 . 35) (400 . 36) (401
-    . 37) (402 . 38) (368 . 184) (422 . 110) (359 . 185) (356 . 186) (357 . 
-    222) (-1 . -248)) ((345 . -260) (-1 . -260)) ((-1 . -124)) ((-1 . -131)) (
-    (-1 . -144)) ((345 . -153) (-1 . -153)) ((345 . -154) (-1 . -154)) ((7 . 
-    220) (68 . 6) (161 . 7) (180 . 8) (187 . 9) (194 . 10) (195 . 11) (200 . 
-    12) (206 . 13) (207 . 14) (196 . 15) (214 . 16) (209 . 17) (226 . 18) (156
-    . 20) (157 . 21) (158 . 22) (390 . 23) (391 . 24) (392 . 25) (393 . 26) (
-    264 . 27) (394 . 28) (395 . 29) (265 . 30) (400 . 92) (401 . 93) (385 . 94
-    ) (387 . 193) (345 . 40) (386 . 194)) ((-1 . -147)) ((9 . 150) (2 . 151) (
-    3 . 152) (4 . 153) (5 . 52) (6 . 53) (431 . 156) (432 . 157) (433 . 158) (
-    309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (429
-    . 167) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (25 . 
-    166) (420 . 210) (418 . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 
-    147) (413 . 148) (412 . 149) (411 . 154) (410 . 155) (409 . 159) (408 . 
-    168) (407 . 211) (382 . 219)) ((52 . 218) (11 . -162) (61 . -162)) ((11 . 
-    -160) (61 . -160)) ((11 . 216) (61 . 217)) ((-1 . -156)) ((-1 . -158)) ((7
-    . 215) (68 . 6) (161 . 7) (180 . 8) (187 . 9) (194 . 10) (195 . 11) (200 
-    . 12) (206 . 13) (207 . 14) (196 . 15) (214 . 16) (209 . 17) (226 . 18) (
-    156 . 20) (157 . 21) (158 . 22) (390 . 23) (391 . 24) (392 . 25) (393 . 26
-    ) (264 . 27) (394 . 28) (395 . 29) (265 . 30) (400 . 92) (401 . 93) (385 
-    . 94) (387 . 193) (345 . 40) (386 . 194)) ((-1 . -167)) ((7 . 213) (5 . 52
-    ) (6 . 53) (433 . 88) (380 . 214)) ((9 . 150) (2 . 151) (3 . 152) (4 . 153
-    ) (5 . 52) (6 . 53) (431 . 156) (432 . 157) (433 . 158) (309 . 160) (310 
-    . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (429 . 167) (317 . 
-    169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (25 . 166) (420 . 210
-    ) (418 . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (413 . 148) 
-    (412 . 149) (411 . 154) (410 . 155) (409 . 159) (408 . 168) (407 . 211) (
-    382 . 212)) ((61 . 208) (7 . 209)) ((5 . 52) (6 . 53) (433 . 88) (380 . 
-    214) (7 . 400)) ((-1 . -165)) ((-1 . -34)) ((-1 . -81)) ((7 . -173) (61 . 
-    -173)) ((-1 . -168)) ((7 . -171) (61 . -171)) ((-1 . -146)) ((344 . 121) (
-    348 . 122) (403 . 399) (345 . -296) (-1 . -296)) ((5 . 52) (6 . 53) (78 . 
-    54) (25 . 55) (433 . 56) (378 . 57) (379 . 58) (52 . 197) (397 . 198) (383
-    . 398)) ((9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (431 
-    . 156) (432 . 157) (433 . 158) (309 . 160) (310 . 161) (302 . 162) (303 . 
-    163) (78 . 178) (293 . 165) (429 . 167) (317 . 169) (419 . 170) (319 . 171
-    ) (320 . 172) (428 . 173) (25 . 166) (420 . 210) (418 . 143) (417 . 144) (
-    416 . 145) (415 . 146) (414 . 147) (413 . 148) (412 . 149) (411 . 154) (
-    410 . 155) (409 . 159) (408 . 168) (407 . 211) (382 . 397)) ((11 . -164) (
-    61 . -164)) ((-1 . -143)) ((345 . -259) (-1 . -259)) ((-1 . -262)) ((-1 . 
-    -79)) ((418 . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (413 . 
-    148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53)
-    (411 . 154) (410 . 155) (431 . 156) (432 . 157) (433 . 158) (409 . 159) (
-    309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (25 
-    . 166) (429 . 167) (408 . 168) (317 . 169) (419 . 170) (319 . 171) (320 . 
-    172) (428 . 173) (420 . 174) (407 . 175) (424 . 223) (430 . 395) (11 . 396
-    )) ((11 . 394)) ((11 . 393)) ((5 . 52) (6 . 53) (433 . 392)) ((25 . 391)) 
-    ((368 . 184) (359 . 390) (-1 . -248)) ((25 . 389)) ((25 . 388)) ((25 . 387
-    )) ((-1 . -266)) ((11 . 386) (61 . 359)) ((52 . 385)) ((9 . 150) (2 . 151)
-    (3 . 152) (4 . 153) (5 . 52) (6 . 53) (431 . 156) (432 . 157) (433 . 158)
-    (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (
-    429 . 167) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (25
-    . 166) (420 . 210) (418 . 143) (417 . 144) (416 . 145) (415 . 146) (414 
-    . 147) (413 . 148) (412 . 149) (411 . 154) (410 . 155) (409 . 159) (408 . 
-    168) (407 . 211) (382 . 384)) ((52 . 383) (-1 . -2)) ((-1 . -255)) ((-1 . 
-    -254)) ((-1 . -253)) ((-1 . -252)) ((-1 . -251)) ((-1 . -250)) ((-1 . -249
-    )) ((-1 . -247)) ((5 . 52) (6 . 53) (433 . 382)) ((9 . 150) (2 . 151) (3 
-    . 152) (4 . 153) (5 . 52) (6 . 53) (431 . 156) (432 . 157) (433 . 158) (
-    309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (429
-    . 167) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (25 . 
-    166) (420 . 210) (418 . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 
-    147) (413 . 148) (412 . 149) (411 . 154) (410 . 155) (409 . 159) (408 . 
-    168) (407 . 211) (382 . 381)) ((60 . -243) (57 . -243) (59 . -243)) ((60 
-    . 379) (57 . 246) (59 . 247) (369 . 380)) ((61 . -239) (7 . -239)) ((418 
-    . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (413 . 148) (412 . 
-    149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411 . 154)
-    (410 . 155) (431 . 156) (432 . 157) (433 . 158) (409 . 159) (309 . 160) (
-    310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (25 . 166) (429 
-    . 167) (408 . 168) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 
-    173) (420 . 174) (407 . 175) (8 . 179) (424 . 180) (396 . 378)) ((61 . 376
-    ) (7 . 377)) ((58 . 375)) ((-1 . -183)) ((418 . 143) (417 . 144) (416 . 
-    145) (415 . 146) (414 . 147) (413 . 148) (412 . 149) (9 . 150) (2 . 151) (
-    3 . 152) (4 . 153) (5 . 52) (6 . 53) (411 . 154) (410 . 155) (431 . 156) (
-    432 . 157) (433 . 158) (409 . 159) (309 . 160) (310 . 161) (302 . 162) (
-    303 . 163) (78 . 178) (293 . 165) (25 . 166) (429 . 167) (408 . 168) (317 
-    . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (420 . 174) (407 . 
-    175) (424 . 374)) ((58 . 373) (-1 . -29)) ((-1 . -184)) ((-1 . -78)) ((-1 
-    . -77)) ((-1 . -76)) ((-1 . -75)) ((-1 . -74)) ((-1 . -73)) ((-1 . -72)) (
-    (-1 . -71)) ((-1 . -70)) ((-1 . -69)) ((-1 . -68)) ((418 . 143) (417 . 144
-    ) (416 . 145) (415 . 146) (414 . 147) (413 . 148) (412 . 149) (9 . 150) (2
-    . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411 . 154) (410 . 155) (431
-    . 156) (432 . 157) (433 . 158) (409 . 159) (309 . 160) (310 . 161) (302 
-    . 162) (303 . 163) (78 . 178) (293 . 165) (25 . 166) (429 . 167) (408 . 
-    168) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (420 . 
-    174) (407 . 175) (424 . 372)) ((418 . 143) (417 . 144) (416 . 145) (415 . 
-    146) (414 . 147) (413 . 148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 
-    . 153) (5 . 52) (6 . 53) (411 . 154) (410 . 155) (431 . 156) (432 . 157) (
-    433 . 158) (409 . 159) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78
-    . 178) (293 . 165) (25 . 166) (429 . 167) (408 . 168) (317 . 169) (419 . 
-    170) (319 . 171) (320 . 172) (428 . 173) (420 . 174) (407 . 175) (424 . 
-    223) (430 . 371)) ((23 . 366) (418 . 143) (417 . 144) (416 . 145) (415 . 
-    146) (414 . 147) (413 . 148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 
-    . 153) (5 . 52) (6 . 53) (411 . 154) (68 . 6) (161 . 7) (180 . 8) (187 . 9
-    ) (194 . 10) (195 . 11) (200 . 12) (206 . 13) (207 . 14) (196 . 15) (214 
-    . 16) (209 . 17) (226 . 18) (410 . 155) (431 . 156) (432 . 157) (433 . 158
-    ) (155 . 19) (156 . 20) (157 . 21) (158 . 22) (390 . 23) (391 . 24) (392 
-    . 25) (393 . 26) (264 . 27) (394 . 28) (395 . 29) (265 . 30) (266 . 31) (
-    84 . 32) (268 . 33) (10 . 60) (270 . 34) (409 . 159) (309 . 160) (310 . 
-    161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (25 . 166) (429 . 167)
-    (399 . 35) (400 . 36) (401 . 37) (402 . 38) (408 . 168) (317 . 169) (419 
-    . 170) (319 . 171) (320 . 172) (428 . 173) (420 . 174) (407 . 175) (422 . 
-    367) (423 . 368) (424 . 369) (427 . 370)) ((5 . 52) (6 . 53) (433 . 365)) 
-    ((5 . 52) (6 . 53) (433 . 364)) ((-1 . -12)) ((-1 . -13)) ((68 . 6) (161 
-    . 7) (180 . 8) (187 . 9) (194 . 10) (195 . 11) (200 . 12) (206 . 13) (207 
-    . 14) (196 . 15) (214 . 16) (209 . 17) (226 . 18) (155 . 19) (156 . 20) (
-    157 . 21) (158 . 22) (390 . 23) (391 . 24) (392 . 25) (393 . 26) (264 . 27
-    ) (394 . 28) (395 . 29) (265 . 30) (266 . 31) (84 . 32) (268 . 33) (10 . 
-    60) (270 . 34) (399 . 35) (400 . 285) (401 . 286) (402 . 38) (422 . 287) (
-    385 . 288) (426 . 363) (418 . 143) (417 . 144) (416 . 145) (415 . 146) (
-    414 . 147) (413 . 148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153)
-    (5 . 52) (6 . 53) (411 . 154) (410 . 155) (431 . 156) (432 . 157) (433 . 
-    158) (409 . 159) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178
-    ) (293 . 165) (25 . 166) (429 . 167) (408 . 168) (317 . 169) (419 . 170) (
-    319 . 171) (320 . 172) (428 . 173) (420 . 174) (407 . 175) (424 . 223) (
-    430 . 284)) ((-1 . -23)) ((-1 . -24)) ((-1 . -25)) ((-1 . -26)) ((68 . 6) 
-    (161 . 7) (180 . 8) (187 . 9) (194 . 10) (195 . 11) (200 . 12) (206 . 13) 
-    (207 . 14) (196 . 15) (214 . 16) (209 . 17) (226 . 18) (155 . 19) (156 . 
-    20) (157 . 21) (158 . 22) (390 . 23) (391 . 24) (392 . 25) (393 . 26) (264
-    . 27) (394 . 28) (395 . 29) (265 . 30) (266 . 31) (84 . 32) (268 . 33) (
-    10 . 60) (270 . 34) (399 . 35) (400 . 285) (401 . 286) (402 . 38) (422 . 
-    287) (385 . 288) (426 . 362) (418 . 143) (417 . 144) (416 . 145) (415 . 
-    146) (414 . 147) (413 . 148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 
-    . 153) (5 . 52) (6 . 53) (411 . 154) (410 . 155) (431 . 156) (432 . 157) (
-    433 . 158) (409 . 159) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78
-    . 178) (293 . 165) (25 . 166) (429 . 167) (408 . 168) (317 . 169) (419 . 
-    170) (319 . 171) (320 . 172) (428 . 173) (420 . 174) (407 . 175) (424 . 
-    223) (430 . 284)) ((418 . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 
-    147) (413 . 148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 
-    52) (6 . 53) (411 . 154) (410 . 155) (431 . 156) (432 . 157) (433 . 158) (
-    409 . 159) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293
-    . 165) (25 . 166) (429 . 167) (408 . 168) (317 . 169) (419 . 170) (319 . 
-    171) (320 . 172) (428 . 173) (420 . 174) (407 . 175) (424 . 223) (430 . 
-    361)) ((9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (431 . 
-    156) (432 . 157) (433 . 158) (309 . 160) (310 . 161) (302 . 162) (303 . 
-    163) (78 . 178) (293 . 165) (429 . 167) (317 . 169) (419 . 170) (319 . 171
-    ) (320 . 172) (428 . 173) (25 . 166) (420 . 210) (418 . 143) (417 . 144) (
-    416 . 145) (415 . 146) (414 . 147) (413 . 148) (412 . 149) (411 . 154) (
-    410 . 155) (409 . 360)) ((23 . 358) (61 . 359)) ((155 . 19) (266 . 31) (84
-    . 32) (268 . 33) (10 . 60) (270 . 34) (399 . 35) (402 . 38) (422 . 63) (
-    68 . 6) (161 . 7) (180 . 8) (187 . 9) (194 . 10) (195 . 11) (200 . 12) (
-    206 . 13) (207 . 14) (196 . 15) (214 . 16) (209 . 17) (226 . 18) (156 . 20
-    ) (157 . 21) (158 . 22) (390 . 23) (391 . 24) (392 . 25) (393 . 26) (264 
-    . 27) (394 . 28) (395 . 29) (265 . 30) (400 . 285) (401 . 286) (385 . 202)
-    (23 . -89) (78 . -159) (59 . -159) (25 . -159)) ((155 . 19) (266 . 31) (
-    84 . 32) (268 . 33) (10 . 60) (270 . 34) (399 . 35) (402 . 38) (422 . 62) 
-    (68 . 6) (161 . 7) (180 . 8) (187 . 9) (194 . 10) (195 . 11) (200 . 12) (
-    206 . 13) (207 . 14) (196 . 15) (214 . 16) (209 . 17) (226 . 18) (156 . 20
-    ) (157 . 21) (158 . 22) (390 . 23) (391 . 24) (392 . 25) (393 . 26) (264 
-    . 27) (394 . 28) (395 . 29) (265 . 30) (400 . 285) (401 . 286) (385 . 201)
-    (23 . -87) (78 . -157) (59 . -157) (25 . -157)) ((23 . -209)) ((59 . 313)
-    (25 . 355) (78 . 54) (372 . 315) (379 . 356) (421 . 357)) ((23 . 354)) ((
-    -1 . -189)) ((9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (
-    431 . 156) (432 . 157) (433 . 158) (309 . 160) (310 . 161) (302 . 162) (
-    303 . 163) (78 . 178) (293 . 165) (429 . 167) (317 . 169) (419 . 170) (319
-    . 171) (320 . 172) (428 . 173) (25 . 166) (420 . 210) (418 . 143) (417 . 
-    144) (416 . 145) (415 . 146) (414 . 147) (413 . 148) (412 . 149) (411 . 
-    154) (410 . 353)) ((-1 . -304)) ((9 . 150) (2 . 151) (3 . 152) (4 . 153) (
-    5 . 52) (6 . 53) (431 . 156) (432 . 157) (433 . 158) (309 . 160) (310 . 
-    161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (429 . 167) (317 . 169
-    ) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (25 . 166) (420 . 210) (
-    418 . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (413 . 148) (
-    412 . 149) (411 . 352)) ((9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) 
-    (6 . 53) (431 . 156) (432 . 157) (433 . 158) (309 . 160) (310 . 161) (302 
-    . 162) (303 . 163) (78 . 178) (293 . 165) (429 . 167) (317 . 169) (419 . 
-    170) (319 . 171) (320 . 172) (428 . 173) (25 . 166) (420 . 210) (418 . 143
-    ) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (413 . 148) (412 . 351))
-    ((9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (431 . 156) (
-    432 . 157) (433 . 158) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78
-    . 178) (293 . 165) (429 . 167) (317 . 169) (419 . 170) (319 . 171) (320 
-    . 172) (428 . 173) (25 . 166) (420 . 210) (418 . 143) (417 . 144) (416 . 
-    145) (415 . 146) (414 . 147) (413 . 350)) ((9 . 150) (2 . 151) (3 . 152) (
-    4 . 153) (5 . 52) (6 . 53) (431 . 156) (432 . 157) (433 . 158) (309 . 160)
-    (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (429 . 167) (
-    317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (25 . 166) (420
-    . 210) (418 . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 349)) ((9 
-    . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (431 . 156) (432 . 
-    157) (433 . 158) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178
-    ) (293 . 165) (429 . 167) (317 . 169) (419 . 170) (319 . 171) (320 . 172) 
-    (428 . 173) (25 . 166) (420 . 210) (418 . 143) (417 . 144) (416 . 145) (
-    415 . 146) (414 . 348)) ((9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) 
-    (6 . 53) (431 . 156) (432 . 157) (433 . 158) (309 . 160) (310 . 161) (302 
-    . 162) (303 . 163) (78 . 178) (293 . 165) (429 . 167) (317 . 169) (419 . 
-    170) (319 . 171) (320 . 172) (428 . 173) (25 . 166) (420 . 210) (418 . 143
-    ) (417 . 144) (416 . 145) (415 . 347)) ((9 . 150) (2 . 151) (3 . 152) (4 
-    . 153) (5 . 52) (6 . 53) (431 . 156) (432 . 157) (433 . 158) (309 . 160) (
-    310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (429 . 167) (317
-    . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (25 . 166) (420 . 
-    210) (418 . 143) (417 . 144) (416 . 145) (415 . 346)) ((9 . 150) (2 . 151)
-    (3 . 152) (4 . 153) (5 . 52) (6 . 53) (431 . 156) (432 . 157) (433 . 158)
-    (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (
-    429 . 167) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (25
-    . 166) (420 . 210) (418 . 143) (417 . 144) (416 . 145) (415 . 345)) ((9 
-    . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (431 . 156) (432 . 
-    157) (433 . 158) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178
-    ) (293 . 165) (429 . 167) (317 . 169) (419 . 170) (319 . 171) (320 . 172) 
-    (428 . 173) (25 . 166) (420 . 210) (418 . 143) (417 . 144) (416 . 145) (
-    415 . 344)) ((9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (
-    431 . 156) (432 . 157) (433 . 158) (309 . 160) (310 . 161) (302 . 162) (
-    303 . 163) (78 . 178) (293 . 165) (429 . 167) (317 . 169) (419 . 170) (319
-    . 171) (320 . 172) (428 . 173) (25 . 166) (420 . 210) (418 . 143) (417 . 
-    144) (416 . 343)) ((9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 
-    53) (431 . 156) (432 . 157) (433 . 158) (309 . 160) (310 . 161) (302 . 162
-    ) (303 . 163) (78 . 178) (293 . 165) (429 . 167) (317 . 169) (419 . 170) (
-    319 . 171) (320 . 172) (428 . 173) (25 . 166) (420 . 210) (418 . 143) (417
-    . 144) (416 . 342)) ((9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 
-    . 53) (431 . 156) (432 . 157) (433 . 158) (309 . 160) (310 . 161) (302 . 
-    162) (303 . 163) (78 . 178) (293 . 165) (429 . 167) (317 . 169) (419 . 170
-    ) (319 . 171) (320 . 172) (428 . 173) (25 . 166) (420 . 210) (418 . 143) (
-    417 . 341)) ((9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (
-    431 . 156) (432 . 157) (433 . 158) (309 . 160) (310 . 161) (302 . 162) (
-    303 . 163) (78 . 178) (293 . 165) (429 . 167) (317 . 169) (419 . 170) (319
-    . 171) (320 . 172) (428 . 173) (25 . 166) (420 . 210) (418 . 143) (417 . 
-    340)) ((9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (431 . 
-    156) (432 . 157) (433 . 158) (309 . 160) (310 . 161) (302 . 162) (303 . 
-    163) (78 . 178) (293 . 165) (429 . 167) (317 . 169) (419 . 170) (319 . 171
-    ) (320 . 172) (428 . 173) (25 . 166) (420 . 210) (418 . 339)) ((9 . 150) (
-    2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (431 . 156) (432 . 157) (
-    433 . 158) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293
-    . 165) (429 . 167) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 
-    . 173) (25 . 166) (420 . 210) (418 . 338)) ((9 . 150) (2 . 151) (3 . 152) 
-    (4 . 153) (5 . 52) (6 . 53) (431 . 156) (432 . 157) (433 . 158) (309 . 160
-    ) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (429 . 167) (
-    317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (25 . 166) (420
-    . 210) (418 . 337)) ((418 . 143) (417 . 144) (416 . 145) (415 . 146) (414
-    . 147) (413 . 148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5
-    . 52) (6 . 53) (411 . 154) (410 . 155) (431 . 156) (432 . 157) (433 . 158
-    ) (409 . 159) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (
-    293 . 165) (25 . 166) (429 . 167) (408 . 168) (317 . 169) (419 . 170) (319
-    . 171) (320 . 172) (428 . 173) (420 . 174) (407 . 175) (424 . 336) (156 
-    . 20) (157 . 21) (158 . 22) (400 . 132)) ((-1 . -190)) ((68 . 6) (161 . 7)
-    (180 . 8) (187 . 9) (194 . 10) (195 . 11) (200 . 12) (206 . 13) (207 . 14
-    ) (196 . 15) (214 . 16) (209 . 17) (226 . 18) (155 . 19) (156 . 20) (157 
-    . 21) (158 . 22) (390 . 23) (391 . 24) (392 . 25) (393 . 26) (264 . 27) (
-    394 . 28) (395 . 29) (265 . 30) (266 . 31) (84 . 32) (268 . 33) (10 . 60) 
-    (270 . 34) (399 . 35) (400 . 36) (401 . 37) (402 . 38) (422 . 137) (373 . 
-    334) (121 . 335)) ((23 . -203) (61 . -203)) ((418 . 143) (417 . 144) (416 
-    . 145) (415 . 146) (414 . 147) (413 . 148) (412 . 149) (9 . 150) (2 . 151)
-    (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411 . 154) (410 . 155) (431 . 156)
-    (432 . 157) (433 . 158) (409 . 159) (309 . 160) (310 . 161) (302 . 162) (
-    303 . 163) (293 . 165) (25 . 166) (429 . 167) (408 . 168) (317 . 169) (419
-    . 170) (319 . 171) (320 . 172) (428 . 173) (420 . 174) (407 . 175) (424 
-    . 329) (58 . 330) (84 . 331) (156 . 20) (157 . 21) (158 . 22) (400 . 118) 
-    (377 . 332) (78 . 333)) ((59 . 313) (372 . 315) (421 . 326) (68 . 6) (161 
-    . 7) (180 . 8) (187 . 9) (194 . 10) (195 . 11) (200 . 12) (206 . 13) (207 
-    . 14) (196 . 15) (214 . 16) (209 . 17) (226 . 18) (155 . 19) (156 . 20) (
-    157 . 21) (158 . 22) (390 . 23) (391 . 24) (392 . 25) (393 . 26) (264 . 27
-    ) (394 . 28) (395 . 29) (265 . 30) (266 . 31) (84 . 32) (268 . 33) (10 . 
-    60) (270 . 34) (399 . 35) (400 . 36) (401 . 37) (402 . 38) (422 . 137) (
-    373 . 138) (374 . 139) (376 . 327) (23 . 328) (5 . 52) (6 . 53) (78 . 54) 
-    (25 . 314) (433 . 56) (378 . 57) (379 . 316) (397 . 117)) ((59 . 324) (25 
-    . 325) (23 . -212) (61 . -212)) ((59 . 313) (372 . 323) (5 . 52) (6 . 53) 
-    (25 . 314) (433 . 56) (378 . 114) (23 . -210) (61 . -210)) ((23 . -204) (
-    61 . -204)) ((-1 . -191)) ((5 . 52) (6 . 53) (433 . 322)) ((345 . -82) (-1
-    . -82)) ((345 . -291) (-1 . -291)) ((23 . -207) (61 . -207)) ((59 . 324) 
-    (25 . 325) (23 . -211) (61 . -211)) ((84 . 440) (58 . 441) (418 . 143) (
-    417 . 144) (416 . 145) (415 . 146) (414 . 147) (413 . 148) (412 . 149) (9 
-    . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411 . 154) (410 . 
-    155) (431 . 156) (432 . 157) (433 . 158) (409 . 159) (309 . 160) (310 . 
-    161) (302 . 162) (303 . 163) (78 . 442) (293 . 165) (25 . 166) (429 . 167)
-    (408 . 168) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (
-    420 . 174) (407 . 175) (424 . 443) (156 . 20) (157 . 21) (158 . 22) (400 
-    . 118) (377 . 444)) ((23 . 438) (68 . 6) (161 . 7) (180 . 8) (187 . 9) (
-    194 . 10) (195 . 11) (200 . 12) (206 . 13) (207 . 14) (196 . 15) (214 . 16
-    ) (209 . 17) (226 . 18) (155 . 19) (156 . 20) (157 . 21) (158 . 22) (390 
-    . 23) (391 . 24) (392 . 25) (393 . 26) (264 . 27) (394 . 28) (395 . 29) (
-    265 . 30) (266 . 31) (84 . 32) (268 . 33) (10 . 60) (270 . 34) (399 . 35) 
-    (400 . 36) (401 . 37) (402 . 38) (422 . 137) (373 . 138) (374 . 139) (376 
-    . 439)) ((23 . 437)) ((23 . 436)) ((-1 . -233)) ((58 . 435)) ((-1 . -224))
-    ((156 . 20) (157 . 21) (158 . 22) (400 . 118) (377 . 434)) ((84 . 431) (
-    156 . 20) (157 . 21) (158 . 22) (400 . 132) (58 . 432) (418 . 143) (417 . 
-    144) (416 . 145) (415 . 146) (414 . 147) (413 . 148) (412 . 149) (9 . 150)
-    (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411 . 154) (410 . 155) (
-    431 . 156) (432 . 157) (433 . 158) (409 . 159) (309 . 160) (310 . 161) (
-    302 . 162) (303 . 163) (78 . 178) (293 . 165) (25 . 166) (429 . 167) (408 
-    . 168) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (420 . 
-    174) (407 . 175) (424 . 433)) ((58 . 430) (-1 . -29)) ((61 . -202) (23 . 
-    -202)) ((23 . -200)) ((58 . 429)) ((-1 . -39)) ((-1 . -38)) ((-1 . -37)) (
-    (78 . 306) (305 . 307) (304 . 308) (-1 . -42)) ((78 . 306) (305 . 307) (
-    304 . 308) (-1 . -41)) ((303 . 304) (302 . 305) (-1 . -45)) ((303 . 304) (
-    302 . 305) (-1 . -44)) ((301 . 302) (300 . 303) (-1 . -50)) ((301 . 302) (
-    300 . 303) (-1 . -49)) ((301 . 302) (300 . 303) (-1 . -48)) ((301 . 302) (
-    300 . 303) (-1 . -47)) ((299 . 298) (298 . 299) (297 . 300) (296 . 301) (
-    -1 . -53)) ((299 . 298) (298 . 299) (297 . 300) (296 . 301) (-1 . -52)) ((
-    295 . 296) (294 . 297) (-1 . -55)) ((293 . 295) (-1 . -57)) ((292 . 294) (
-    -1 . -59)) ((291 . 293) (-1 . -61)) ((8 . 427) (9 . 150) (2 . 151) (3 . 
-    152) (4 . 153) (5 . 52) (6 . 53) (431 . 156) (432 . 157) (433 . 158) (309 
-    . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (429 . 
-    167) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (25 . 166
-    ) (420 . 210) (418 . 428)) ((59 . 313) (25 . 355) (78 . 54) (372 . 315) (
-    379 . 356) (421 . 326) (68 . 6) (161 . 7) (180 . 8) (187 . 9) (194 . 10) (
-    195 . 11) (200 . 12) (206 . 13) (207 . 14) (196 . 15) (214 . 16) (209 . 17
-    ) (226 . 18) (155 . 19) (156 . 20) (157 . 21) (158 . 22) (390 . 23) (391 
-    . 24) (392 . 25) (393 . 26) (264 . 27) (394 . 28) (395 . 29) (265 . 30) (
-    266 . 31) (84 . 32) (268 . 33) (10 . 60) (270 . 34) (399 . 35) (400 . 36) 
-    (401 . 37) (402 . 38) (422 . 137) (373 . 138) (374 . 139) (376 . 327) (23 
-    . 328)) ((59 . 313) (25 . 355) (372 . 323) (23 . -210) (61 . -210)) ((23 
-    . -208)) ((-1 . -5)) ((418 . 143) (417 . 144) (416 . 145) (415 . 146) (414
-    . 147) (413 . 148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5
-    . 52) (6 . 53) (411 . 154) (410 . 155) (431 . 156) (432 . 157) (433 . 158
-    ) (409 . 159) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (
-    293 . 165) (25 . 166) (429 . 167) (408 . 168) (317 . 169) (419 . 170) (319
-    . 171) (320 . 172) (428 . 173) (420 . 174) (407 . 175) (424 . 426)) ((290
-    . 291) (-1 . -63)) ((52 . 425) (61 . 359)) ((23 . 424)) ((23 . 423)) ((-1
-    . -11)) ((-1 . -10)) ((-1 . -9)) ((59 . 313) (25 . 355) (78 . 54) (372 . 
-    315) (379 . 356) (421 . 422) (23 . -21) (61 . -21)) ((23 . -18) (61 . -18)
-    ) ((23 . -16) (61 . -16)) ((23 . 420) (61 . 421)) ((58 . 419) (61 . 359)) 
-    ((-1 . -67)) ((-1 . -188)) ((58 . 418)) ((-1 . -182)) ((418 . 143) (417 . 
-    144) (416 . 145) (415 . 146) (414 . 147) (413 . 148) (412 . 149) (9 . 150)
-    (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411 . 154) (410 . 155) (
-    431 . 156) (432 . 157) (433 . 158) (409 . 159) (309 . 160) (310 . 161) (
-    302 . 162) (303 . 163) (78 . 178) (293 . 165) (25 . 166) (429 . 167) (408 
-    . 168) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (420 . 
-    174) (407 . 175) (8 . 179) (424 . 180) (396 . 415) (57 . 246) (59 . 247) (
-    369 . 248) (370 . 249) (371 . 416) (7 . 417)) ((61 . -236) (7 . -236) (11 
-    . -236)) ((61 . -238) (7 . -238)) ((-1 . -242)) ((60 . -244) (57 . -244) (
-    59 . -244)) ((58 . 414)) ((60 . -246) (59 . -246) (57 . -246)) ((368 . 184
-    ) (359 . 413) (-1 . -248)) ((52 . 412)) ((368 . 184) (359 . 411) (-1 . 
-    -248)) ((-1 . -265)) ((418 . 143) (417 . 144) (416 . 145) (415 . 146) (414
-    . 147) (413 . 148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5
-    . 52) (6 . 53) (411 . 154) (410 . 155) (431 . 156) (432 . 157) (433 . 158
-    ) (409 . 159) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (
-    293 . 165) (25 . 166) (429 . 167) (408 . 168) (317 . 169) (419 . 170) (319
-    . 171) (320 . 172) (428 . 173) (420 . 174) (407 . 175) (424 . 223) (430 
-    . 410)) ((418 . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (413 
-    . 148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 
-    53) (411 . 154) (410 . 155) (431 . 156) (432 . 157) (433 . 158) (409 . 159
-    ) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (
-    25 . 166) (429 . 167) (408 . 168) (317 . 169) (419 . 170) (319 . 171) (320
-    . 172) (428 . 173) (420 . 174) (407 . 175) (424 . 223) (430 . 409)) ((418
-    . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (413 . 148) (412 
-    . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411 . 
-    154) (410 . 155) (431 . 156) (432 . 157) (433 . 158) (409 . 159) (309 . 
-    160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (25 . 166)
-    (429 . 167) (408 . 168) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (
-    428 . 173) (420 . 174) (407 . 175) (424 . 223) (430 . 408)) ((30 . 407)) (
-    (418 . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (413 . 148) (
-    412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411 
-    . 154) (410 . 155) (431 . 156) (432 . 157) (433 . 158) (68 . 6) (161 . 7) 
-    (180 . 8) (187 . 9) (194 . 10) (195 . 11) (200 . 12) (206 . 13) (207 . 14)
-    (196 . 15) (214 . 16) (209 . 17) (226 . 18) (409 . 159) (309 . 160) (310 
-    . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (25 . 166) (429 . 
-    167) (155 . 19) (156 . 20) (157 . 21) (158 . 22) (390 . 23) (391 . 24) (
-    392 . 25) (393 . 26) (264 . 27) (394 . 28) (395 . 29) (265 . 30) (266 . 31
-    ) (84 . 32) (268 . 33) (10 . 60) (270 . 34) (408 . 168) (317 . 169) (419 
-    . 170) (319 . 171) (320 . 172) (428 . 173) (399 . 35) (400 . 36) (401 . 37
-    ) (402 . 38) (420 . 174) (407 . 175) (422 . 110) (424 . 223) (356 . 403) (
-    11 . 404) (430 . 405) (355 . 406)) ((11 . 402)) ((-1 . -279)) ((-1 . -280)
-    ) ((11 . 401) (61 . 359)) ((-1 . -282)) ((11 . -163) (61 . -163)) ((11 . 
-    -161) (61 . -161)) ((345 . -155) (-1 . -155)) ((-1 . -166)) ((-1 . -281)) 
-    ((-1 . -278)) ((-1 . -275)) ((-1 . -274)) ((11 . 468) (61 . 359)) ((418 . 
-    143) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (413 . 148) (412 . 
-    149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411 . 154)
-    (410 . 155) (431 . 156) (432 . 157) (433 . 158) (409 . 159) (309 . 160) (
-    310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (25 . 166) (429 
-    . 167) (408 . 168) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 
-    173) (420 . 174) (407 . 175) (424 . 223) (430 . 466) (354 . 467) (11 . 
-    -276)) ((25 . 465)) ((23 . 464) (61 . 359)) ((23 . 463) (61 . 359)) ((61 
-    . 359) (23 . 462)) ((-1 . -258)) ((368 . 184) (359 . 461) (-1 . -248)) ((
-    -1 . -256)) ((60 . -245) (59 . -245) (57 . -245)) ((61 . -241) (7 . -241))
-    ((418 . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (413 . 148) 
-    (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411
-    . 154) (410 . 155) (431 . 156) (432 . 157) (433 . 158) (409 . 159) (309 
-    . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (25 . 
-    166) (429 . 167) (408 . 168) (317 . 169) (419 . 170) (319 . 171) (320 . 
-    172) (428 . 173) (420 . 174) (407 . 175) (8 . 179) (424 . 180) (396 . 460)
-    ) ((61 . -237) (7 . -237) (11 . -237)) ((-1 . -187)) ((-1 . -7)) ((-1 . -8
-    )) ((68 . 6) (161 . 7) (180 . 8) (187 . 9) (194 . 10) (195 . 11) (200 . 12
-    ) (206 . 13) (207 . 14) (196 . 15) (214 . 16) (209 . 17) (226 . 18) (155 
-    . 19) (156 . 20) (157 . 21) (158 . 22) (390 . 23) (391 . 24) (392 . 25) (
-    393 . 26) (264 . 27) (394 . 28) (395 . 29) (265 . 30) (266 . 31) (84 . 32)
-    (268 . 33) (10 . 60) (270 . 34) (399 . 35) (400 . 36) (401 . 37) (402 . 
-    38) (422 . 367) (423 . 458) (418 . 143) (417 . 144) (416 . 145) (415 . 146
-    ) (414 . 147) (413 . 148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 
-    153) (5 . 52) (6 . 53) (411 . 154) (410 . 155) (431 . 156) (432 . 157) (
-    433 . 158) (409 . 159) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78
-    . 178) (293 . 165) (25 . 166) (429 . 167) (408 . 168) (317 . 169) (419 . 
-    170) (319 . 171) (320 . 172) (428 . 173) (420 . 174) (407 . 175) (424 . 
-    459)) ((23 . -20) (61 . -20)) ((8 . 427)) ((8 . 427) (-1 . -27)) ((9 . 150
-    ) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (431 . 156) (432 . 157) 
-    (433 . 158) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (
-    293 . 165) (429 . 167) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (
-    428 . 173) (25 . 166) (420 . 210) (418 . 143) (417 . 144) (416 . 145) (415
-    . 146) (414 . 147) (413 . 148) (412 . 149) (411 . 154) (410 . 155) (409 
-    . 159) (408 . 168) (407 . 457)) ((-1 . -80)) ((418 . 143) (417 . 144) (416
-    . 145) (415 . 146) (414 . 147) (413 . 148) (412 . 149) (9 . 150) (2 . 151
-    ) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411 . 154) (410 . 155) (431 . 156
-    ) (432 . 157) (433 . 158) (409 . 159) (309 . 160) (310 . 161) (302 . 162) 
-    (303 . 163) (78 . 178) (293 . 165) (25 . 166) (429 . 167) (57 . 246) (59 
-    . 247) (408 . 168) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 
-    173) (369 . 248) (420 . 174) (407 . 175) (370 . 249) (8 . 179) (424 . 180)
-    (396 . 250) (371 . 251) (425 . 456)) ((-1 . -35)) ((-1 . -186)) ((-1 . 
-    -229)) ((418 . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (413 
-    . 148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 
-    53) (411 . 154) (410 . 155) (431 . 156) (432 . 157) (433 . 158) (409 . 159
-    ) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (
-    25 . 166) (429 . 167) (408 . 168) (317 . 169) (419 . 170) (319 . 171) (320
-    . 172) (428 . 173) (420 . 174) (407 . 175) (424 . 455)) ((-1 . -222)) ((
-    58 . 454)) ((418 . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (
-    413 . 148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6
-    . 53) (411 . 154) (410 . 155) (431 . 156) (432 . 157) (433 . 158) (409 . 
-    159) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165
-    ) (25 . 166) (429 . 167) (408 . 168) (317 . 169) (419 . 170) (319 . 171) (
-    320 . 172) (428 . 173) (420 . 174) (407 . 175) (424 . 452) (156 . 20) (157
-    . 21) (158 . 22) (400 . 132) (58 . 453)) ((-1 . -223)) ((-1 . -232)) ((-1
-    . -213)) ((-1 . -231)) ((23 . 451)) ((156 . 20) (157 . 21) (158 . 22) (
-    400 . 118) (377 . 450)) ((-1 . -217)) ((58 . 449) (-1 . -29)) ((58 . 448))
-    ((418 . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (413 . 148) 
-    (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411
-    . 154) (410 . 155) (431 . 156) (432 . 157) (433 . 158) (409 . 159) (309 
-    . 160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (25 . 
-    166) (429 . 167) (408 . 168) (317 . 169) (419 . 170) (319 . 171) (320 . 
-    172) (428 . 173) (420 . 174) (407 . 175) (424 . 445) (156 . 20) (157 . 21)
-    (158 . 22) (400 . 132) (58 . 446) (84 . 447)) ((58 . 481)) ((-1 . -215)) 
-    ((418 . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (413 . 148) (
-    412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411 
-    . 154) (410 . 155) (431 . 156) (432 . 157) (433 . 158) (409 . 159) (309 . 
-    160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (25 . 166)
-    (429 . 167) (408 . 168) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (
-    428 . 173) (420 . 174) (407 . 175) (424 . 480)) ((-1 . -216)) ((-1 . -228)
-    ) ((58 . 478) (156 . 20) (157 . 21) (158 . 22) (400 . 132) (418 . 143) (
-    417 . 144) (416 . 145) (415 . 146) (414 . 147) (413 . 148) (412 . 149) (9 
-    . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411 . 154) (410 . 
-    155) (431 . 156) (432 . 157) (433 . 158) (409 . 159) (309 . 160) (310 . 
-    161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (25 . 166) (429 . 167)
-    (408 . 168) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (
-    420 . 174) (407 . 175) (424 . 479)) ((-1 . -230)) ((58 . 477)) ((-1 . -226
-    )) ((-1 . -221)) ((58 . 476)) ((7 . 474) (61 . 475)) ((-1 . -65)) ((23 . 
-    -19) (61 . -19)) ((23 . -17) (61 . -17)) ((61 . -240) (7 . -240)) ((-1 . 
-    -257)) ((368 . 184) (359 . 473) (-1 . -248)) ((368 . 184) (359 . 472) (-1 
-    . -248)) ((368 . 184) (359 . 471) (-1 . -248)) ((418 . 143) (417 . 144) (
-    416 . 145) (415 . 146) (414 . 147) (413 . 148) (412 . 149) (9 . 150) (2 . 
-    151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411 . 154) (410 . 155) (431 . 
-    156) (432 . 157) (433 . 158) (409 . 159) (309 . 160) (310 . 161) (302 . 
-    162) (303 . 163) (78 . 178) (293 . 165) (25 . 166) (429 . 167) (408 . 168)
-    (317 . 169) (419 . 170) (319 . 171) (320 . 172) (428 . 173) (420 . 174) (
-    407 . 175) (424 . 223) (430 . 470)) ((61 . 359) (11 . -277) (23 . -277)) (
-    (11 . 469)) ((-1 . -273)) ((418 . 143) (417 . 144) (416 . 145) (415 . 146)
-    (414 . 147) (413 . 148) (412 . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 
-    153) (5 . 52) (6 . 53) (411 . 154) (410 . 155) (431 . 156) (432 . 157) (
-    433 . 158) (409 . 159) (309 . 160) (310 . 161) (302 . 162) (303 . 163) (78
-    . 178) (293 . 165) (25 . 166) (429 . 167) (408 . 168) (317 . 169) (419 . 
-    170) (319 . 171) (320 . 172) (428 . 173) (420 . 174) (407 . 175) (424 . 
-    223) (430 . 466) (354 . 487) (23 . -276)) ((23 . 486) (61 . 359)) ((-1 . 
-    -270)) ((-1 . -269)) ((38 . 485) (-1 . -267)) ((-1 . -14)) ((7 . 484) (418
-    . 143) (417 . 144) (416 . 145) (415 . 146) (414 . 147) (413 . 148) (412 
-    . 149) (9 . 150) (2 . 151) (3 . 152) (4 . 153) (5 . 52) (6 . 53) (411 . 
-    154) (410 . 155) (431 . 156) (432 . 157) (433 . 158) (409 . 159) (309 . 
-    160) (310 . 161) (302 . 162) (303 . 163) (78 . 178) (293 . 165) (25 . 166)
-    (429 . 167) (408 . 168) (317 . 169) (419 . 170) (319 . 171) (320 . 172) (
-    428 . 173) (420 . 174) (407 . 175) (8 . 179) (424 . 180) (396 . 415) (57 
-    . 246) (59 . 247) (369 . 248) (370 . 249) (371 . 416)) ((-1 . -227)) ((-1 
-    . -225)) ((-1 . -219)) ((58 . 483)) ((58 . 482)) ((-1 . -214)) ((-1 . -220
-    )) ((-1 . -218)) ((-1 . -15)) ((368 . 184) (359 . 490) (-1 . -248)) ((11 
-    . 489)) ((23 . 488)) ((368 . 184) (359 . 491) (-1 . -248)) ((-1 . -271)) (
-    (-1 . -268)) ((-1 . -272))))
+  #(((21 . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 8)
+    (34 . 9) (35 . 10) (37 . 11) (36 . 12) (39 . 13) (23 . 14) (24 . 15) (25 
+    . 16) (26 . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) (140
+    . 23) (141 . 24) (41 . 25) (42 . 26) (43 . 27) (44 . 28) (46 . 29) (145 
+    . 30) (146 . 31) (147 . 32) (148 . 33) (1 . 34) (94 . 35) (168 . 36) (45 
+    . 37) (108 . 38) (132 . 39) (104 . 40) (99 . 41) (100 . 42) (101 . 43) (
+    180 . 44)) ((-1 . -233)) ((84 . 83) (5 . 50) (6 . 51) (21 . 1) (136 . 78) 
+    (179 . 79) (135 . 84)) ((84 . 81) (5 . 50) (6 . 51) (21 . 1) (136 . 78) (
+    179 . 79) (135 . 82)) ((84 . 77) (5 . 50) (6 . 51) (21 . 1) (136 . 78) (
+    179 . 79) (135 . 80)) ((-1 . -138)) ((30 . 76) (-1 . -136)) ((30 . 75) (-1
+    . -135)) ((-1 . -132)) ((39 . 71) (37 . 72) (35 . 73) (33 . 74) (-1 . 
+    -127)) ((37 . 68) (35 . 69) (31 . 70) (-1 . -116)) ((-1 . -113)) ((39 . 64
+    ) (37 . 65) (35 . 66) (33 . 67) (-1 . -114)) ((37 . 63) (-1 . -109)) ((-1 
+    . -176)) ((-1 . -175)) ((-1 . -174)) ((-1 . -173)) ((-1 . -108)) ((-1 . 
+    -107)) ((-1 . -106)) ((-1 . -105)) ((-1 . -104)) ((-1 . -103)) ((-1 . -102
+    )) ((-1 . -101)) ((-1 . -100)) ((-1 . -99)) ((-1 . -98)) ((-1 . -96)) ((21
+    . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 
+    . 9) (35 . 10) (37 . 11) (36 . 12) (39 . 13) (23 . 14) (24 . 15) (25 . 16)
+    (26 . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) (140 . 23
+    ) (141 . 24) (41 . 25) (42 . 26) (43 . 27) (44 . 28) (45 . 58) (46 . 29) (
+    145 . 30) (146 . 31) (147 . 32) (148 . 33) (168 . 62) (-1 . -90)) ((21 . 1
+    ) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 9) 
+    (35 . 10) (37 . 11) (36 . 12) (39 . 13) (23 . 14) (24 . 15) (25 . 16) (26 
+    . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) (140 . 23) (
+    141 . 24) (41 . 25) (42 . 26) (43 . 27) (44 . 28) (45 . 58) (46 . 29) (145
+    . 30) (146 . 31) (147 . 32) (148 . 33) (168 . 61) (-1 . -88)) ((21 . 1) (
+    27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 9) (35
+    . 10) (37 . 11) (36 . 12) (39 . 13) (23 . 14) (24 . 15) (25 . 16) (26 . 
+    17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) (140 . 23) (141 
+    . 24) (41 . 25) (42 . 26) (43 . 27) (44 . 28) (45 . 58) (46 . 29) (145 . 
+    30) (146 . 31) (147 . 32) (148 . 33) (168 . 60) (-1 . -86)) ((21 . 1) (27 
+    . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 
+    10) (37 . 11) (36 . 12) (39 . 13) (23 . 14) (24 . 15) (25 . 16) (26 . 17) 
+    (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) (140 . 23) (141 . 24
+    ) (41 . 25) (42 . 26) (43 . 27) (44 . 28) (45 . 58) (46 . 29) (145 . 30) (
+    146 . 31) (147 . 32) (148 . 33) (168 . 59) (-1 . -84)) ((94 . -303) (-1 . 
+    -303)) ((94 . -302) (-1 . -302)) ((144 . 47) (151 . 48) (47 . 49) (5 . 50)
+    (6 . 51) (79 . 52) (92 . 53) (179 . 54) (124 . 55) (125 . 56) (143 . 57))
+    ((7 . 46) (-1 . -97)) ((94 . -286) (-1 . -286)) ((94 . -285) (-1 . -285))
+    ((94 . -284) (-1 . -284)) ((94 . -283) (-1 . -283)) ((94 . -281) (-1 . 
+    -281)) ((21 . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33
+    . 8) (34 . 9) (35 . 10) (37 . 11) (36 . 12) (39 . 13) (23 . 14) (24 . 15)
+    (25 . 16) (26 . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22)
+    (140 . 23) (141 . 24) (41 . 25) (42 . 26) (43 . 27) (44 . 28) (46 . 29) (
+    145 . 30) (146 . 31) (147 . 32) (148 . 33) (1 . 34) (94 . 35) (168 . 36) (
+    45 . 37) (108 . 38) (132 . 39) (104 . 40) (99 . 41) (100 . 45) (96 . -280)
+    ) ((96 . 0)) ((94 . -282) (-1 . -282)) ((84 . 124)) ((47 . -92) (82 . -92)
+    ) ((150 . 122) (82 . 123) (47 . -83)) ((93 . 119) (97 . 120) (149 . 121) (
+    94 . -292) (-1 . -292)) ((-1 . -295)) ((-1 . -294)) ((24 . 15) (25 . 16) (
+    26 . 17) (146 . 116) (123 . 117) (79 . 52) (125 . 118) (-1 . -193)) ((5 . 
+    50) (6 . 51) (79 . 52) (92 . 53) (179 . 54) (124 . 55) (125 . 56) (143 . 
+    115)) ((-1 . -179)) ((90 . 113) (92 . 114) (-1 . -178)) ((5 . 50) (6 . 51)
+    (92 . 53) (179 . 54) (124 . 112)) ((84 . 106) (113 . 107) (21 . 1) (27 . 
+    2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 10
+    ) (37 . 11) (36 . 12) (39 . 13) (23 . 14) (24 . 15) (25 . 16) (26 . 17) (
+    136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) (140 . 23) (141 . 24)
+    (41 . 25) (42 . 26) (43 . 27) (44 . 28) (45 . 58) (46 . 29) (145 . 30) (
+    146 . 31) (147 . 32) (148 . 33) (168 . 108) (104 . 109) (98 . 110) (58 . 
+    111) (47 . -94) (82 . -94)) ((-1 . -97)) ((-1 . -85)) ((-1 . -87)) ((-1 . 
+    -89)) ((-1 . -91)) ((-1 . -110)) ((37 . 105) (-1 . -111)) ((-1 . -115)) ((
+    35 . 103) (37 . 104) (-1 . -118)) ((-1 . -133)) ((-1 . -117)) ((37 . 102) 
+    (-1 . -120)) ((30 . 101) (-1 . -137)) ((37 . 100) (-1 . -125)) ((-1 . -126
+    )) ((35 . 98) (37 . 99) (-1 . -129)) ((-1 . -134)) ((-1 . -139)) ((-1 . 
+    -140)) ((21 . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33
+    . 8) (34 . 9) (35 . 10) (37 . 11) (36 . 12) (39 . 13) (24 . 15) (25 . 16)
+    (26 . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) (140 . 23
+    ) (141 . 24) (41 . 25) (146 . 90) (147 . 91) (94 . 35) (131 . 92) (132 . 
+    93) (133 . 94) (134 . 97)) ((-1 . -149)) ((-1 . -148)) ((84 . 96) (-1 . 
+    -144)) ((21 . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33
+    . 8) (34 . 9) (35 . 10) (37 . 11) (36 . 12) (39 . 13) (24 . 15) (25 . 16)
+    (26 . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) (140 . 23
+    ) (141 . 24) (41 . 25) (146 . 90) (147 . 91) (94 . 35) (131 . 92) (132 . 
+    93) (133 . 94) (134 . 95)) ((84 . 89) (-1 . -147)) ((5 . 50) (6 . 51) (179
+    . 86) (126 . 87) (127 . 88)) ((84 . 85) (-1 . -168)) ((5 . 50) (6 . 51) (
+    179 . 86) (126 . 87) (127 . 226)) ((58 . 225) (83 . -171) (82 . -171)) ((
+    83 . -169) (82 . -169)) ((83 . 223) (82 . 224)) ((21 . 1) (27 . 2) (28 . 3
+    ) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 10) (37 . 11
+    ) (36 . 12) (39 . 13) (24 . 15) (25 . 16) (26 . 17) (136 . 18) (137 . 19) 
+    (138 . 20) (139 . 21) (40 . 22) (140 . 23) (141 . 24) (41 . 25) (146 . 90)
+    (147 . 91) (94 . 35) (131 . 92) (132 . 93) (133 . 94) (134 . 222)) ((21 
+    . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 
+    9) (35 . 10) (37 . 11) (36 . 12) (39 . 13) (24 . 15) (25 . 16) (26 . 17) (
+    136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) (140 . 23) (141 . 24)
+    (41 . 25) (146 . 90) (147 . 91) (131 . 221) (-1 . -158)) ((21 . 1) (27 . 
+    2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 10
+    ) (37 . 11) (36 . 12) (39 . 13) (24 . 15) (25 . 16) (26 . 17) (136 . 18) (
+    137 . 19) (138 . 20) (139 . 21) (40 . 22) (140 . 23) (141 . 24) (41 . 25) 
+    (146 . 90) (147 . 91) (131 . 220) (-1 . -156)) ((5 . 50) (6 . 51) (79 . 52
+    ) (92 . 53) (179 . 54) (124 . 55) (125 . 56) (59 . 216) (143 . 217) (129 
+    . 218) (130 . 219)) ((94 . -151) (-1 . -151)) ((94 . -150) (-1 . -150)) ((
+    83 . 215) (21 . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (
+    33 . 8) (34 . 9) (35 . 10) (37 . 11) (36 . 12) (39 . 13) (24 . 15) (25 . 
+    16) (26 . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) (140 
+    . 23) (141 . 24) (41 . 25) (146 . 90) (147 . 91) (131 . 92) (133 . 212) (
+    94 . 35) (132 . 213)) ((21 . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 
+    6) (32 . 7) (33 . 8) (34 . 9) (35 . 10) (37 . 11) (36 . 12) (39 . 13) (24 
+    . 15) (25 . 16) (26 . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 
+    . 22) (140 . 23) (141 . 24) (41 . 25) (146 . 90) (147 . 91) (94 . 35) (131
+    . 92) (132 . 93) (133 . 94) (134 . 214)) ((83 . 211) (21 . 1) (27 . 2) (
+    28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 10) (
+    37 . 11) (36 . 12) (39 . 13) (24 . 15) (25 . 16) (26 . 17) (136 . 18) (137
+    . 19) (138 . 20) (139 . 21) (40 . 22) (140 . 23) (141 . 24) (41 . 25) (
+    146 . 90) (147 . 91) (131 . 92) (133 . 212) (94 . 35) (132 . 213)) ((37 . 
+    210) (-1 . -131)) ((-1 . -128)) ((-1 . -124)) ((-1 . -141)) ((-1 . -121)) 
+    ((37 . 209) (-1 . -122)) ((-1 . -119)) ((-1 . -112)) ((164 . 141) (163 . 
+    142) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148)
+    (2 . 149) (3 . 150) (4 . 151) (157 . 152) (156 . 153) (177 . 154) (178 . 
+    155) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (
+    80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 167) (165 . 168) (85 . 
+    169) (86 . 170) (174 . 171) (21 . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (
+    31 . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 10) (37 . 11) (36 . 12) (39 . 13)
+    (166 . 172) (153 . 173) (5 . 50) (6 . 51) (23 . 14) (24 . 15) (25 . 16) (
+    26 . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) (140 . 23) 
+    (141 . 24) (41 . 25) (42 . 26) (43 . 27) (44 . 28) (45 . 58) (46 . 29) (
+    170 . 182) (1 . 34) (8 . 183) (9 . 184) (10 . 185) (11 . 186) (12 . 187) (
+    13 . 188) (14 . 189) (15 . 190) (18 . 191) (47 . 192) (176 . 193) (84 . 
+    106) (19 . 194) (20 . 195) (179 . 196) (145 . 30) (146 . 31) (147 . 32) (
+    148 . 33) (108 . 197) (109 . 198) (110 . 199) (111 . 200) (112 . 201) (113
+    . 202) (114 . 203) (168 . 108) (107 . 204) (104 . 205) (105 . 206) (106 
+    . 207) (83 . 208)) ((94 . -289) (-1 . -289)) ((5 . 50) (6 . 51) (79 . 52) 
+    (92 . 53) (179 . 54) (124 . 55) (125 . 56) (143 . 126) (144 . 47) (151 . 
+    48) (47 . 49)) ((-1 . -290)) ((84 . 106) (113 . 180) (21 . 1) (27 . 2) (28
+    . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 10) (37 
+    . 11) (36 . 12) (39 . 13) (23 . 14) (24 . 15) (25 . 16) (26 . 17) (136 . 
+    18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) (140 . 23) (141 . 24) (41 
+    . 25) (42 . 26) (43 . 27) (44 . 28) (45 . 58) (46 . 29) (145 . 30) (146 . 
+    31) (147 . 32) (148 . 33) (168 . 108) (104 . 181)) ((164 . 141) (163 . 142
+    ) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2
+    . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (177
+    . 154) (178 . 155) (179 . 156) (155 . 157) (75 . 158) (76 . 159) (77 . 
+    160) (78 . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (
+    81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 
+    . 173) (84 . 177) (170 . 178) (142 . 179)) ((90 . 113) (92 . 114) (-1 . 
+    -177)) ((43 . 139) (89 . 140) (164 . 141) (163 . 142) (162 . 143) (161 . 
+    144) (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 
+    . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (177 . 154) (178 . 155) (
+    179 . 156) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 
+    162) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 167) (165 . 168) 
+    (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 173) (170 . 174) (24 
+    . 15) (25 . 16) (26 . 17) (146 . 116) (123 . 175)) ((91 . 132) (5 . 50) (6
+    . 51) (179 . 133) (121 . 134) (21 . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5
+    ) (31 . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 10) (37 . 11) (36 . 12) (39 . 
+    13) (23 . 14) (24 . 15) (25 . 16) (26 . 17) (136 . 18) (137 . 19) (138 . 
+    20) (139 . 21) (40 . 22) (140 . 23) (141 . 24) (41 . 25) (42 . 26) (43 . 
+    27) (44 . 28) (45 . 58) (46 . 29) (145 . 30) (146 . 31) (147 . 32) (148 . 
+    33) (168 . 135) (119 . 136) (120 . 137) (122 . 138)) ((91 . 131)) ((-1 . 
+    -196)) ((79 . 52) (125 . 129) (24 . 15) (25 . 16) (26 . 17) (146 . 130) (
+    -1 . -192)) ((-1 . -195)) ((94 . -301) (-1 . -301)) ((94 . -293) (-1 . 
+    -293)) ((94 . -82) (-1 . -82)) ((47 . 128)) ((5 . 50) (6 . 51) (79 . 52) (
+    92 . 53) (179 . 54) (124 . 55) (125 . 56) (143 . 126) (144 . 127)) ((21 . 
+    1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 9)
+    (35 . 10) (37 . 11) (36 . 12) (39 . 13) (23 . 14) (24 . 15) (25 . 16) (26
+    . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) (140 . 23) (
+    141 . 24) (41 . 25) (42 . 26) (43 . 27) (44 . 28) (46 . 29) (145 . 30) (
+    146 . 31) (147 . 32) (148 . 33) (1 . 34) (94 . 35) (168 . 36) (45 . 37) (
+    108 . 38) (132 . 39) (104 . 40) (99 . 41) (100 . 42) (101 . 125)) ((83 . 
+    332) (21 . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 
+    8) (34 . 9) (35 . 10) (37 . 11) (36 . 12) (39 . 13) (23 . 14) (24 . 15) (
+    25 . 16) (26 . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) (
+    140 . 23) (141 . 24) (41 . 25) (42 . 26) (43 . 27) (44 . 28) (46 . 29) (
+    145 . 30) (146 . 31) (147 . 32) (148 . 33) (1 . 34) (94 . 35) (168 . 36) (
+    45 . 37) (108 . 38) (132 . 39) (104 . 40) (99 . 41) (100 . 45)) ((58 . 111
+    ) (47 . -94) (82 . -94)) ((47 . -93) (82 . -93)) ((93 . 119) (97 . 120) (
+    149 . 331) (94 . -292) (-1 . -292)) ((-1 . -194)) ((-1 . -197)) ((-1 . 
+    -180)) ((-1 . -191)) ((91 . -205) (82 . -205)) ((91 . 329) (82 . 330)) ((5
+    . 50) (6 . 51) (179 . 54) (124 . 55) (143 . 323) (90 . 324) (92 . 325) (
+    79 . 52) (118 . 326) (125 . 327) (167 . 328) (91 . -204) (82 . -204)) ((82
+    . -200) (91 . -200)) ((82 . 322) (91 . -198)) ((91 . 321)) ((24 . 15) (25
+    . 16) (26 . 17) (146 . 116) (123 . 320)) ((-1 . -184)) ((-1 . -35)) ((79 
+    . 317) (74 . 318) (73 . 319) (-1 . -39)) ((78 . 315) (77 . 316) (-1 . -42)
+    ) ((72 . 313) (71 . 314) (-1 . -45)) ((70 . 309) (69 . 310) (68 . 311) (67
+    . 312) (-1 . -50)) ((66 . 307) (65 . 308) (-1 . -53)) ((80 . 306) (-1 . 
+    -55)) ((-1 . -299)) ((-1 . -298)) ((-1 . -297)) ((-1 . -296)) ((64 . 305) 
+    (-1 . -57)) ((63 . 304) (-1 . -59)) ((7 . 303) (-1 . -3)) ((-1 . -2)) ((-1
+    . -1)) ((62 . 302) (-1 . -61)) ((-1 . -32)) ((-1 . -31)) ((-1 . -30)) ((
+    -1 . -29)) ((89 . 301) (-1 . -28)) ((-1 . -27)) ((164 . 141) (163 . 142) (
+    162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 . 
+    149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (177 . 
+    154) (178 . 155) (179 . 156) (155 . 157) (75 . 158) (76 . 159) (77 . 160) 
+    (78 . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 
+    167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 173)
+    (170 . 182) (176 . 295) (21 . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 
+    . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 10) (37 . 11) (36 . 12) (39 . 13) (
+    23 . 14) (24 . 15) (25 . 16) (26 . 17) (136 . 18) (137 . 19) (138 . 20) (
+    139 . 21) (40 . 22) (140 . 23) (141 . 24) (41 . 25) (42 . 26) (43 . 27) (
+    44 . 28) (45 . 58) (46 . 29) (145 . 30) (146 . 296) (147 . 297) (148 . 33)
+    (168 . 298) (131 . 299) (172 . 300)) ((-1 . -5)) ((60 . 293) (61 . 294) (
+    -1 . -63)) ((7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (177
+    . 154) (178 . 155) (179 . 156) (75 . 158) (76 . 159) (77 . 160) (78 . 161
+    ) (79 . 176) (80 . 163) (175 . 165) (81 . 167) (165 . 168) (85 . 169) (86 
+    . 170) (174 . 171) (166 . 291) (92 . 292)) ((7 . 148) (2 . 149) (3 . 150) 
+    (4 . 151) (5 . 50) (6 . 51) (177 . 154) (178 . 155) (179 . 156) (75 . 158)
+    (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (175 . 165) (81 . 
+    167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (92 . 164) (166 . 229) 
+    (164 . 290)) ((7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (
+    177 . 154) (178 . 155) (179 . 156) (75 . 158) (76 . 159) (77 . 160) (78 . 
+    161) (79 . 176) (80 . 163) (92 . 287) (175 . 165) (81 . 167) (165 . 168) (
+    85 . 169) (86 . 170) (174 . 171) (166 . 289)) ((7 . 148) (2 . 149) (3 . 
+    150) (4 . 151) (5 . 50) (6 . 51) (177 . 154) (178 . 155) (179 . 156) (75 
+    . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (92 . 287) (
+    175 . 165) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 
+    . 288)) ((90 . 281) (92 . 282) (88 . 283) (87 . 284) (86 . 285) (85 . 286)
+    (-1 . -21)) ((48 . 269) (49 . 270) (50 . 271) (51 . 272) (52 . 273) (53 
+    . 274) (54 . 275) (55 . 276) (56 . 277) (57 . 278) (58 . 279) (152 . 280) 
+    (-1 . -33)) ((-1 . -65)) ((89 . 268)) ((164 . 141) (163 . 142) (162 . 143)
+    (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 
+    150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (177 . 154) (178 
+    . 155) (179 . 156) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78 . 161)
+    (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 167) (165 . 168) (85 
+    . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 173) (170 . 264) (24 . 15
+    ) (25 . 16) (26 . 17) (146 . 130) (89 . 265) (43 . 266) (79 . 267)) ((-1 
+    . -28)) ((164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (159 
+    . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 
+    51) (157 . 152) (156 . 153) (177 . 154) (178 . 155) (179 . 156) (155 . 157
+    ) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (92 . 
+    164) (175 . 165) (88 . 257) (90 . 258) (154 . 166) (81 . 167) (165 . 168) 
+    (85 . 169) (86 . 170) (174 . 171) (115 . 259) (166 . 172) (153 . 173) (116
+    . 260) (84 . 177) (170 . 178) (142 . 261) (117 . 262) (171 . 263)) ((82 
+    . -234) (83 . -234) (47 . -234)) ((47 . -95) (82 . -95)) ((94 . -288) (-1 
+    . -288)) ((-1 . -291)) ((-1 . -78)) ((164 . 141) (163 . 142) (162 . 143) (
+    161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 
+    150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (177 . 154) (178 
+    . 155) (179 . 156) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78 . 161)
+    (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 167) (165 
+    . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 173) (170 . 
+    182) (176 . 255) (47 . 256)) ((47 . 254)) ((47 . 253)) ((5 . 50) (6 . 51) 
+    (179 . 252)) ((92 . 251)) ((164 . 141) (163 . 142) (162 . 143) (161 . 144)
+    (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 
+    151) (157 . 152) (156 . 153) (177 . 154) (178 . 155) (155 . 157) (75 . 158
+    ) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (92 . 164) (175 
+    . 165) (154 . 166) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171
+    ) (166 . 172) (153 . 173) (5 . 50) (6 . 51) (170 . 182) (1 . 34) (8 . 183)
+    (9 . 184) (10 . 185) (11 . 186) (12 . 187) (13 . 188) (14 . 189) (15 . 
+    190) (18 . 191) (47 . 192) (176 . 193) (84 . 106) (19 . 194) (20 . 195) (
+    179 . 196) (108 . 197) (109 . 198) (110 . 199) (111 . 200) (112 . 201) (
+    113 . 202) (114 . 203) (107 . 250)) ((92 . 249)) ((92 . 248)) ((92 . 247))
+    ((-1 . -263)) ((47 . 245) (82 . 246)) ((59 . 244)) ((7 . 148) (2 . 149) (
+    3 . 150) (4 . 151) (5 . 50) (6 . 51) (177 . 154) (178 . 155) (179 . 156) (
+    75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (175 . 
+    165) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (92 . 164) (
+    166 . 229) (164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (
+    159 . 146) (158 . 147) (157 . 152) (156 . 153) (155 . 157) (154 . 166) (
+    153 . 230) (128 . 243)) ((59 . 242) (-1 . -1)) ((-1 . -252)) ((-1 . -251))
+    ((-1 . -250)) ((-1 . -249)) ((-1 . -248)) ((-1 . -247)) ((-1 . -246)) ((
+    -1 . -261)) ((-1 . -260)) ((-1 . -258)) ((83 . 240) (164 . 141) (163 . 142
+    ) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2
+    . 149) (3 . 150) (4 . 151) (157 . 152) (156 . 153) (177 . 154) (178 . 155
+    ) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 
+    . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 167) (165 . 168) (85 . 169
+    ) (86 . 170) (174 . 171) (21 . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 
+    . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 10) (37 . 11) (36 . 12) (39 . 13) (
+    166 . 172) (153 . 173) (5 . 50) (6 . 51) (23 . 14) (24 . 15) (25 . 16) (26
+    . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) (140 . 23) (
+    141 . 24) (41 . 25) (42 . 26) (43 . 27) (44 . 28) (45 . 58) (46 . 29) (170
+    . 182) (1 . 34) (8 . 183) (9 . 184) (10 . 185) (11 . 186) (12 . 187) (13 
+    . 188) (14 . 189) (15 . 190) (18 . 191) (47 . 192) (176 . 193) (84 . 106) 
+    (19 . 194) (20 . 195) (179 . 196) (145 . 30) (146 . 31) (147 . 32) (148 . 
+    33) (108 . 197) (109 . 198) (110 . 199) (111 . 200) (112 . 201) (113 . 202
+    ) (114 . 203) (168 . 108) (107 . 204) (104 . 205) (105 . 241)) ((94 . -257
+    ) (-1 . -257)) ((-1 . -123)) ((-1 . -130)) ((-1 . -143)) ((94 . -152) (-1 
+    . -152)) ((94 . -153) (-1 . -153)) ((83 . 239) (21 . 1) (27 . 2) (28 . 3) 
+    (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 10) (37 . 11) 
+    (36 . 12) (39 . 13) (24 . 15) (25 . 16) (26 . 17) (136 . 18) (137 . 19) (
+    138 . 20) (139 . 21) (40 . 22) (140 . 23) (141 . 24) (41 . 25) (146 . 90) 
+    (147 . 91) (131 . 92) (133 . 212) (94 . 35) (132 . 213)) ((-1 . -146)) ((7
+    . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (177 . 154) (178 
+    . 155) (179 . 156) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) 
+    (80 . 163) (175 . 165) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 
+    . 171) (92 . 164) (166 . 229) (164 . 141) (163 . 142) (162 . 143) (161 . 
+    144) (160 . 145) (159 . 146) (158 . 147) (157 . 152) (156 . 153) (155 . 
+    157) (154 . 166) (153 . 230) (128 . 238)) ((59 . 237) (47 . -161) (82 . 
+    -161)) ((47 . -159) (82 . -159)) ((47 . 235) (82 . 236)) ((-1 . -155)) ((
+    -1 . -157)) ((83 . 234) (21 . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 
+    . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 10) (37 . 11) (36 . 12) (39 . 13) (
+    24 . 15) (25 . 16) (26 . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (
+    40 . 22) (140 . 23) (141 . 24) (41 . 25) (146 . 90) (147 . 91) (131 . 92) 
+    (133 . 212) (94 . 35) (132 . 213)) ((-1 . -166)) ((83 . 232) (5 . 50) (6 
+    . 51) (179 . 86) (126 . 233)) ((7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 
+    . 50) (6 . 51) (177 . 154) (178 . 155) (179 . 156) (75 . 158) (76 . 159) (
+    77 . 160) (78 . 161) (79 . 176) (80 . 163) (175 . 165) (81 . 167) (165 . 
+    168) (85 . 169) (86 . 170) (174 . 171) (92 . 164) (166 . 229) (164 . 141) 
+    (163 . 142) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (
+    157 . 152) (156 . 153) (155 . 157) (154 . 166) (153 . 230) (128 . 231)) ((
+    82 . 227) (83 . 228)) ((5 . 50) (6 . 51) (179 . 86) (126 . 233) (83 . 410)
+    ) ((-1 . -164)) ((-1 . -33)) ((-1 . -80)) ((83 . -172) (82 . -172)) ((-1 
+    . -167)) ((83 . -170) (82 . -170)) ((-1 . -145)) ((93 . 119) (97 . 120) (
+    149 . 409) (94 . -292) (-1 . -292)) ((5 . 50) (6 . 51) (79 . 52) (92 . 53)
+    (179 . 54) (124 . 55) (125 . 56) (59 . 216) (143 . 217) (129 . 408)) ((7 
+    . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (177 . 154) (178 . 
+    155) (179 . 156) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (
+    80 . 163) (175 . 165) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 
+    171) (92 . 164) (166 . 229) (164 . 141) (163 . 142) (162 . 143) (161 . 144
+    ) (160 . 145) (159 . 146) (158 . 147) (157 . 152) (156 . 153) (155 . 157) 
+    (154 . 166) (153 . 230) (128 . 407)) ((47 . -163) (82 . -163)) ((-1 . -142
+    )) ((94 . -256) (-1 . -256)) ((-1 . -259)) ((164 . 141) (163 . 142) (162 
+    . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 . 149)
+    (3 . 150) (4 . 151) (157 . 152) (156 . 153) (177 . 154) (178 . 155) (155 
+    . 157) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (
+    92 . 164) (175 . 165) (154 . 166) (81 . 167) (165 . 168) (85 . 169) (86 . 
+    170) (174 . 171) (166 . 172) (153 . 173) (5 . 50) (6 . 51) (170 . 182) (1 
+    . 34) (8 . 183) (9 . 184) (10 . 185) (11 . 186) (12 . 187) (13 . 188) (14 
+    . 189) (15 . 190) (18 . 191) (47 . 192) (176 . 193) (84 . 106) (19 . 194) 
+    (20 . 195) (179 . 196) (108 . 197) (109 . 198) (110 . 199) (111 . 200) (
+    112 . 201) (113 . 202) (114 . 203) (107 . 406)) ((59 . 405)) ((164 . 141) 
+    (163 . 142) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7
+    . 148) (2 . 149) (3 . 150) (4 . 151) (157 . 152) (156 . 153) (177 . 154) 
+    (178 . 155) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 
+    176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 167) (165 . 168) 
+    (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 173) (5 . 50) (6 . 51
+    ) (170 . 182) (1 . 34) (8 . 183) (9 . 184) (10 . 185) (11 . 186) (12 . 187
+    ) (13 . 188) (14 . 189) (15 . 190) (18 . 191) (47 . 192) (176 . 193) (84 
+    . 106) (19 . 194) (20 . 195) (179 . 196) (108 . 197) (109 . 198) (110 . 
+    199) (111 . 200) (112 . 201) (113 . 202) (114 . 203) (107 . 404)) ((-1 . 
+    -262)) ((164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (159 
+    . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 
+    51) (157 . 152) (156 . 153) (177 . 154) (178 . 155) (179 . 156) (155 . 157
+    ) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (92 . 
+    164) (175 . 165) (154 . 166) (81 . 167) (165 . 168) (85 . 169) (86 . 170) 
+    (174 . 171) (166 . 172) (153 . 173) (170 . 403)) ((164 . 141) (163 . 142) 
+    (162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 
+    . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (177 
+    . 154) (178 . 155) (179 . 156) (155 . 157) (75 . 158) (76 . 159) (77 . 160
+    ) (78 . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 
+    . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 
+    173) (170 . 182) (176 . 402)) ((164 . 141) (163 . 142) (162 . 143) (161 . 
+    144) (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 
+    . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (177 . 154) (178 . 155) (
+    179 . 156) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 
+    176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 167) (165 . 168) 
+    (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 173) (170 . 182) (176
+    . 401)) ((164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (159
+    . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 
+    51) (157 . 152) (156 . 153) (177 . 154) (178 . 155) (179 . 156) (155 . 157
+    ) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (92 . 
+    164) (175 . 165) (154 . 166) (81 . 167) (165 . 168) (85 . 169) (86 . 170) 
+    (174 . 171) (166 . 172) (153 . 173) (170 . 182) (176 . 400)) ((14 . 399)) 
+    ((164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (
+    158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 
+    . 152) (156 . 153) (177 . 154) (178 . 155) (179 . 156) (21 . 1) (27 . 2) (
+    28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 10) (
+    37 . 11) (36 . 12) (39 . 13) (155 . 157) (75 . 158) (76 . 159) (77 . 160) 
+    (78 . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (23 . 14) (24 . 15
+    ) (25 . 16) (26 . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22
+    ) (140 . 23) (141 . 24) (41 . 25) (42 . 26) (43 . 27) (44 . 28) (45 . 58) 
+    (46 . 29) (154 . 166) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 
+    171) (145 . 30) (146 . 31) (147 . 32) (148 . 33) (166 . 172) (153 . 173) (
+    168 . 108) (170 . 182) (104 . 395) (47 . 396) (176 . 397) (103 . 398)) ((
+    47 . 394)) ((-1 . -276)) ((-1 . -277)) ((47 . 393) (82 . 246)) ((-1 . -279
+    )) ((5 . 50) (6 . 51) (179 . 392)) ((7 . 148) (2 . 149) (3 . 150) (4 . 151
+    ) (5 . 50) (6 . 51) (177 . 154) (178 . 155) (179 . 156) (75 . 158) (76 . 
+    159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (175 . 165) (81 . 167) (
+    165 . 168) (85 . 169) (86 . 170) (174 . 171) (92 . 164) (166 . 229) (164 
+    . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 
+    147) (157 . 152) (156 . 153) (155 . 157) (154 . 166) (153 . 230) (128 . 
+    391)) ((58 . -242) (88 . -242) (90 . -242)) ((58 . 389) (88 . 257) (90 . 
+    258) (115 . 390)) ((82 . -238) (83 . -238)) ((164 . 141) (163 . 142) (162 
+    . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 . 149)
+    (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (177 . 154)
+    (178 . 155) (179 . 156) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78 
+    . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 167)
+    (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 173) (84
+    . 177) (170 . 178) (142 . 388)) ((82 . 386) (83 . 387)) ((89 . 385)) ((-1
+    . -182)) ((164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (
+    159 . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6
+    . 51) (157 . 152) (156 . 153) (177 . 154) (178 . 155) (179 . 156) (155 . 
+    157) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (92
+    . 164) (175 . 165) (154 . 166) (81 . 167) (165 . 168) (85 . 169) (86 . 
+    170) (174 . 171) (166 . 172) (153 . 173) (170 . 384)) ((89 . 383) (-1 . 
+    -28)) ((-1 . -183)) ((-1 . -77)) ((-1 . -76)) ((-1 . -75)) ((-1 . -74)) ((
+    -1 . -73)) ((-1 . -72)) ((-1 . -71)) ((-1 . -70)) ((-1 . -69)) ((-1 . -68)
+    ) ((-1 . -67)) ((164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145
+    ) (159 . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50)
+    (6 . 51) (157 . 152) (156 . 153) (177 . 154) (178 . 155) (179 . 156) (155
+    . 157) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) 
+    (92 . 164) (175 . 165) (154 . 166) (81 . 167) (165 . 168) (85 . 169) (86 
+    . 170) (174 . 171) (166 . 172) (153 . 173) (170 . 382)) ((164 . 141) (163 
+    . 142) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 
+    148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 
+    153) (177 . 154) (178 . 155) (179 . 156) (155 . 157) (75 . 158) (76 . 159)
+    (77 . 160) (78 . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 
+    . 166) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172
+    ) (153 . 173) (170 . 182) (176 . 381)) ((91 . 376) (164 . 141) (163 . 142)
+    (162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 
+    . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (21 . 1) (27 . 2)
+    (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 10) 
+    (37 . 11) (36 . 12) (39 . 13) (156 . 153) (177 . 154) (178 . 155) (179 . 
+    156) (23 . 14) (24 . 15) (25 . 16) (26 . 17) (136 . 18) (137 . 19) (138 . 
+    20) (139 . 21) (40 . 22) (140 . 23) (141 . 24) (41 . 25) (42 . 26) (43 . 
+    27) (44 . 28) (45 . 58) (46 . 29) (155 . 157) (75 . 158) (76 . 159) (77 . 
+    160) (78 . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (145 . 30) (
+    146 . 31) (147 . 32) (148 . 33) (154 . 166) (81 . 167) (165 . 168) (85 . 
+    169) (86 . 170) (174 . 171) (166 . 172) (153 . 173) (168 . 377) (169 . 378
+    ) (170 . 379) (173 . 380)) ((5 . 50) (6 . 51) (179 . 375)) ((5 . 50) (6 . 
+    51) (179 . 374)) ((-1 . -11)) ((-1 . -12)) ((21 . 1) (27 . 2) (28 . 3) (29
+    . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 10) (37 . 11) (36
+    . 12) (39 . 13) (23 . 14) (24 . 15) (25 . 16) (26 . 17) (136 . 18) (137 
+    . 19) (138 . 20) (139 . 21) (40 . 22) (140 . 23) (141 . 24) (41 . 25) (42 
+    . 26) (43 . 27) (44 . 28) (45 . 58) (46 . 29) (145 . 30) (146 . 296) (147 
+    . 297) (148 . 33) (168 . 298) (131 . 299) (172 . 373) (164 . 141) (163 . 
+    142) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148)
+    (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (
+    177 . 154) (178 . 155) (179 . 156) (155 . 157) (75 . 158) (76 . 159) (77 
+    . 160) (78 . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166)
+    (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153
+    . 173) (170 . 182) (176 . 295)) ((-1 . -22)) ((-1 . -23)) ((-1 . -24)) ((
+    -1 . -25)) ((21 . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7)
+    (33 . 8) (34 . 9) (35 . 10) (37 . 11) (36 . 12) (39 . 13) (23 . 14) (24 
+    . 15) (25 . 16) (26 . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 
+    . 22) (140 . 23) (141 . 24) (41 . 25) (42 . 26) (43 . 27) (44 . 28) (45 . 
+    58) (46 . 29) (145 . 30) (146 . 296) (147 . 297) (148 . 33) (168 . 298) (
+    131 . 299) (172 . 372) (164 . 141) (163 . 142) (162 . 143) (161 . 144) (
+    160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151)
+    (5 . 50) (6 . 51) (157 . 152) (156 . 153) (177 . 154) (178 . 155) (179 . 
+    156) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (
+    80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 167) (165 . 168) (85 . 
+    169) (86 . 170) (174 . 171) (166 . 172) (153 . 173) (170 . 182) (176 . 295
+    )) ((164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (159 . 146
+    ) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (
+    157 . 152) (156 . 153) (177 . 154) (178 . 155) (179 . 156) (155 . 157) (75
+    . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (92 . 164) 
+    (175 . 165) (154 . 166) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 
+    . 171) (166 . 172) (153 . 173) (170 . 182) (176 . 371)) ((7 . 148) (2 . 
+    149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (177 . 154) (178 . 155) (179 . 
+    156) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (
+    175 . 165) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (92 . 
+    164) (166 . 229) (164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 
+    145) (159 . 146) (158 . 147) (157 . 152) (156 . 153) (155 . 370)) ((91 . 
+    369) (82 . 246)) ((23 . 14) (42 . 26) (43 . 27) (44 . 28) (45 . 58) (46 . 
+    29) (145 . 30) (148 . 33) (168 . 61) (21 . 1) (27 . 2) (28 . 3) (29 . 4) (
+    30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 10) (37 . 11) (36 . 12) 
+    (39 . 13) (24 . 15) (25 . 16) (26 . 17) (136 . 18) (137 . 19) (138 . 20) (
+    139 . 21) (40 . 22) (140 . 23) (141 . 24) (41 . 25) (146 . 296) (147 . 297
+    ) (131 . 221) (91 . -88) (79 . -158) (90 . -158) (92 . -158)) ((23 . 14) (
+    42 . 26) (43 . 27) (44 . 28) (45 . 58) (46 . 29) (145 . 30) (148 . 33) (
+    168 . 60) (21 . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (
+    33 . 8) (34 . 9) (35 . 10) (37 . 11) (36 . 12) (39 . 13) (24 . 15) (25 . 
+    16) (26 . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) (140 
+    . 23) (141 . 24) (41 . 25) (146 . 296) (147 . 297) (131 . 220) (91 . -86) 
+    (79 . -156) (90 . -156) (92 . -156)) ((91 . -208)) ((90 . 324) (92 . 366) 
+    (79 . 52) (118 . 326) (125 . 367) (167 . 368)) ((91 . 365)) ((-1 . -188)) 
+    ((7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (177 . 154) (
+    178 . 155) (179 . 156) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 
+    176) (80 . 163) (175 . 165) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (
+    174 . 171) (92 . 164) (166 . 229) (164 . 141) (163 . 142) (162 . 143) (161
+    . 144) (160 . 145) (159 . 146) (158 . 147) (157 . 152) (156 . 364)) ((-1 
+    . -300)) ((7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (177 
+    . 154) (178 . 155) (179 . 156) (75 . 158) (76 . 159) (77 . 160) (78 . 161)
+    (79 . 176) (80 . 163) (175 . 165) (81 . 167) (165 . 168) (85 . 169) (86 
+    . 170) (174 . 171) (92 . 164) (166 . 229) (164 . 141) (163 . 142) (162 . 
+    143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (157 . 363)) ((7 . 
+    148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (177 . 154) (178 . 
+    155) (179 . 156) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (
+    80 . 163) (175 . 165) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 
+    171) (92 . 164) (166 . 229) (164 . 141) (163 . 142) (162 . 143) (161 . 144
+    ) (160 . 145) (159 . 146) (158 . 362)) ((7 . 148) (2 . 149) (3 . 150) (4 
+    . 151) (5 . 50) (6 . 51) (177 . 154) (178 . 155) (179 . 156) (75 . 158) (
+    76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (175 . 165) (81 . 
+    167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (92 . 164) (166 . 229) 
+    (164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (159 . 361)) (
+    (7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (177 . 154) (178
+    . 155) (179 . 156) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176)
+    (80 . 163) (175 . 165) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 
+    . 171) (92 . 164) (166 . 229) (164 . 141) (163 . 142) (162 . 143) (161 . 
+    144) (160 . 360)) ((7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 
+    51) (177 . 154) (178 . 155) (179 . 156) (75 . 158) (76 . 159) (77 . 160) (
+    78 . 161) (79 . 176) (80 . 163) (175 . 165) (81 . 167) (165 . 168) (85 . 
+    169) (86 . 170) (174 . 171) (92 . 164) (166 . 229) (164 . 141) (163 . 142)
+    (162 . 143) (161 . 144) (160 . 359)) ((7 . 148) (2 . 149) (3 . 150) (4 . 
+    151) (5 . 50) (6 . 51) (177 . 154) (178 . 155) (179 . 156) (75 . 158) (76 
+    . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (175 . 165) (81 . 167) 
+    (165 . 168) (85 . 169) (86 . 170) (174 . 171) (92 . 164) (166 . 229) (164 
+    . 141) (163 . 142) (162 . 143) (161 . 358)) ((7 . 148) (2 . 149) (3 . 150)
+    (4 . 151) (5 . 50) (6 . 51) (177 . 154) (178 . 155) (179 . 156) (75 . 158
+    ) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (175 . 165) (81 
+    . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (92 . 164) (166 . 229
+    ) (164 . 141) (163 . 142) (162 . 143) (161 . 357)) ((7 . 148) (2 . 149) (3
+    . 150) (4 . 151) (5 . 50) (6 . 51) (177 . 154) (178 . 155) (179 . 156) (
+    75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (175 . 
+    165) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (92 . 164) (
+    166 . 229) (164 . 141) (163 . 142) (162 . 143) (161 . 356)) ((7 . 148) (2 
+    . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (177 . 154) (178 . 155) (179 
+    . 156) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (
+    175 . 165) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (92 . 
+    164) (166 . 229) (164 . 141) (163 . 142) (162 . 143) (161 . 355)) ((7 . 
+    148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (177 . 154) (178 . 
+    155) (179 . 156) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (
+    80 . 163) (175 . 165) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 
+    171) (92 . 164) (166 . 229) (164 . 141) (163 . 142) (162 . 354)) ((7 . 148
+    ) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (177 . 154) (178 . 155) 
+    (179 . 156) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 
+    163) (175 . 165) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) 
+    (92 . 164) (166 . 229) (164 . 141) (163 . 142) (162 . 353)) ((7 . 148) (2 
+    . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (177 . 154) (178 . 155) (179 
+    . 156) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (
+    175 . 165) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (92 . 
+    164) (166 . 229) (164 . 141) (163 . 352)) ((7 . 148) (2 . 149) (3 . 150) (
+    4 . 151) (5 . 50) (6 . 51) (177 . 154) (178 . 155) (179 . 156) (75 . 158) 
+    (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (175 . 165) (81 . 
+    167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (92 . 164) (166 . 229) 
+    (164 . 141) (163 . 351)) ((7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50)
+    (6 . 51) (177 . 154) (178 . 155) (179 . 156) (75 . 158) (76 . 159) (77 . 
+    160) (78 . 161) (79 . 176) (80 . 163) (175 . 165) (81 . 167) (165 . 168) (
+    85 . 169) (86 . 170) (174 . 171) (92 . 164) (166 . 229) (164 . 350)) ((7 
+    . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (177 . 154) (178 . 
+    155) (179 . 156) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (
+    80 . 163) (175 . 165) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 
+    171) (92 . 164) (166 . 229) (164 . 349)) ((7 . 148) (2 . 149) (3 . 150) (4
+    . 151) (5 . 50) (6 . 51) (177 . 154) (178 . 155) (179 . 156) (75 . 158) (
+    76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (175 . 165) (81 . 
+    167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (92 . 164) (166 . 229) 
+    (164 . 348)) ((164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) 
+    (159 . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (
+    6 . 51) (157 . 152) (156 . 153) (177 . 154) (178 . 155) (179 . 156) (155 
+    . 157) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (
+    92 . 164) (175 . 165) (154 . 166) (81 . 167) (165 . 168) (85 . 169) (86 . 
+    170) (174 . 171) (166 . 172) (153 . 173) (170 . 347) (24 . 15) (25 . 16) (
+    26 . 17) (146 . 130)) ((-1 . -189)) ((21 . 1) (27 . 2) (28 . 3) (29 . 4) (
+    30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 10) (37 . 11) (36 . 12) 
+    (39 . 13) (23 . 14) (24 . 15) (25 . 16) (26 . 17) (136 . 18) (137 . 19) (
+    138 . 20) (139 . 21) (40 . 22) (140 . 23) (141 . 24) (41 . 25) (42 . 26) (
+    43 . 27) (44 . 28) (45 . 58) (46 . 29) (145 . 30) (146 . 31) (147 . 32) (
+    148 . 33) (168 . 135) (119 . 345) (22 . 346)) ((91 . -202) (82 . -202)) ((
+    164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (
+    158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 
+    . 152) (156 . 153) (177 . 154) (178 . 155) (179 . 156) (155 . 157) (75 . 
+    158) (76 . 159) (77 . 160) (78 . 161) (80 . 163) (92 . 164) (175 . 165) (
+    154 . 166) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 
+    . 172) (153 . 173) (170 . 340) (89 . 341) (43 . 342) (24 . 15) (25 . 16) (
+    26 . 17) (146 . 116) (123 . 343) (79 . 344)) ((90 . 324) (118 . 326) (167 
+    . 337) (21 . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 
+    . 8) (34 . 9) (35 . 10) (37 . 11) (36 . 12) (39 . 13) (23 . 14) (24 . 15) 
+    (25 . 16) (26 . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) 
+    (140 . 23) (141 . 24) (41 . 25) (42 . 26) (43 . 27) (44 . 28) (45 . 58) (
+    46 . 29) (145 . 30) (146 . 31) (147 . 32) (148 . 33) (168 . 135) (119 . 
+    136) (120 . 137) (122 . 338) (91 . 339) (5 . 50) (6 . 51) (79 . 52) (92 . 
+    325) (179 . 54) (124 . 55) (125 . 327) (143 . 115)) ((90 . 335) (92 . 336)
+    (91 . -211) (82 . -211)) ((90 . 324) (118 . 334) (5 . 50) (6 . 51) (92 . 
+    325) (179 . 54) (124 . 112) (91 . -209) (82 . -209)) ((91 . -203) (82 . 
+    -203)) ((-1 . -190)) ((5 . 50) (6 . 51) (179 . 333)) ((94 . -81) (-1 . -81
+    )) ((94 . -287) (-1 . -287)) ((91 . -206) (82 . -206)) ((90 . 335) (92 . 
+    336) (91 . -210) (82 . -210)) ((43 . 444) (89 . 445) (164 . 141) (163 . 
+    142) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148)
+    (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (
+    177 . 154) (178 . 155) (179 . 156) (155 . 157) (75 . 158) (76 . 159) (77 
+    . 160) (78 . 161) (79 . 446) (80 . 163) (92 . 164) (175 . 165) (154 . 166)
+    (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153
+    . 173) (170 . 447) (24 . 15) (25 . 16) (26 . 17) (146 . 116) (123 . 448))
+    ((91 . 442) (21 . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7
+    ) (33 . 8) (34 . 9) (35 . 10) (37 . 11) (36 . 12) (39 . 13) (23 . 14) (24 
+    . 15) (25 . 16) (26 . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 
+    . 22) (140 . 23) (141 . 24) (41 . 25) (42 . 26) (43 . 27) (44 . 28) (45 . 
+    58) (46 . 29) (145 . 30) (146 . 31) (147 . 32) (148 . 33) (168 . 135) (119
+    . 136) (120 . 137) (122 . 443)) ((91 . 441)) ((91 . 440)) ((-1 . -232)) (
+    (89 . 439)) ((-1 . -223)) ((24 . 15) (25 . 16) (26 . 17) (146 . 116) (123 
+    . 438)) ((43 . 435) (24 . 15) (25 . 16) (26 . 17) (146 . 130) (89 . 436) (
+    164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (
+    158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 
+    . 152) (156 . 153) (177 . 154) (178 . 155) (179 . 156) (155 . 157) (75 . 
+    158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (92 . 164) (
+    175 . 165) (154 . 166) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 
+    . 171) (166 . 172) (153 . 173) (170 . 437)) ((89 . 434) (-1 . -28)) ((82 
+    . -201) (91 . -201)) ((91 . -199)) ((89 . 433)) ((-1 . -38)) ((-1 . -37)) 
+    ((-1 . -36)) ((79 . 317) (74 . 318) (73 . 319) (-1 . -41)) ((79 . 317) (74
+    . 318) (73 . 319) (-1 . -40)) ((78 . 315) (77 . 316) (-1 . -44)) ((78 . 
+    315) (77 . 316) (-1 . -43)) ((72 . 313) (71 . 314) (-1 . -49)) ((72 . 313)
+    (71 . 314) (-1 . -48)) ((72 . 313) (71 . 314) (-1 . -47)) ((72 . 313) (71
+    . 314) (-1 . -46)) ((70 . 309) (69 . 310) (68 . 311) (67 . 312) (-1 . -52
+    )) ((70 . 309) (69 . 310) (68 . 311) (67 . 312) (-1 . -51)) ((66 . 307) (
+    65 . 308) (-1 . -54)) ((80 . 306) (-1 . -56)) ((64 . 305) (-1 . -58)) ((63
+    . 304) (-1 . -60)) ((84 . 431) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (5
+    . 50) (6 . 51) (177 . 154) (178 . 155) (179 . 156) (75 . 158) (76 . 159) 
+    (77 . 160) (78 . 161) (79 . 176) (80 . 163) (175 . 165) (81 . 167) (165 . 
+    168) (85 . 169) (86 . 170) (174 . 171) (92 . 164) (166 . 229) (164 . 432))
+    ((90 . 324) (92 . 366) (79 . 52) (118 . 326) (125 . 367) (167 . 337) (21 
+    . 1) (27 . 2) (28 . 3) (29 . 4) (30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 
+    9) (35 . 10) (37 . 11) (36 . 12) (39 . 13) (23 . 14) (24 . 15) (25 . 16) (
+    26 . 17) (136 . 18) (137 . 19) (138 . 20) (139 . 21) (40 . 22) (140 . 23) 
+    (141 . 24) (41 . 25) (42 . 26) (43 . 27) (44 . 28) (45 . 58) (46 . 29) (
+    145 . 30) (146 . 31) (147 . 32) (148 . 33) (168 . 135) (119 . 136) (120 . 
+    137) (122 . 338) (91 . 339)) ((90 . 324) (92 . 366) (118 . 334) (91 . -209
+    ) (82 . -209)) ((91 . -207)) ((-1 . -4)) ((62 . 302) (-1 . -62)) ((59 . 
+    430) (82 . 246)) ((91 . 429)) ((91 . 428)) ((-1 . -10)) ((-1 . -9)) ((-1 
+    . -8)) ((90 . 324) (92 . 366) (79 . 52) (118 . 326) (125 . 367) (167 . 427
+    ) (91 . -20) (82 . -20)) ((91 . -17) (82 . -17)) ((91 . -15) (82 . -15)) (
+    (91 . 425) (82 . 426)) ((89 . 424) (82 . 246)) ((-1 . -66)) ((-1 . -187)) 
+    ((89 . 423)) ((-1 . -181)) ((164 . 141) (163 . 142) (162 . 143) (161 . 144
+    ) (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 
+    151) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (177 . 154) (178 . 155) (
+    179 . 156) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 
+    176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 167) (165 . 168) 
+    (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 173) (84 . 177) (170 
+    . 178) (142 . 420) (88 . 257) (90 . 258) (115 . 259) (116 . 260) (117 . 
+    421) (83 . 422)) ((82 . -235) (83 . -235) (47 . -235)) ((82 . -237) (83 . 
+    -237)) ((-1 . -241)) ((58 . -243) (88 . -243) (90 . -243)) ((89 . 419)) ((
+    58 . -245) (90 . -245) (88 . -245)) ((-1 . -278)) ((-1 . -275)) ((-1 . 
+    -272)) ((-1 . -271)) ((47 . 418) (82 . 246)) ((164 . 141) (163 . 142) (162
+    . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 . 149
+    ) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (177 . 154
+    ) (178 . 155) (179 . 156) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78
+    . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 167
+    ) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 173) (
+    170 . 182) (176 . 416) (102 . 417) (47 . -273)) ((92 . 415)) ((91 . 414) (
+    82 . 246)) ((91 . 413) (82 . 246)) ((82 . 246) (91 . 412)) ((-1 . -79)) ((
+    -1 . -255)) ((164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (
+    159 . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (157 . 152)
+    (156 . 153) (177 . 154) (178 . 155) (155 . 157) (75 . 158) (76 . 159) (77
+    . 160) (78 . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166
+    ) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (
+    153 . 173) (5 . 50) (6 . 51) (170 . 182) (1 . 34) (8 . 183) (9 . 184) (10 
+    . 185) (11 . 186) (12 . 187) (13 . 188) (14 . 189) (15 . 190) (18 . 191) (
+    47 . 192) (176 . 193) (84 . 106) (19 . 194) (20 . 195) (179 . 196) (108 . 
+    197) (109 . 198) (110 . 199) (111 . 200) (112 . 201) (113 . 202) (114 . 
+    203) (107 . 411)) ((-1 . -253)) ((47 . -162) (82 . -162)) ((47 . -160) (82
+    . -160)) ((94 . -154) (-1 . -154)) ((-1 . -165)) ((-1 . -254)) ((164 . 
+    141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 
+    147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (157 . 152) (156 . 153) (177 
+    . 154) (178 . 155) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78 . 161)
+    (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 167) (165 
+    . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 173) (5 . 50) 
+    (6 . 51) (170 . 182) (1 . 34) (8 . 183) (9 . 184) (10 . 185) (11 . 186) (
+    12 . 187) (13 . 188) (14 . 189) (15 . 190) (18 . 191) (47 . 192) (176 . 
+    193) (84 . 106) (19 . 194) (20 . 195) (179 . 196) (108 . 197) (109 . 198) 
+    (110 . 199) (111 . 200) (112 . 201) (113 . 202) (114 . 203) (107 . 469)) (
+    (164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (
+    158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (157 . 152) (156 . 153)
+    (177 . 154) (178 . 155) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78 
+    . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 167)
+    (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 173) (5 
+    . 50) (6 . 51) (170 . 182) (1 . 34) (8 . 183) (9 . 184) (10 . 185) (11 . 
+    186) (12 . 187) (13 . 188) (14 . 189) (15 . 190) (18 . 191) (47 . 192) (
+    176 . 193) (84 . 106) (19 . 194) (20 . 195) (179 . 196) (108 . 197) (109 
+    . 198) (110 . 199) (111 . 200) (112 . 201) (113 . 202) (114 . 203) (107 . 
+    468)) ((164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (159 . 
+    146) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (157 . 152) (156 
+    . 153) (177 . 154) (178 . 155) (155 . 157) (75 . 158) (76 . 159) (77 . 160
+    ) (78 . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 
+    . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 
+    173) (5 . 50) (6 . 51) (170 . 182) (1 . 34) (8 . 183) (9 . 184) (10 . 185)
+    (11 . 186) (12 . 187) (13 . 188) (14 . 189) (15 . 190) (18 . 191) (47 . 
+    192) (176 . 193) (84 . 106) (19 . 194) (20 . 195) (179 . 196) (108 . 197) 
+    (109 . 198) (110 . 199) (111 . 200) (112 . 201) (113 . 202) (114 . 203) (
+    107 . 467)) ((164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (
+    159 . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6
+    . 51) (157 . 152) (156 . 153) (177 . 154) (178 . 155) (179 . 156) (155 . 
+    157) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (92
+    . 164) (175 . 165) (154 . 166) (81 . 167) (165 . 168) (85 . 169) (86 . 
+    170) (174 . 171) (166 . 172) (153 . 173) (170 . 182) (176 . 466)) ((82 . 
+    246) (47 . -274) (91 . -274)) ((47 . 465)) ((-1 . -270)) ((58 . -244) (90 
+    . -244) (88 . -244)) ((82 . -240) (83 . -240)) ((164 . 141) (163 . 142) (
+    162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 . 
+    149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (177 . 
+    154) (178 . 155) (179 . 156) (155 . 157) (75 . 158) (76 . 159) (77 . 160) 
+    (78 . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 
+    167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 173)
+    (84 . 177) (170 . 178) (142 . 464)) ((82 . -236) (83 . -236) (47 . -236))
+    ((-1 . -186)) ((-1 . -6)) ((-1 . -7)) ((21 . 1) (27 . 2) (28 . 3) (29 . 4
+    ) (30 . 5) (31 . 6) (32 . 7) (33 . 8) (34 . 9) (35 . 10) (37 . 11) (36 . 
+    12) (39 . 13) (23 . 14) (24 . 15) (25 . 16) (26 . 17) (136 . 18) (137 . 19
+    ) (138 . 20) (139 . 21) (40 . 22) (140 . 23) (141 . 24) (41 . 25) (42 . 26
+    ) (43 . 27) (44 . 28) (45 . 58) (46 . 29) (145 . 30) (146 . 31) (147 . 32)
+    (148 . 33) (168 . 377) (169 . 462) (164 . 141) (163 . 142) (162 . 143) (
+    161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 
+    150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (177 . 154) (178 
+    . 155) (179 . 156) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78 . 161)
+    (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 167) (165 
+    . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 173) (170 . 
+    463)) ((91 . -19) (82 . -19)) ((84 . 431)) ((84 . 431) (-1 . -26)) ((7 . 
+    148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (177 . 154) (178 . 
+    155) (179 . 156) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (
+    80 . 163) (175 . 165) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 
+    171) (92 . 164) (166 . 229) (164 . 141) (163 . 142) (162 . 143) (161 . 144
+    ) (160 . 145) (159 . 146) (158 . 147) (157 . 152) (156 . 153) (155 . 157) 
+    (154 . 166) (153 . 461)) ((164 . 141) (163 . 142) (162 . 143) (161 . 144) 
+    (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151
+    ) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (177 . 154) (178 . 155) (179 
+    . 156) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) 
+    (80 . 163) (92 . 164) (175 . 165) (88 . 257) (90 . 258) (154 . 166) (81 . 
+    167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (115 . 259) (166 . 172)
+    (153 . 173) (116 . 260) (84 . 177) (170 . 178) (142 . 261) (117 . 262) (
+    171 . 460)) ((-1 . -34)) ((-1 . -185)) ((-1 . -228)) ((164 . 141) (163 . 
+    142) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148)
+    (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (
+    177 . 154) (178 . 155) (179 . 156) (155 . 157) (75 . 158) (76 . 159) (77 
+    . 160) (78 . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166)
+    (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153
+    . 173) (170 . 459)) ((-1 . -221)) ((89 . 458)) ((164 . 141) (163 . 142) (
+    162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 . 
+    149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (177 . 
+    154) (178 . 155) (179 . 156) (155 . 157) (75 . 158) (76 . 159) (77 . 160) 
+    (78 . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 
+    167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 173)
+    (170 . 456) (24 . 15) (25 . 16) (26 . 17) (146 . 130) (89 . 457)) ((-1 . 
+    -222)) ((-1 . -231)) ((-1 . -212)) ((-1 . -230)) ((91 . 455)) ((24 . 15) (
+    25 . 16) (26 . 17) (146 . 116) (123 . 454)) ((-1 . -216)) ((89 . 453) (-1 
+    . -28)) ((89 . 452)) ((164 . 141) (163 . 142) (162 . 143) (161 . 144) (160
+    . 145) (159 . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (5
+    . 50) (6 . 51) (157 . 152) (156 . 153) (177 . 154) (178 . 155) (179 . 156
+    ) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 
+    . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 167) (165 . 168) (85 . 169
+    ) (86 . 170) (174 . 171) (166 . 172) (153 . 173) (170 . 449) (24 . 15) (25
+    . 16) (26 . 17) (146 . 130) (89 . 450) (43 . 451)) ((89 . 480)) ((-1 . 
+    -214)) ((164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (159 
+    . 146) (158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 
+    51) (157 . 152) (156 . 153) (177 . 154) (178 . 155) (179 . 156) (155 . 157
+    ) (75 . 158) (76 . 159) (77 . 160) (78 . 161) (79 . 176) (80 . 163) (92 . 
+    164) (175 . 165) (154 . 166) (81 . 167) (165 . 168) (85 . 169) (86 . 170) 
+    (174 . 171) (166 . 172) (153 . 173) (170 . 479)) ((-1 . -215)) ((-1 . -227
+    )) ((89 . 477) (24 . 15) (25 . 16) (26 . 17) (146 . 130) (164 . 141) (163 
+    . 142) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 
+    148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 
+    153) (177 . 154) (178 . 155) (179 . 156) (155 . 157) (75 . 158) (76 . 159)
+    (77 . 160) (78 . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 
+    . 166) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172
+    ) (153 . 173) (170 . 478)) ((-1 . -229)) ((89 . 476)) ((-1 . -225)) ((-1 
+    . -220)) ((89 . 475)) ((83 . 473) (82 . 474)) ((-1 . -64)) ((91 . -18) (82
+    . -18)) ((91 . -16) (82 . -16)) ((82 . -239) (83 . -239)) ((164 . 141) (
+    163 . 142) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 
+    . 148) (2 . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 
+    153) (177 . 154) (178 . 155) (179 . 156) (155 . 157) (75 . 158) (76 . 159)
+    (77 . 160) (78 . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 
+    . 166) (81 . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172
+    ) (153 . 173) (170 . 182) (176 . 416) (102 . 472) (91 . -273)) ((91 . 471)
+    (82 . 246)) ((-1 . -267)) ((-1 . -266)) ((16 . 470) (-1 . -264)) ((164 . 
+    141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 
+    147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (157 . 152) (156 . 153) (177 
+    . 154) (178 . 155) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78 . 161)
+    (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 167) (165 
+    . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 173) (5 . 50) 
+    (6 . 51) (170 . 182) (1 . 34) (8 . 183) (9 . 184) (10 . 185) (11 . 186) (
+    12 . 187) (13 . 188) (14 . 189) (15 . 190) (18 . 191) (47 . 192) (176 . 
+    193) (84 . 106) (19 . 194) (20 . 195) (179 . 196) (108 . 197) (109 . 198) 
+    (110 . 199) (111 . 200) (112 . 201) (113 . 202) (114 . 203) (107 . 486)) (
+    (47 . 485)) ((91 . 484)) ((-1 . -13)) ((83 . 483) (164 . 141) (163 . 142) 
+    (162 . 143) (161 . 144) (160 . 145) (159 . 146) (158 . 147) (7 . 148) (2 
+    . 149) (3 . 150) (4 . 151) (5 . 50) (6 . 51) (157 . 152) (156 . 153) (177 
+    . 154) (178 . 155) (179 . 156) (155 . 157) (75 . 158) (76 . 159) (77 . 160
+    ) (78 . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 
+    . 167) (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 
+    173) (84 . 177) (170 . 178) (142 . 420) (88 . 257) (90 . 258) (115 . 259) 
+    (116 . 260) (117 . 421)) ((-1 . -226)) ((-1 . -224)) ((-1 . -218)) ((89 . 
+    482)) ((89 . 481)) ((-1 . -213)) ((-1 . -219)) ((-1 . -217)) ((-1 . -14)) 
+    ((164 . 141) (163 . 142) (162 . 143) (161 . 144) (160 . 145) (159 . 146) (
+    158 . 147) (7 . 148) (2 . 149) (3 . 150) (4 . 151) (157 . 152) (156 . 153)
+    (177 . 154) (178 . 155) (155 . 157) (75 . 158) (76 . 159) (77 . 160) (78 
+    . 161) (79 . 176) (80 . 163) (92 . 164) (175 . 165) (154 . 166) (81 . 167)
+    (165 . 168) (85 . 169) (86 . 170) (174 . 171) (166 . 172) (153 . 173) (5 
+    . 50) (6 . 51) (170 . 182) (1 . 34) (8 . 183) (9 . 184) (10 . 185) (11 . 
+    186) (12 . 187) (13 . 188) (14 . 189) (15 . 190) (18 . 191) (47 . 192) (
+    176 . 193) (84 . 106) (19 . 194) (20 . 195) (179 . 196) (108 . 197) (109 
+    . 198) (110 . 199) (111 . 200) (112 . 201) (113 . 202) (114 . 203) (107 . 
+    487)) ((-1 . -268)) ((-1 . -265)) ((-1 . -269))))
 
 (define rto-v
-  #(#f 435 429 429 429 429 428 428 428 428 428 428 428 428 428 428 427 427 
-    427 427 423 423 420 420 420 420 420 420 419 419 419 419 419 419 418 418 
-    417 417 417 417 416 416 416 415 415 415 414 414 414 414 414 413 413 413 
-    412 412 411 411 410 410 409 409 408 408 407 407 424 424 406 406 406 406 
-    406 406 406 406 406 406 406 430 430 382 356 356 404 422 422 422 422 422 
-    422 422 422 405 405 398 398 402 402 402 402 402 401 401 401 401 401 401 
-    401 401 395 395 395 395 395 395 395 395 395 395 395 395 395 395 395 395 
-    395 395 395 395 395 395 395 395 395 395 394 394 394 393 393 393 393 392 
-    392 392 392 392 392 389 389 388 388 388 388 387 385 385 385 385 384 384 
-    383 383 383 391 391 391 391 391 381 381 380 380 400 400 400 399 397 397 
-    378 378 378 378 378 378 378 378 378 378 378 378 378 379 379 379 379 377 
-    377 376 376 374 374 373 373 373 375 375 426 426 421 421 421 372 372 372 
-    372 372 372 372 372 372 372 372 372 372 372 372 372 372 372 372 372 372 
-    390 396 396 396 425 425 425 425 371 370 370 369 369 359 368 367 367 367 
-    367 367 367 367 366 366 366 365 365 358 358 357 357 364 364 363 363 363 
-    362 362 362 355 355 355 354 354 361 361 361 361 361 434 434 353 352 351 
-    351 351 351 351 350 350 349 349 403 403 433 433 432 432 432 431 431 348 
-    386 360))
+  #(#f 175 175 175 175 174 174 174 174 174 174 174 174 174 174 173 173 173 
+    173 169 169 166 166 166 166 166 166 165 165 165 165 165 165 164 164 163 
+    163 163 163 162 162 162 161 161 161 160 160 160 160 160 159 159 159 158 
+    158 157 157 156 156 155 155 154 154 153 153 170 170 152 152 152 152 152 
+    152 152 152 152 152 152 176 176 128 104 104 150 168 168 168 168 168 168 
+    168 168 151 151 144 144 148 148 148 148 148 147 147 147 147 147 147 147 
+    147 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 
+    141 141 141 141 141 141 141 141 141 140 140 140 139 139 139 139 138 138 
+    138 138 138 138 135 135 134 134 134 134 133 131 131 131 131 130 130 129 
+    129 129 137 137 137 137 137 127 127 126 126 146 146 146 145 143 143 124 
+    124 124 124 124 124 124 124 124 124 124 124 124 125 125 125 125 123 123 
+    122 122 120 120 119 119 119 121 121 172 172 167 167 167 118 118 118 118 
+    118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 136 
+    142 142 142 171 171 171 171 117 116 116 115 115 107 107 107 107 107 107 
+    107 114 114 114 113 113 106 106 105 105 112 112 111 111 111 110 110 110 
+    103 103 103 102 102 109 109 109 109 109 180 101 101 100 100 100 100 100 99
+    99 98 98 149 149 179 179 178 178 178 177 177 97 132 108))
 
 (define mtab
   '((cpp-stmt . 1) ($chlit . 2) ($float . 3) ($fixed . 4) (cpp-ident . 5) (
-    $ident . 6) ("}" . 7) ("{" . 8) ($string . 9) ("extern" . 10) (";" . 11) (
-    "return" . 12) (";" . 11) ("return" . 12) (";" . 11) ("break" . 16) (";" 
-    . 11) ("continue" . 18) (";" . 11) ("goto" . 20) (";" . 11) (";" . 11) (
-    ")" . 23) (";" . 11) ("(" . 25) ("for" . 26) (";" . 11) (")" . 23) ("(" . 
-    25) ("while" . 30) ("do" . 31) (")" . 23) ("(" . 25) ("while" . 30) (")" 
-    . 23) ("(" . 25) ("switch" . 37) ("else" . 38) (")" . 23) ("(" . 25) ("if"
-    . 41) (then . 42) (")" . 23) ("(" . 25) ("if" . 41) (";" . 11) (";" . 11)
-    ("}" . 7) ("{" . 8) ("}" . 7) ("{" . 8) (":" . 52) ("default" . 53) (":" 
-    . 52) ("case" . 55) (":" . 52) ("." . 57) ("]" . 58) ("[" . 59) ("=" . 60)
-    ("," . 61) ("," . 61) ("}" . 7) ("," . 61) ("{" . 8) ("}" . 7) ("{" . 8) 
-    (typename . 68) (")" . 23) ("(" . 25) (")" . 23) ("(" . 25) (")" . 23) (
-    "(" . 25) (")" . 23) ("(" . 25) ("]" . 58) ("*" . 78) ("[" . 59) ("]" . 58
-    ) ("*" . 78) ("[" . 59) ("]" . 58) ("static" . 84) ("[" . 59) ("]" . 58) (
-    "static" . 84) ("[" . 59) ("]" . 58) ("static" . 84) ("[" . 59) ("]" . 58)
-    ("[" . 59) ("]" . 58) ("[" . 59) ("]" . 58) ("[" . 59) ("]" . 58) ("[" . 
-    59) ("]" . 58) ("static" . 84) ("[" . 59) ("]" . 58) ("static" . 84) ("[" 
-    . 59) ("]" . 58) ("static" . 84) ("[" . 59) ("]" . 58) ("[" . 59) ("]" . 
-    58) ("[" . 59) ("]" . 58) ("[" . 59) ("]" . 58) ("[" . 59) (")" . 23) ("("
-    . 25) ("," . 61) ("," . 61) ("..." . 121) ("," . 61) ("*" . 78) ("*" . 78
-    ) ("*" . 78) ("*" . 78) (")" . 23) ("(" . 25) (")" . 23) ("(" . 25) (")" 
-    . 23) ("(" . 25) ("]" . 58) ("*" . 78) ("[" . 59) ("]" . 58) ("*" . 78) (
-    "[" . 59) ("]" . 58) ("static" . 84) ("[" . 59) ("]" . 58) ("static" . 84)
-    ("[" . 59) ("]" . 58) ("[" . 59) ("]" . 58) ("[" . 59) ("]" . 58) ("[" . 
-    59) ("]" . 58) ("[" . 59) (")" . 23) ("(" . 25) ("inline" . 155) (
-    "restrict" . 156) ("volatile" . 157) ("const" . 158) ("=" . 60) ("," . 61)
-    ("enum" . 161) ("}" . 7) ("," . 61) ("{" . 8) ("enum" . 161) ("}" . 7) (
-    "{" . 8) ("enum" . 161) ("}" . 7) ("," . 61) ("{" . 8) ("enum" . 161) ("}"
-    . 7) ("{" . 8) ("enum" . 161) (":" . 52) (":" . 52) ("," . 61) (";" . 11)
-    ("union" . 180) ("}" . 7) ("{" . 8) ("union" . 180) ("}" . 7) ("{" . 8) (
-    "union" . 180) ("struct" . 187) ("}" . 7) ("{" . 8) ("struct" . 187) ("}" 
-    . 7) ("{" . 8) ("struct" . 187) ("_Complex" . 194) ("double" . 195) (
-    "long" . 196) ("_Complex" . 194) ("double" . 195) ("_Complex" . 194) (
-    "float" . 200) ("_Complex" . 194) ("double" . 195) ("long" . 196) (
-    "double" . 195) ("float" . 200) ("char" . 206) ("unsigned" . 207) ("char" 
-    . 206) ("signed" . 209) ("char" . 206) ("long" . 196) ("long" . 196) (
-    "unsigned" . 207) ("int" . 214) ("long" . 196) ("long" . 196) ("unsigned" 
-    . 207) ("long" . 196) ("unsigned" . 207) ("int" . 214) ("long" . 196) (
-    "unsigned" . 207) ("unsigned" . 207) ("int" . 214) ("unsigned" . 207) (
-    "short" . 226) ("unsigned" . 207) ("int" . 214) ("short" . 226) (
-    "unsigned" . 207) ("int" . 214) ("long" . 196) ("long" . 196) ("signed" . 
-    209) ("long" . 196) ("long" . 196) ("signed" . 209) ("int" . 214) ("long" 
-    . 196) ("long" . 196) ("long" . 196) ("long" . 196) ("int" . 214) ("long" 
-    . 196) ("signed" . 209) ("long" . 196) ("signed" . 209) ("int" . 214) (
-    "long" . 196) ("long" . 196) ("int" . 214) ("signed" . 209) ("signed" . 
-    209) ("int" . 214) ("int" . 214) ("short" . 226) ("signed" . 209) ("short"
-    . 226) ("signed" . 209) ("int" . 214) ("short" . 226) (imp . 262) (
-    "short" . 226) ("_Bool" . 264) ("void" . 265) ("typedef" . 266) ("static" 
-    . 84) ("register" . 268) ("extern" . 10) ("auto" . 270) ("=" . 60) ("," . 
-    61) (";" . 11) (";" . 11) ("," . 61) ("|=" . 276) ("^=" . 277) ("&=" . 278
-    ) (">>=" . 279) ("<<=" . 280) ("%=" . 281) ("/=" . 282) ("*=" . 283) ("-="
-    . 284) ("+=" . 285) ("=" . 60) (":" . 52) ("?" . 288) ("||" . 289) ("&&" 
-    . 290) ("|" . 291) ("^" . 292) ("&" . 293) ("!=" . 294) ("==" . 295) (">="
-    . 296) ("<=" . 297) (">" . 298) ("<" . 299) (">>" . 300) ("<<" . 301) (
-    "-" . 302) ("+" . 303) ("%" . 304) ("/" . 305) ("*" . 78) (")" . 23) ("(" 
-    . 25) ("!" . 309) ("~" . 310) ("-" . 302) ("+" . 303) ("*" . 78) ("&" . 
-    293) (")" . 23) ("(" . 25) ("sizeof" . 317) ("sizeof" . 317) ("--" . 319) 
-    ("++" . 320) ("," . 61) ("," . 61) ("}" . 7) ("," . 61) ("{" . 8) (")" . 
-    23) ("(" . 25) ("}" . 7) ("{" . 8) (")" . 23) ("(" . 25) ("--" . 319) (
-    "++" . 320) ("->" . 334) ("." . 57) (")" . 23) ("(" . 25) (")" . 23) ("(" 
-    . 25) ("]" . 58) ("[" . 59) (")" . 23) ("(" . 25) ($code-comm . 344) (
-    $lone-comm . 345) ($error . 346) ($end . 347)))
+    $ident . 6) ($string . 7) ("return" . 8) ("break" . 9) ("continue" . 10) (
+    "goto" . 11) ("for" . 12) ("do" . 13) ("while" . 14) ("switch" . 15) (
+    "else" . 16) (then . 17) ("if" . 18) ("default" . 19) ("case" . 20) (
+    typename . 21) ("..." . 22) ("inline" . 23) ("restrict" . 24) ("volatile" 
+    . 25) ("const" . 26) ("enum" . 27) ("union" . 28) ("struct" . 29) (
+    "_Complex" . 30) ("double" . 31) ("float" . 32) ("char" . 33) ("unsigned" 
+    . 34) ("long" . 35) ("signed" . 36) ("int" . 37) (imp . 38) ("short" . 39)
+    ("_Bool" . 40) ("void" . 41) ("typedef" . 42) ("static" . 43) ("register"
+    . 44) ("extern" . 45) ("auto" . 46) (";" . 47) ("|=" . 48) ("^=" . 49) (
+    "&=" . 50) (">>=" . 51) ("<<=" . 52) ("%=" . 53) ("/=" . 54) ("*=" . 55) (
+    "-=" . 56) ("+=" . 57) ("=" . 58) (":" . 59) ("?" . 60) ("||" . 61) ("&&" 
+    . 62) ("|" . 63) ("^" . 64) ("!=" . 65) ("==" . 66) (">=" . 67) ("<=" . 68
+    ) (">" . 69) ("<" . 70) (">>" . 71) ("<<" . 72) ("%" . 73) ("/" . 74) ("!"
+    . 75) ("~" . 76) ("-" . 77) ("+" . 78) ("*" . 79) ("&" . 80) ("sizeof" . 
+    81) ("," . 82) ("}" . 83) ("{" . 84) ("--" . 85) ("++" . 86) ("->" . 87) (
+    "." . 88) ("]" . 89) ("[" . 90) (")" . 91) ("(" . 92) ($code-comm . 93) (
+    $lone-comm . 94) ($error . 95) ($end . 96)))
 
 ;;; end tables
index 84458dbef8394d63c12359befe0b7bf5c9f01093..5aa879a094a83b3e45f6256088564d1889f1d6d2 100644 (file)
@@ -1,10 +1,10 @@
-;; ./mach.d/c99xact.scm
+;; ../../../../module/nyacc/lang/c99/mach.d/c99xact.scm
 
-;; Copyright 2016,2017 Matthew R. Wette
+;; Copyright (C) 2015,2016 Matthew R. Wette
 ;; 
 ;; This software is covered by the GNU GENERAL PUBLIC LICENCE, Version 3,
-;; or any later version published by the Free Software Foundation.  See
-;; the file COPYING included with the this distribution.
+;; or any later version published by the Free Software Foundation.  See the
+;; file COPYING included with the this distribution.
 
 (define act-v
   (vector
    ;; struct-declarator => ":" constant-expression
    (lambda ($2 $1 . $rest)
      `(comp-declr (bit-field ,$2)))
-   ;; enum-specifier => "enum" ident-like "{" enumerator-list "}"
+   ;; enum-specifier => "enum" identifier "{" enumerator-list "}"
    (lambda ($5 $4 $3 $2 $1 . $rest)
      `(enum-def ,$2 ,(tl->list $4)))
-   ;; enum-specifier => "enum" ident-like "{" enumerator-list "," "}"
+   ;; enum-specifier => "enum" identifier "{" enumerator-list "," "}"
    (lambda ($6 $5 $4 $3 $2 $1 . $rest)
      `(enum-def ,$2 ,(tl->list $4)))
    ;; enum-specifier => "enum" "{" enumerator-list "}"
    ;; enum-specifier => "enum" "{" enumerator-list "," "}"
    (lambda ($5 $4 $3 $2 $1 . $rest)
      `(enum-def ,(tl->list $3)))
-   ;; enum-specifier => "enum" ident-like
+   ;; enum-specifier => "enum" identifier
    (lambda ($2 $1 . $rest) `(enum-ref ,$2))
    ;; enumerator-list => enumerator
    (lambda ($1 . $rest) (make-tl 'enum-def-list $1))
    (lambda ($3 $2 $1 . $rest) (list 'array-dsgr $2))
    ;; designator => "." identifier
    (lambda ($2 $1 . $rest) (list 'sel-dsgr $2))
-   ;; statement => $P2 statement-1
-   (lambda ($2 $1 . $rest) $2)
-   ;; $P2 => 
-   (lambda $rest (cpp-ok!))
-   ;; statement-1 => labeled-statement
+   ;; statement => labeled-statement
    (lambda ($1 . $rest) $1)
-   ;; statement-1 => compound-statement
+   ;; statement => compound-statement
    (lambda ($1 . $rest) $1)
-   ;; statement-1 => expression-statement
+   ;; statement => expression-statement
    (lambda ($1 . $rest) $1)
-   ;; statement-1 => selection-statement
+   ;; statement => selection-statement
    (lambda ($1 . $rest) $1)
-   ;; statement-1 => iteration-statement
+   ;; statement => iteration-statement
    (lambda ($1 . $rest) $1)
-   ;; statement-1 => jump-statement
+   ;; statement => jump-statement
    (lambda ($1 . $rest) $1)
-   ;; statement-1 => cpp-statement
+   ;; statement => cpp-statement
    (lambda ($1 . $rest) $1)
    ;; labeled-statement => identifier ":" statement
    (lambda ($3 $2 $1 . $rest)
    (lambda ($1 . $rest) (make-tl 'trans-unit $1))
    ;; translation-unit => translation-unit external-declaration
    (lambda ($2 $1 . $rest)
-     (if (eqv? (sx-tag $2) 'extern-block)
-       (tl-extend $1 (sx-tail $2))
-       (tl-append $1 $2)))
-   ;; external-declaration => $P3 external-declaration-1
-   (lambda ($2 $1 . $rest) $2)
-   ;; $P3 => 
-   (lambda $rest (cpp-ok!))
-   ;; external-declaration-1 => function-definition
+     (cond ((eqv? 'trans-unit (car $2))
+            (let* ((t1 (tl-append $1 '(extern-C-begin)))
+                   (t2 (tl-extend t1 (cdr $2)))
+                   (t3 (tl-append t2 '(extern-C-end))))
+              t3))
+           (else (tl-append $1 $2))))
+   ;; external-declaration => function-definition
    (lambda ($1 . $rest) $1)
-   ;; external-declaration-1 => declaration
+   ;; external-declaration => declaration
    (lambda ($1 . $rest) $1)
-   ;; external-declaration-1 => lone-comment
+   ;; external-declaration => lone-comment
    (lambda ($1 . $rest) $1)
-   ;; external-declaration-1 => cpp-statement
+   ;; external-declaration => cpp-statement
    (lambda ($1 . $rest) $1)
-   ;; external-declaration-1 => "extern" '$string "{" translation-unit "}"
-   (lambda ($5 $4 $3 $2 $1 . $rest)
-     `(extern-block
-        $2
-        (extern-C-begin)
-        $4
-        (extern-C-end)))
+   ;; external-declaration => "extern" '$string "{" translation-unit "}"
+   (lambda ($5 $4 $3 $2 $1 . $rest) (tl->list $4))
    ;; function-definition => declaration-specifiers declarator declaration-...
    (lambda ($4 $3 $2 $1 . $rest)
      `(knr-fctn-defn
index 53bd07df1849c2a09e2851c7073ed7cab50cddf8..35b690e149cf6e003c10965167a90222086a13b6 100644 (file)
@@ -1,10 +1,10 @@
-;; ./mach.d/c99xtab.scm
+;; ../../../../module/nyacc/lang/c99/mach.d/c99xtab.scm
 
-;; Copyright 2016,2017 Matthew R. Wette
+;; Copyright (C) 2015,2016 Matthew R. Wette
 ;; 
 ;; This software is covered by the GNU GENERAL PUBLIC LICENCE, Version 3,
-;; or any later version published by the Free Software Foundation.  See
-;; the file COPYING included with the this distribution.
+;; or any later version published by the Free Software Foundation.  See the
+;; file COPYING included with the this distribution.
 
 (define len-v
   #(1 1 1 1 1 3 1 4 4 3 3 3 2 2 6 7 1 3 1 3 2 1 1 2 2 2 2 4 1 1 1 1 1 1 1 4 
     1 2 2 3 1 1 2 1 2 2 3 2 3 3 4 3 2 2 1 3 2 4 3 1 2 2 1 1 2 1 2 2 3 5 4 2 5 
     4 2 1 1 1 1 2 2 4 2 1 2 1 1 3 1 3 2 5 6 4 5 2 1 3 1 3 1 1 1 1 2 1 1 3 5 4 
     4 3 6 6 5 4 4 4 3 2 1 3 2 1 2 1 3 1 3 2 2 1 1 3 2 1 1 2 1 3 5 4 4 3 6 5 6 
-    4 3 3 2 5 4 5 4 3 4 3 3 2 1 1 3 4 2 1 4 3 2 1 2 3 2 2 0 1 1 1 1 1 1 1 3 4 
-    3 3 2 1 2 1 1 2 1 5 7 5 5 7 8 2 1 1 0 1 3 2 2 3 2 1 2 2 0 1 1 1 1 5 4 3 1 
-    2 0 1 1 1 1 1 1 1 2 1 1 1))
+    4 3 3 2 5 4 5 4 3 4 3 3 2 1 1 3 4 2 1 4 3 2 1 2 3 2 1 1 1 1 1 1 1 3 4 3 3 
+    2 1 2 1 1 2 1 5 7 5 5 7 8 2 1 1 0 1 3 2 2 3 2 1 2 1 1 1 1 5 4 3 1 2 0 1 1 
+    1 1 1 1 1 2 1 1 1))
 
 (define pat-v
-  #(((418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 5) (413 . 6) (412 . 7) (
-    9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (411 . 14) (410 . 15) (
-    431 . 16) (432 . 17) (433 . 18) (409 . 19) (309 . 20) (310 . 21) (302 . 22
-    ) (303 . 23) (78 . 24) (293 . 25) (25 . 26) (429 . 27) (408 . 28) (317 . 
-    29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (420 . 34) (407 . 35) (424
-    . 36) (430 . 37)) ((-1 . -36)) ((78 . 119) (305 . 120) (304 . 121) (-1 . 
-    -40)) ((303 . 117) (302 . 118) (-1 . -43)) ((301 . 115) (300 . 116) (-1 . 
-    -46)) ((299 . 111) (298 . 112) (297 . 113) (296 . 114) (-1 . -51)) ((295 
-    . 109) (294 . 110) (-1 . -54)) ((293 . 108) (-1 . -56)) ((-1 . -303)) ((-1
-    . -302)) ((-1 . -301)) ((-1 . -300)) ((-1 . -299)) ((-1 . -298)) ((292 . 
-    107) (-1 . -58)) ((291 . 106) (-1 . -60)) ((9 . 105) (-1 . -4)) ((-1 . -3)
-    ) ((-1 . -2)) ((290 . 104) (-1 . -62)) ((-1 . -33)) ((-1 . -32)) ((-1 . 
-    -31)) ((-1 . -30)) ((-1 . -29)) ((-1 . -28)) ((418 . 1) (417 . 2) (416 . 3
-    ) (415 . 4) (414 . 5) (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 . 11
-    ) (5 . 12) (6 . 13) (411 . 14) (410 . 15) (431 . 16) (432 . 17) (433 . 18)
-    (409 . 19) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 
-    25) (25 . 26) (429 . 27) (408 . 28) (317 . 29) (419 . 30) (319 . 31) (320 
-    . 32) (428 . 33) (420 . 34) (407 . 35) (424 . 36) (430 . 66) (68 . 67) (
-    161 . 68) (180 . 69) (187 . 70) (194 . 71) (195 . 72) (200 . 73) (206 . 74
-    ) (207 . 75) (196 . 76) (214 . 77) (209 . 78) (226 . 79) (155 . 80) (156 
-    . 81) (157 . 82) (158 . 83) (390 . 84) (391 . 85) (392 . 86) (393 . 87) (
-    264 . 88) (394 . 89) (395 . 90) (265 . 91) (266 . 92) (84 . 93) (268 . 94)
-    (10 . 95) (270 . 96) (399 . 97) (400 . 98) (401 . 99) (402 . 100) (422 . 
-    101) (385 . 102) (426 . 103)) ((-1 . -6)) ((288 . 64) (289 . 65) (-1 . -64
-    )) ((9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (431 . 16) (432 . 
-    17) (433 . 18) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 
-    . 25) (429 . 27) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (
-    420 . 62) (25 . 63)) ((9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) 
-    (431 . 16) (432 . 17) (433 . 18) (309 . 20) (310 . 21) (302 . 22) (303 . 
-    23) (78 . 24) (293 . 25) (429 . 27) (317 . 29) (419 . 30) (319 . 31) (320 
-    . 32) (428 . 33) (25 . 26) (420 . 60) (418 . 61)) ((9 . 8) (2 . 9) (3 . 10
-    ) (4 . 11) (5 . 12) (6 . 13) (431 . 16) (432 . 17) (433 . 18) (309 . 20) (
-    310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (25 . 57) (429 . 27) 
-    (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (420 . 59)) ((9 . 8
-    ) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (431 . 16) (432 . 17) (433 
-    . 18) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (25
-    . 57) (429 . 27) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (
-    420 . 58)) ((59 . 51) (25 . 52) (57 . 53) (334 . 54) (320 . 55) (319 . 56)
-    (-1 . -22)) ((276 . 39) (277 . 40) (278 . 41) (279 . 42) (280 . 43) (281 
-    . 44) (282 . 45) (283 . 46) (284 . 47) (285 . 48) (60 . 49) (406 . 50) (-1
-    . -34)) ((-1 . -66)) ((-1 . -79)) ((61 . 38) (347 . 0)) ((418 . 1) (417 
-    . 2) (416 . 3) (415 . 4) (414 . 5) (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 
-    . 10) (4 . 11) (5 . 12) (6 . 13) (411 . 14) (410 . 15) (431 . 16) (432 . 
-    17) (433 . 18) (409 . 19) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 
-    . 24) (293 . 25) (25 . 26) (429 . 27) (408 . 28) (317 . 29) (419 . 30) (
-    319 . 31) (320 . 32) (428 . 33) (420 . 34) (407 . 35) (424 . 190)) ((-1 . 
-    -78)) ((-1 . -77)) ((-1 . -76)) ((-1 . -75)) ((-1 . -74)) ((-1 . -73)) ((
-    -1 . -72)) ((-1 . -71)) ((-1 . -70)) ((-1 . -69)) ((-1 . -68)) ((418 . 1) 
-    (417 . 2) (416 . 3) (415 . 4) (414 . 5) (413 . 6) (412 . 7) (9 . 8) (2 . 9
-    ) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (411 . 14) (410 . 15) (431 . 16) (
-    432 . 17) (433 . 18) (409 . 19) (309 . 20) (310 . 21) (302 . 22) (303 . 23
-    ) (78 . 24) (293 . 25) (25 . 26) (429 . 27) (408 . 28) (317 . 29) (419 . 
-    30) (319 . 31) (320 . 32) (428 . 33) (420 . 34) (407 . 35) (424 . 189)) ((
-    418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 5) (413 . 6) (412 . 7) (9 . 
-    8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (411 . 14) (410 . 15) (431 
-    . 16) (432 . 17) (433 . 18) (409 . 19) (309 . 20) (310 . 21) (302 . 22) (
-    303 . 23) (78 . 24) (293 . 25) (25 . 26) (429 . 27) (408 . 28) (317 . 29) 
-    (419 . 30) (319 . 31) (320 . 32) (428 . 33) (420 . 34) (407 . 35) (424 . 
-    36) (430 . 188)) ((23 . 183) (418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 
-    . 5) (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 
-    13) (411 . 14) (68 . 67) (161 . 68) (180 . 69) (187 . 70) (194 . 71) (195 
-    . 72) (200 . 73) (206 . 74) (207 . 75) (196 . 76) (214 . 77) (209 . 78) (
-    226 . 79) (410 . 15) (431 . 16) (432 . 17) (433 . 18) (155 . 80) (156 . 81
-    ) (157 . 82) (158 . 83) (390 . 84) (391 . 85) (392 . 86) (393 . 87) (264 
-    . 88) (394 . 89) (395 . 90) (265 . 91) (266 . 92) (84 . 93) (268 . 94) (10
-    . 95) (270 . 96) (409 . 19) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (
-    78 . 24) (293 . 25) (25 . 26) (429 . 27) (399 . 97) (400 . 146) (401 . 147
-    ) (402 . 100) (408 . 28) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 
-    . 33) (420 . 34) (407 . 35) (422 . 184) (423 . 185) (424 . 186) (427 . 187
-    )) ((5 . 12) (6 . 13) (433 . 182)) ((5 . 12) (6 . 13) (433 . 181)) ((-1 . 
-    -12)) ((-1 . -13)) ((68 . 67) (161 . 68) (180 . 69) (187 . 70) (194 . 71) 
-    (195 . 72) (200 . 73) (206 . 74) (207 . 75) (196 . 76) (214 . 77) (209 . 
-    78) (226 . 79) (155 . 80) (156 . 81) (157 . 82) (158 . 83) (390 . 84) (391
-    . 85) (392 . 86) (393 . 87) (264 . 88) (394 . 89) (395 . 90) (265 . 91) (
-    266 . 92) (84 . 93) (268 . 94) (10 . 95) (270 . 96) (399 . 97) (400 . 98) 
-    (401 . 99) (402 . 100) (422 . 101) (385 . 102) (426 . 180) (418 . 1) (417 
-    . 2) (416 . 3) (415 . 4) (414 . 5) (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 
-    . 10) (4 . 11) (5 . 12) (6 . 13) (411 . 14) (410 . 15) (431 . 16) (432 . 
-    17) (433 . 18) (409 . 19) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 
-    . 24) (293 . 25) (25 . 26) (429 . 27) (408 . 28) (317 . 29) (419 . 30) (
-    319 . 31) (320 . 32) (428 . 33) (420 . 34) (407 . 35) (424 . 36) (430 . 66
-    )) ((-1 . -23)) ((-1 . -24)) ((-1 . -34)) ((-1 . -25)) ((-1 . -26)) ((68 
-    . 67) (161 . 68) (180 . 69) (187 . 70) (194 . 71) (195 . 72) (200 . 73) (
-    206 . 74) (207 . 75) (196 . 76) (214 . 77) (209 . 78) (226 . 79) (155 . 80
-    ) (156 . 81) (157 . 82) (158 . 83) (390 . 84) (391 . 85) (392 . 86) (393 
-    . 87) (264 . 88) (394 . 89) (395 . 90) (265 . 91) (266 . 92) (84 . 93) (
-    268 . 94) (10 . 95) (270 . 96) (399 . 97) (400 . 98) (401 . 99) (402 . 100
-    ) (422 . 101) (385 . 102) (426 . 179) (418 . 1) (417 . 2) (416 . 3) (415 
-    . 4) (414 . 5) (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 
-    12) (6 . 13) (411 . 14) (410 . 15) (431 . 16) (432 . 17) (433 . 18) (409 
-    . 19) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (25
-    . 26) (429 . 27) (408 . 28) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (
-    428 . 33) (420 . 34) (407 . 35) (424 . 36) (430 . 66)) ((418 . 1) (417 . 2
-    ) (416 . 3) (415 . 4) (414 . 5) (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 
-    10) (4 . 11) (5 . 12) (6 . 13) (411 . 14) (410 . 15) (431 . 16) (432 . 17)
-    (433 . 18) (409 . 19) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 
-    24) (293 . 25) (25 . 26) (429 . 27) (408 . 28) (317 . 29) (419 . 30) (319 
-    . 31) (320 . 32) (428 . 33) (420 . 34) (407 . 35) (424 . 36) (430 . 178)) 
-    ((9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (431 . 16) (432 . 17)
-    (433 . 18) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 
-    25) (429 . 27) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (25 
-    . 26) (420 . 60) (418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 5) (413 . 
-    6) (412 . 7) (411 . 14) (410 . 15) (409 . 177)) ((23 . 176) (61 . 38)) ((
-    -1 . -234)) ((8 . 174) (5 . 12) (6 . 13) (68 . 67) (390 . 169) (433 . 170)
-    (389 . 175)) ((8 . 172) (5 . 12) (6 . 13) (68 . 67) (390 . 169) (433 . 
-    170) (389 . 173)) ((8 . 168) (5 . 12) (6 . 13) (68 . 67) (390 . 169) (433 
-    . 170) (389 . 171)) ((-1 . -139)) ((194 . 167) (-1 . -137)) ((194 . 166) (
-    -1 . -136)) ((-1 . -133)) ((226 . 162) (214 . 163) (196 . 164) (206 . 165)
-    (-1 . -128)) ((214 . 159) (196 . 160) (195 . 161) (-1 . -117)) ((-1 . 
-    -114)) ((226 . 155) (214 . 156) (196 . 157) (206 . 158) (-1 . -115)) ((214
-    . 154) (-1 . -110)) ((-1 . -177)) ((-1 . -176)) ((-1 . -175)) ((-1 . -174
-    )) ((-1 . -109)) ((-1 . -108)) ((-1 . -107)) ((-1 . -106)) ((-1 . -105)) (
-    (-1 . -104)) ((-1 . -103)) ((-1 . -102)) ((-1 . -101)) ((-1 . -100)) ((-1 
-    . -99)) ((-1 . -98)) ((-1 . -97)) ((68 . 67) (161 . 68) (180 . 69) (187 . 
-    70) (194 . 71) (195 . 72) (200 . 73) (206 . 74) (207 . 75) (196 . 76) (214
-    . 77) (209 . 78) (226 . 79) (155 . 80) (156 . 81) (157 . 82) (158 . 83) (
-    390 . 84) (391 . 85) (392 . 86) (393 . 87) (264 . 88) (394 . 89) (395 . 90
-    ) (265 . 91) (266 . 92) (84 . 93) (268 . 94) (10 . 95) (270 . 96) (399 . 
-    97) (400 . 146) (401 . 147) (402 . 100) (422 . 153) (-1 . -91)) ((155 . 80
-    ) (266 . 92) (84 . 93) (268 . 94) (10 . 95) (270 . 96) (399 . 97) (402 . 
-    100) (422 . 151) (68 . 67) (161 . 68) (180 . 69) (187 . 70) (194 . 71) (
-    195 . 72) (200 . 73) (206 . 74) (207 . 75) (196 . 76) (214 . 77) (209 . 78
-    ) (226 . 79) (156 . 81) (157 . 82) (158 . 83) (390 . 84) (391 . 85) (392 
-    . 86) (393 . 87) (264 . 88) (394 . 89) (395 . 90) (265 . 91) (400 . 98) (
-    401 . 99) (385 . 152) (23 . -89) (78 . -159) (59 . -159) (25 . -159)) ((
-    155 . 80) (266 . 92) (84 . 93) (268 . 94) (10 . 95) (270 . 96) (399 . 97) 
-    (402 . 100) (422 . 149) (68 . 67) (161 . 68) (180 . 69) (187 . 70) (194 . 
-    71) (195 . 72) (200 . 73) (206 . 74) (207 . 75) (196 . 76) (214 . 77) (209
-    . 78) (226 . 79) (156 . 81) (157 . 82) (158 . 83) (390 . 84) (391 . 85) (
-    392 . 86) (393 . 87) (264 . 88) (394 . 89) (395 . 90) (265 . 91) (400 . 98
-    ) (401 . 99) (385 . 150) (23 . -87) (78 . -157) (59 . -157) (25 . -157)) (
-    (68 . 67) (161 . 68) (180 . 69) (187 . 70) (194 . 71) (195 . 72) (200 . 73
-    ) (206 . 74) (207 . 75) (196 . 76) (214 . 77) (209 . 78) (226 . 79) (155 
-    . 80) (156 . 81) (157 . 82) (158 . 83) (390 . 84) (391 . 85) (392 . 86) (
-    393 . 87) (264 . 88) (394 . 89) (395 . 90) (265 . 91) (266 . 92) (84 . 93)
-    (268 . 94) (10 . 95) (270 . 96) (399 . 97) (400 . 146) (401 . 147) (402 
-    . 100) (422 . 148) (-1 . -85)) ((23 . -209)) ((59 . 140) (25 . 141) (78 . 
-    142) (372 . 143) (379 . 144) (421 . 145)) ((23 . 139)) ((9 . 8) (2 . 9) (3
-    . 10) (4 . 11) (5 . 12) (6 . 13) (431 . 16) (432 . 17) (433 . 18) (309 . 
-    20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (429 . 27) (317 
-    . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (25 . 26) (420 . 60) (
-    418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 5) (413 . 6) (412 . 7) (411 
-    . 14) (410 . 138)) ((-1 . -304)) ((9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 
-    12) (6 . 13) (431 . 16) (432 . 17) (433 . 18) (309 . 20) (310 . 21) (302 
-    . 22) (303 . 23) (78 . 24) (293 . 25) (429 . 27) (317 . 29) (419 . 30) (
-    319 . 31) (320 . 32) (428 . 33) (25 . 26) (420 . 60) (418 . 1) (417 . 2) (
-    416 . 3) (415 . 4) (414 . 5) (413 . 6) (412 . 7) (411 . 137)) ((9 . 8) (2 
-    . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (431 . 16) (432 . 17) (433 . 18) 
-    (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (429 . 27
-    ) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (25 . 26) (420 . 
-    60) (418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 5) (413 . 6) (412 . 136
-    )) ((9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (431 . 16) (432 . 
-    17) (433 . 18) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 
-    . 25) (429 . 27) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (
-    25 . 26) (420 . 60) (418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 5) (413
-    . 135)) ((9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (431 . 16) (
-    432 . 17) (433 . 18) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24)
-    (293 . 25) (429 . 27) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 
-    33) (25 . 26) (420 . 60) (418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 
-    134)) ((9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (431 . 16) (432
-    . 17) (433 . 18) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (
-    293 . 25) (429 . 27) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33
-    ) (25 . 26) (420 . 60) (418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 133)
-    ) ((9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (431 . 16) (432 . 
-    17) (433 . 18) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 
-    . 25) (429 . 27) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (
-    25 . 26) (420 . 60) (418 . 1) (417 . 2) (416 . 3) (415 . 132)) ((9 . 8) (2
-    . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (431 . 16) (432 . 17) (433 . 18)
-    (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (429 . 
-    27) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (25 . 26) (420 
-    . 60) (418 . 1) (417 . 2) (416 . 3) (415 . 131)) ((9 . 8) (2 . 9) (3 . 10)
-    (4 . 11) (5 . 12) (6 . 13) (431 . 16) (432 . 17) (433 . 18) (309 . 20) (
-    310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (429 . 27) (317 . 29)
-    (419 . 30) (319 . 31) (320 . 32) (428 . 33) (25 . 26) (420 . 60) (418 . 1
-    ) (417 . 2) (416 . 3) (415 . 130)) ((9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 
-    . 12) (6 . 13) (431 . 16) (432 . 17) (433 . 18) (309 . 20) (310 . 21) (302
-    . 22) (303 . 23) (78 . 24) (293 . 25) (429 . 27) (317 . 29) (419 . 30) (
-    319 . 31) (320 . 32) (428 . 33) (25 . 26) (420 . 60) (418 . 1) (417 . 2) (
-    416 . 3) (415 . 129)) ((9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13)
-    (431 . 16) (432 . 17) (433 . 18) (309 . 20) (310 . 21) (302 . 22) (303 . 
-    23) (78 . 24) (293 . 25) (429 . 27) (317 . 29) (419 . 30) (319 . 31) (320 
-    . 32) (428 . 33) (25 . 26) (420 . 60) (418 . 1) (417 . 2) (416 . 128)) ((9
-    . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (431 . 16) (432 . 17) (
-    433 . 18) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25)
-    (429 . 27) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (25 . 
-    26) (420 . 60) (418 . 1) (417 . 2) (416 . 127)) ((9 . 8) (2 . 9) (3 . 10) 
-    (4 . 11) (5 . 12) (6 . 13) (431 . 16) (432 . 17) (433 . 18) (309 . 20) (
-    310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (429 . 27) (317 . 29)
-    (419 . 30) (319 . 31) (320 . 32) (428 . 33) (25 . 26) (420 . 60) (418 . 1
-    ) (417 . 126)) ((9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (431 
-    . 16) (432 . 17) (433 . 18) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (
-    78 . 24) (293 . 25) (429 . 27) (317 . 29) (419 . 30) (319 . 31) (320 . 32)
-    (428 . 33) (25 . 26) (420 . 60) (418 . 1) (417 . 125)) ((9 . 8) (2 . 9) (
-    3 . 10) (4 . 11) (5 . 12) (6 . 13) (431 . 16) (432 . 17) (433 . 18) (309 
-    . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (429 . 27) (
-    317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (25 . 26) (420 . 60)
-    (418 . 124)) ((9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (431 . 
-    16) (432 . 17) (433 . 18) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 
-    . 24) (293 . 25) (429 . 27) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (
-    428 . 33) (25 . 26) (420 . 60) (418 . 123)) ((9 . 8) (2 . 9) (3 . 10) (4 
-    . 11) (5 . 12) (6 . 13) (431 . 16) (432 . 17) (433 . 18) (309 . 20) (310 
-    . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (429 . 27) (317 . 29) (
-    419 . 30) (319 . 31) (320 . 32) (428 . 33) (25 . 26) (420 . 60) (418 . 122
-    )) ((-1 . -39)) ((-1 . -38)) ((-1 . -37)) ((78 . 119) (305 . 120) (304 . 
-    121) (-1 . -42)) ((78 . 119) (305 . 120) (304 . 121) (-1 . -41)) ((303 . 
-    117) (302 . 118) (-1 . -45)) ((303 . 117) (302 . 118) (-1 . -44)) ((301 . 
-    115) (300 . 116) (-1 . -50)) ((301 . 115) (300 . 116) (-1 . -49)) ((301 . 
-    115) (300 . 116) (-1 . -48)) ((301 . 115) (300 . 116) (-1 . -47)) ((299 . 
-    111) (298 . 112) (297 . 113) (296 . 114) (-1 . -53)) ((299 . 111) (298 . 
-    112) (297 . 113) (296 . 114) (-1 . -52)) ((295 . 109) (294 . 110) (-1 . 
-    -55)) ((293 . 108) (-1 . -57)) ((292 . 107) (-1 . -59)) ((291 . 106) (-1 
-    . -61)) ((8 . 237) (9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (
-    431 . 16) (432 . 17) (433 . 18) (309 . 20) (310 . 21) (302 . 22) (303 . 23
-    ) (78 . 24) (293 . 25) (429 . 27) (317 . 29) (419 . 30) (319 . 31) (320 . 
-    32) (428 . 33) (25 . 26) (420 . 60) (418 . 238)) ((418 . 1) (417 . 2) (416
-    . 3) (415 . 4) (414 . 5) (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 
-    . 11) (5 . 12) (6 . 13) (411 . 14) (410 . 15) (431 . 16) (432 . 17) (433 
-    . 18) (409 . 19) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (293 . 25) (
-    25 . 26) (429 . 27) (408 . 28) (317 . 29) (419 . 30) (319 . 31) (320 . 32)
-    (428 . 33) (420 . 34) (407 . 35) (424 . 232) (58 . 233) (84 . 234) (156 
-    . 81) (157 . 82) (158 . 83) (400 . 223) (377 . 235) (78 . 236)) ((59 . 140
-    ) (25 . 141) (78 . 142) (372 . 143) (379 . 144) (421 . 226) (68 . 67) (161
-    . 68) (180 . 69) (187 . 70) (194 . 71) (195 . 72) (200 . 73) (206 . 74) (
-    207 . 75) (196 . 76) (214 . 77) (209 . 78) (226 . 79) (155 . 80) (156 . 81
-    ) (157 . 82) (158 . 83) (390 . 84) (391 . 85) (392 . 86) (393 . 87) (264 
-    . 88) (394 . 89) (395 . 90) (265 . 91) (266 . 92) (84 . 93) (268 . 94) (10
-    . 95) (270 . 96) (399 . 97) (400 . 146) (401 . 147) (402 . 100) (422 . 
-    227) (373 . 228) (374 . 229) (376 . 230) (23 . 231)) ((156 . 81) (157 . 82
-    ) (158 . 83) (400 . 223) (377 . 224) (78 . 142) (379 . 225) (-1 . -194)) (
-    (59 . 221) (25 . 222) (23 . -212) (61 . -212)) ((59 . 140) (25 . 141) (372
-    . 220) (23 . -210) (61 . -210)) ((23 . -208)) ((68 . 67) (161 . 68) (180 
-    . 69) (187 . 70) (194 . 71) (195 . 72) (200 . 73) (206 . 74) (207 . 75) (
-    196 . 76) (214 . 77) (209 . 78) (226 . 79) (155 . 80) (156 . 81) (157 . 82
-    ) (158 . 83) (390 . 84) (391 . 85) (392 . 86) (393 . 87) (264 . 88) (394 
-    . 89) (395 . 90) (265 . 91) (266 . 92) (84 . 93) (268 . 94) (10 . 95) (270
-    . 96) (399 . 97) (400 . 146) (401 . 147) (402 . 100) (422 . 151) (-1 . 
-    -89)) ((68 . 67) (161 . 68) (180 . 69) (187 . 70) (194 . 71) (195 . 72) (
-    200 . 73) (206 . 74) (207 . 75) (196 . 76) (214 . 77) (209 . 78) (226 . 79
-    ) (155 . 80) (156 . 81) (157 . 82) (158 . 83) (390 . 84) (391 . 85) (392 
-    . 86) (393 . 87) (264 . 88) (394 . 89) (395 . 90) (265 . 91) (266 . 92) (
-    84 . 93) (268 . 94) (10 . 95) (270 . 96) (399 . 97) (400 . 146) (401 . 147
-    ) (402 . 100) (422 . 149) (-1 . -87)) ((-1 . -86)) ((-1 . -88)) ((-1 . 
-    -156)) ((-1 . -90)) ((-1 . -158)) ((-1 . -92)) ((-1 . -111)) ((214 . 219) 
-    (-1 . -112)) ((-1 . -116)) ((196 . 217) (214 . 218) (-1 . -119)) ((-1 . 
-    -134)) ((-1 . -118)) ((214 . 216) (-1 . -121)) ((194 . 215) (-1 . -138)) (
-    (214 . 214) (-1 . -126)) ((-1 . -127)) ((196 . 212) (214 . 213) (-1 . -130
-    )) ((-1 . -135)) ((-1 . -140)) ((-1 . -141)) ((68 . 67) (161 . 68) (180 . 
-    69) (187 . 70) (194 . 71) (195 . 72) (200 . 73) (206 . 74) (207 . 75) (196
-    . 76) (214 . 77) (209 . 78) (226 . 79) (156 . 81) (157 . 82) (158 . 83) (
-    390 . 84) (391 . 85) (392 . 86) (393 . 87) (264 . 88) (394 . 89) (395 . 90
-    ) (265 . 91) (400 . 203) (401 . 204) (345 . 205) (385 . 206) (386 . 207) (
-    387 . 208) (388 . 211)) ((-1 . -150)) ((-1 . -149)) ((8 . 210) (-1 . -145)
-    ) ((68 . 67) (161 . 68) (180 . 69) (187 . 70) (194 . 71) (195 . 72) (200 
-    . 73) (206 . 74) (207 . 75) (196 . 76) (214 . 77) (209 . 78) (226 . 79) (
-    156 . 81) (157 . 82) (158 . 83) (390 . 84) (391 . 85) (392 . 86) (393 . 87
-    ) (264 . 88) (394 . 89) (395 . 90) (265 . 91) (400 . 203) (401 . 204) (345
-    . 205) (385 . 206) (386 . 207) (387 . 208) (388 . 209)) ((8 . 202) (-1 . 
-    -148)) ((5 . 12) (6 . 13) (433 . 199) (380 . 200) (381 . 201)) ((8 . 198) 
-    (-1 . -169)) ((-1 . -5)) ((290 . 104) (-1 . -63)) ((52 . 197) (61 . 38)) (
-    (23 . 196)) ((23 . 195)) ((-1 . -11)) ((-1 . -10)) ((-1 . -9)) ((59 . 140)
-    (25 . 141) (78 . 142) (372 . 143) (379 . 144) (421 . 194) (23 . -21) (61 
-    . -21)) ((23 . -18) (61 . -18)) ((23 . -16) (61 . -16)) ((23 . 192) (61 . 
-    193)) ((58 . 191) (61 . 38)) ((-1 . -67)) ((-1 . -80)) ((-1 . -7)) ((-1 . 
-    -8)) ((68 . 67) (161 . 68) (180 . 69) (187 . 70) (194 . 71) (195 . 72) (
-    200 . 73) (206 . 74) (207 . 75) (196 . 76) (214 . 77) (209 . 78) (226 . 79
-    ) (155 . 80) (156 . 81) (157 . 82) (158 . 83) (390 . 84) (391 . 85) (392 
-    . 86) (393 . 87) (264 . 88) (394 . 89) (395 . 90) (265 . 91) (266 . 92) (
-    84 . 93) (268 . 94) (10 . 95) (270 . 96) (399 . 97) (400 . 146) (401 . 147
-    ) (402 . 100) (422 . 184) (423 . 291) (418 . 1) (417 . 2) (416 . 3) (415 
-    . 4) (414 . 5) (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 
-    12) (6 . 13) (411 . 14) (410 . 15) (431 . 16) (432 . 17) (433 . 18) (409 
-    . 19) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (25
-    . 26) (429 . 27) (408 . 28) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (
-    428 . 33) (420 . 34) (407 . 35) (424 . 292)) ((23 . -20) (61 . -20)) ((8 
-    . 237)) ((8 . 237) (-1 . -27)) ((9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12)
-    (6 . 13) (431 . 16) (432 . 17) (433 . 18) (309 . 20) (310 . 21) (302 . 22
-    ) (303 . 23) (78 . 24) (293 . 25) (429 . 27) (317 . 29) (419 . 30) (319 . 
-    31) (320 . 32) (428 . 33) (25 . 26) (420 . 60) (418 . 1) (417 . 2) (416 . 
-    3) (415 . 4) (414 . 5) (413 . 6) (412 . 7) (411 . 14) (410 . 15) (409 . 19
-    ) (408 . 28) (407 . 290)) ((5 . 12) (6 . 13) (433 . 199) (380 . 200) (381 
-    . 289)) ((60 . 288) (7 . -172) (61 . -172)) ((7 . -170) (61 . -170)) ((7 
-    . 286) (61 . 287)) ((68 . 67) (161 . 68) (180 . 69) (187 . 70) (194 . 71) 
-    (195 . 72) (200 . 73) (206 . 74) (207 . 75) (196 . 76) (214 . 77) (209 . 
-    78) (226 . 79) (156 . 81) (157 . 82) (158 . 83) (390 . 84) (391 . 85) (392
-    . 86) (393 . 87) (264 . 88) (394 . 89) (395 . 90) (265 . 91) (400 . 203) 
-    (401 . 204) (345 . 205) (385 . 206) (386 . 207) (387 . 208) (388 . 285)) (
-    (68 . 67) (161 . 68) (180 . 69) (187 . 70) (194 . 71) (195 . 72) (200 . 73
-    ) (206 . 74) (207 . 75) (196 . 76) (214 . 77) (209 . 78) (226 . 79) (156 
-    . 81) (157 . 82) (158 . 83) (390 . 84) (391 . 85) (392 . 86) (393 . 87) (
-    264 . 88) (394 . 89) (395 . 90) (265 . 91) (400 . 203) (401 . 204) (385 . 
-    152) (-1 . -159)) ((68 . 67) (161 . 68) (180 . 69) (187 . 70) (194 . 71) (
-    195 . 72) (200 . 73) (206 . 74) (207 . 75) (196 . 76) (214 . 77) (209 . 78
-    ) (226 . 79) (156 . 81) (157 . 82) (158 . 83) (390 . 84) (391 . 85) (392 
-    . 86) (393 . 87) (264 . 88) (394 . 89) (395 . 90) (265 . 91) (400 . 203) (
-    401 . 204) (385 . 150) (-1 . -157)) ((345 . -306) (-1 . -306)) ((5 . 12) (
-    6 . 13) (78 . 142) (25 . 279) (433 . 257) (378 . 258) (379 . 280) (52 . 
-    281) (397 . 282) (383 . 283) (384 . 284)) ((345 . -152) (-1 . -152)) ((345
-    . -151) (-1 . -151)) ((7 . 278) (68 . 67) (161 . 68) (180 . 69) (187 . 70
-    ) (194 . 71) (195 . 72) (200 . 73) (206 . 74) (207 . 75) (196 . 76) (214 
-    . 77) (209 . 78) (226 . 79) (156 . 81) (157 . 82) (158 . 83) (390 . 84) (
-    391 . 85) (392 . 86) (393 . 87) (264 . 88) (394 . 89) (395 . 90) (265 . 91
-    ) (400 . 203) (401 . 204) (385 . 206) (387 . 275) (345 . 205) (386 . 276))
-    ((68 . 67) (161 . 68) (180 . 69) (187 . 70) (194 . 71) (195 . 72) (200 . 
-    73) (206 . 74) (207 . 75) (196 . 76) (214 . 77) (209 . 78) (226 . 79) (156
-    . 81) (157 . 82) (158 . 83) (390 . 84) (391 . 85) (392 . 86) (393 . 87) (
-    264 . 88) (394 . 89) (395 . 90) (265 . 91) (400 . 203) (401 . 204) (345 . 
-    205) (385 . 206) (386 . 207) (387 . 208) (388 . 277)) ((7 . 274) (68 . 67)
-    (161 . 68) (180 . 69) (187 . 70) (194 . 71) (195 . 72) (200 . 73) (206 . 
-    74) (207 . 75) (196 . 76) (214 . 77) (209 . 78) (226 . 79) (156 . 81) (157
-    . 82) (158 . 83) (390 . 84) (391 . 85) (392 . 86) (393 . 87) (264 . 88) (
-    394 . 89) (395 . 90) (265 . 91) (400 . 203) (401 . 204) (385 . 206) (387 
-    . 275) (345 . 205) (386 . 276)) ((214 . 273) (-1 . -132)) ((-1 . -129)) ((
-    -1 . -125)) ((-1 . -142)) ((-1 . -122)) ((214 . 272) (-1 . -123)) ((-1 . 
-    -120)) ((-1 . -113)) ((59 . 221) (25 . 222) (23 . -211) (61 . -211)) ((84 
-    . 267) (58 . 268) (418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 5) (413 
-    . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (411 . 
-    14) (410 . 15) (431 . 16) (432 . 17) (433 . 18) (409 . 19) (309 . 20) (310
-    . 21) (302 . 22) (303 . 23) (78 . 269) (293 . 25) (25 . 26) (429 . 27) (
-    408 . 28) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (420 . 34
-    ) (407 . 35) (424 . 270) (156 . 81) (157 . 82) (158 . 83) (400 . 223) (377
-    . 271)) ((23 . 265) (68 . 67) (161 . 68) (180 . 69) (187 . 70) (194 . 71)
-    (195 . 72) (200 . 73) (206 . 74) (207 . 75) (196 . 76) (214 . 77) (209 . 
-    78) (226 . 79) (155 . 80) (156 . 81) (157 . 82) (158 . 83) (390 . 84) (391
-    . 85) (392 . 86) (393 . 87) (264 . 88) (394 . 89) (395 . 90) (265 . 91) (
-    266 . 92) (84 . 93) (268 . 94) (10 . 95) (270 . 96) (399 . 97) (400 . 146)
-    (401 . 147) (402 . 100) (422 . 227) (373 . 228) (374 . 229) (376 . 266)) 
-    ((-1 . -197)) ((78 . 142) (379 . 264) (156 . 81) (157 . 82) (158 . 83) (
-    400 . 250) (-1 . -193)) ((-1 . -196)) ((23 . 263)) ((5 . 12) (6 . 13) (433
-    . 257) (378 . 258) (397 . 259) (59 . 140) (25 . 260) (78 . 142) (372 . 
-    143) (379 . 261) (421 . 262) (23 . -205) (61 . -205)) ((61 . -201) (23 . 
-    -201)) ((61 . 256) (23 . -199)) ((23 . 255)) ((-1 . -233)) ((58 . 254)) ((
-    -1 . -224)) ((156 . 81) (157 . 82) (158 . 83) (400 . 223) (377 . 253)) ((
-    84 . 249) (156 . 81) (157 . 82) (158 . 83) (400 . 250) (58 . 251) (418 . 1
-    ) (417 . 2) (416 . 3) (415 . 4) (414 . 5) (413 . 6) (412 . 7) (9 . 8) (2 
-    . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (411 . 14) (410 . 15) (431 . 16) 
-    (432 . 17) (433 . 18) (409 . 19) (309 . 20) (310 . 21) (302 . 22) (303 . 
-    23) (78 . 24) (293 . 25) (25 . 26) (429 . 27) (408 . 28) (317 . 29) (419 
-    . 30) (319 . 31) (320 . 32) (428 . 33) (420 . 34) (407 . 35) (424 . 252)) 
-    ((58 . 248) (-1 . -29)) ((418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 5)
-    (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (
-    411 . 14) (410 . 15) (431 . 16) (432 . 17) (433 . 18) (409 . 19) (309 . 20
-    ) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (25 . 26) (429 . 
-    27) (57 . 239) (59 . 240) (408 . 28) (317 . 29) (419 . 30) (319 . 31) (320
-    . 32) (428 . 33) (369 . 241) (420 . 34) (407 . 35) (370 . 242) (8 . 243) 
-    (424 . 244) (396 . 245) (371 . 246) (425 . 247)) ((-1 . -35)) ((5 . 12) (6
-    . 13) (433 . 329)) ((9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (
-    431 . 16) (432 . 17) (433 . 18) (309 . 20) (310 . 21) (302 . 22) (303 . 23
-    ) (78 . 24) (293 . 25) (429 . 27) (317 . 29) (419 . 30) (319 . 31) (320 . 
-    32) (428 . 33) (25 . 26) (420 . 60) (418 . 1) (417 . 2) (416 . 3) (415 . 4
-    ) (414 . 5) (413 . 6) (412 . 7) (411 . 14) (410 . 15) (409 . 19) (408 . 28
-    ) (407 . 295) (382 . 328)) ((60 . -243) (57 . -243) (59 . -243)) ((60 . 
-    326) (57 . 239) (59 . 240) (369 . 327)) ((418 . 1) (417 . 2) (416 . 3) (
-    415 . 4) (414 . 5) (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 . 11) (
-    5 . 12) (6 . 13) (411 . 14) (410 . 15) (431 . 16) (432 . 17) (433 . 18) (
-    409 . 19) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25)
-    (25 . 26) (429 . 27) (57 . 239) (59 . 240) (408 . 28) (317 . 29) (419 . 
-    30) (319 . 31) (320 . 32) (428 . 33) (369 . 241) (420 . 34) (407 . 35) (
-    370 . 242) (8 . 243) (424 . 244) (396 . 245) (371 . 246) (425 . 325)) ((7 
-    . -235) (61 . -235)) ((7 . -239) (61 . -239)) ((418 . 1) (417 . 2) (416 . 
-    3) (415 . 4) (414 . 5) (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 . 
-    11) (5 . 12) (6 . 13) (411 . 14) (410 . 15) (431 . 16) (432 . 17) (433 . 
-    18) (409 . 19) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 
-    . 25) (25 . 26) (429 . 27) (408 . 28) (317 . 29) (419 . 30) (319 . 31) (
-    320 . 32) (428 . 33) (420 . 34) (407 . 35) (8 . 243) (424 . 244) (396 . 
-    324)) ((7 . 322) (61 . 323)) ((-1 . -229)) ((418 . 1) (417 . 2) (416 . 3) 
-    (415 . 4) (414 . 5) (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 . 11) 
-    (5 . 12) (6 . 13) (411 . 14) (410 . 15) (431 . 16) (432 . 17) (433 . 18) (
-    409 . 19) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25)
-    (25 . 26) (429 . 27) (408 . 28) (317 . 29) (419 . 30) (319 . 31) (320 . 
-    32) (428 . 33) (420 . 34) (407 . 35) (424 . 321)) ((-1 . -198)) ((-1 . 
-    -222)) ((58 . 320)) ((418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 5) (
-    413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (
-    411 . 14) (410 . 15) (431 . 16) (432 . 17) (433 . 18) (409 . 19) (309 . 20
-    ) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (25 . 26) (429 . 
-    27) (408 . 28) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (420
-    . 34) (407 . 35) (424 . 318) (156 . 81) (157 . 82) (158 . 83) (400 . 250)
-    (58 . 319)) ((-1 . -223)) ((-1 . -232)) ((68 . 67) (161 . 68) (180 . 69) 
-    (187 . 70) (194 . 71) (195 . 72) (200 . 73) (206 . 74) (207 . 75) (196 . 
-    76) (214 . 77) (209 . 78) (226 . 79) (155 . 80) (156 . 81) (157 . 82) (158
-    . 83) (390 . 84) (391 . 85) (392 . 86) (393 . 87) (264 . 88) (394 . 89) (
-    395 . 90) (265 . 91) (266 . 92) (84 . 93) (268 . 94) (10 . 95) (270 . 96) 
-    (399 . 97) (400 . 146) (401 . 147) (402 . 100) (422 . 227) (373 . 316) (
-    121 . 317)) ((-1 . -180)) ((59 . 314) (25 . 315) (-1 . -179)) ((23 . -203)
-    (61 . -203)) ((59 . 140) (372 . 143) (421 . 226) (68 . 67) (161 . 68) (
-    180 . 69) (187 . 70) (194 . 71) (195 . 72) (200 . 73) (206 . 74) (207 . 75
-    ) (196 . 76) (214 . 77) (209 . 78) (226 . 79) (155 . 80) (156 . 81) (157 
-    . 82) (158 . 83) (390 . 84) (391 . 85) (392 . 86) (393 . 87) (264 . 88) (
-    394 . 89) (395 . 90) (265 . 91) (266 . 92) (84 . 93) (268 . 94) (10 . 95) 
-    (270 . 96) (399 . 97) (400 . 146) (401 . 147) (402 . 100) (422 . 227) (373
-    . 228) (374 . 229) (376 . 230) (23 . 231) (5 . 12) (6 . 13) (78 . 142) (
-    25 . 260) (433 . 257) (378 . 258) (379 . 261) (397 . 305)) ((59 . 140) (
-    372 . 220) (5 . 12) (6 . 13) (25 . 260) (433 . 257) (378 . 304) (23 . -210
-    ) (61 . -210)) ((23 . -204) (61 . -204)) ((-1 . -213)) ((-1 . -195)) ((-1 
-    . -231)) ((23 . 313)) ((156 . 81) (157 . 82) (158 . 83) (400 . 223) (377 
-    . 312)) ((-1 . -217)) ((58 . 311) (-1 . -29)) ((58 . 310)) ((418 . 1) (417
-    . 2) (416 . 3) (415 . 4) (414 . 5) (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3
-    . 10) (4 . 11) (5 . 12) (6 . 13) (411 . 14) (410 . 15) (431 . 16) (432 . 
-    17) (433 . 18) (409 . 19) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 
-    . 24) (293 . 25) (25 . 26) (429 . 27) (408 . 28) (317 . 29) (419 . 30) (
-    319 . 31) (320 . 32) (428 . 33) (420 . 34) (407 . 35) (424 . 307) (156 . 
-    81) (157 . 82) (158 . 83) (400 . 250) (58 . 308) (84 . 309)) ((-1 . -124))
-    ((-1 . -131)) ((-1 . -144)) ((345 . -153) (-1 . -153)) ((345 . -154) (-1 
-    . -154)) ((7 . 306) (68 . 67) (161 . 68) (180 . 69) (187 . 70) (194 . 71) 
-    (195 . 72) (200 . 73) (206 . 74) (207 . 75) (196 . 76) (214 . 77) (209 . 
-    78) (226 . 79) (156 . 81) (157 . 82) (158 . 83) (390 . 84) (391 . 85) (392
-    . 86) (393 . 87) (264 . 88) (394 . 89) (395 . 90) (265 . 91) (400 . 203) 
-    (401 . 204) (385 . 206) (387 . 275) (345 . 205) (386 . 276)) ((-1 . -147))
-    ((5 . 12) (6 . 13) (78 . 142) (25 . 279) (433 . 257) (378 . 258) (379 . 
-    280) (397 . 305)) ((5 . 12) (6 . 13) (25 . 279) (433 . 257) (378 . 304)) (
-    (9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (431 . 16) (432 . 17) 
-    (433 . 18) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25
-    ) (429 . 27) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (25 . 
-    26) (420 . 60) (418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 5) (413 . 6)
-    (412 . 7) (411 . 14) (410 . 15) (409 . 19) (408 . 28) (407 . 295) (382 . 
-    303)) ((52 . 302) (11 . -162) (61 . -162)) ((11 . -160) (61 . -160)) ((11 
-    . 300) (61 . 301)) ((7 . 299) (68 . 67) (161 . 68) (180 . 69) (187 . 70) (
-    194 . 71) (195 . 72) (200 . 73) (206 . 74) (207 . 75) (196 . 76) (214 . 77
-    ) (209 . 78) (226 . 79) (156 . 81) (157 . 82) (158 . 83) (390 . 84) (391 
-    . 85) (392 . 86) (393 . 87) (264 . 88) (394 . 89) (395 . 90) (265 . 91) (
-    400 . 203) (401 . 204) (385 . 206) (387 . 275) (345 . 205) (386 . 276)) ((
-    -1 . -167)) ((7 . 297) (5 . 12) (6 . 13) (433 . 199) (380 . 298)) ((9 . 8)
-    (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (431 . 16) (432 . 17) (433 . 
-    18) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (429 
-    . 27) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (25 . 26) (
-    420 . 60) (418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 5) (413 . 6) (412
-    . 7) (411 . 14) (410 . 15) (409 . 19) (408 . 28) (407 . 295) (382 . 296))
-    ((61 . 293) (7 . 294)) ((-1 . -65)) ((23 . -19) (61 . -19)) ((23 . -17) (
-    61 . -17)) ((5 . 12) (6 . 13) (433 . 199) (380 . 298) (7 . 357)) ((-1 . 
-    -165)) ((-1 . -81)) ((7 . -173) (61 . -173)) ((-1 . -168)) ((7 . -171) (61
-    . -171)) ((-1 . -146)) ((344 . 354) (348 . 355) (403 . 356) (345 . -296) 
-    (-1 . -296)) ((5 . 12) (6 . 13) (78 . 142) (25 . 279) (433 . 257) (378 . 
-    258) (379 . 280) (52 . 281) (397 . 282) (383 . 353)) ((9 . 8) (2 . 9) (3 
-    . 10) (4 . 11) (5 . 12) (6 . 13) (431 . 16) (432 . 17) (433 . 18) (309 . 
-    20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (429 . 27) (317 
-    . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (25 . 26) (420 . 60) (
-    418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 5) (413 . 6) (412 . 7) (411 
-    . 14) (410 . 15) (409 . 19) (408 . 28) (407 . 295) (382 . 352)) ((11 . 
-    -164) (61 . -164)) ((59 . 314) (25 . 315) (-1 . -178)) ((23 . 351)) ((-1 
-    . -143)) ((58 . 350)) ((-1 . -215)) ((418 . 1) (417 . 2) (416 . 3) (415 . 
-    4) (414 . 5) (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12
-    ) (6 . 13) (411 . 14) (410 . 15) (431 . 16) (432 . 17) (433 . 18) (409 . 
-    19) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (25 
-    . 26) (429 . 27) (408 . 28) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (
-    428 . 33) (420 . 34) (407 . 35) (424 . 349)) ((-1 . -216)) ((-1 . -228)) (
-    (58 . 347) (156 . 81) (157 . 82) (158 . 83) (400 . 250) (418 . 1) (417 . 2
-    ) (416 . 3) (415 . 4) (414 . 5) (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 
-    10) (4 . 11) (5 . 12) (6 . 13) (411 . 14) (410 . 15) (431 . 16) (432 . 17)
-    (433 . 18) (409 . 19) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 
-    24) (293 . 25) (25 . 26) (429 . 27) (408 . 28) (317 . 29) (419 . 30) (319 
-    . 31) (320 . 32) (428 . 33) (420 . 34) (407 . 35) (424 . 348)) ((-1 . -230
-    )) ((84 . 342) (58 . 343) (418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 5
-    ) (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) 
-    (411 . 14) (410 . 15) (431 . 16) (432 . 17) (433 . 18) (409 . 19) (309 . 
-    20) (310 . 21) (302 . 22) (303 . 23) (78 . 344) (293 . 25) (25 . 26) (429 
-    . 27) (408 . 28) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (
-    420 . 34) (407 . 35) (424 . 345) (156 . 81) (157 . 82) (158 . 83) (400 . 
-    223) (377 . 346)) ((23 . 338) (5 . 12) (6 . 13) (433 . 339) (375 . 340) (
-    68 . 67) (161 . 68) (180 . 69) (187 . 70) (194 . 71) (195 . 72) (200 . 73)
-    (206 . 74) (207 . 75) (196 . 76) (214 . 77) (209 . 78) (226 . 79) (155 . 
-    80) (156 . 81) (157 . 82) (158 . 83) (390 . 84) (391 . 85) (392 . 86) (393
-    . 87) (264 . 88) (394 . 89) (395 . 90) (265 . 91) (266 . 92) (84 . 93) (
-    268 . 94) (10 . 95) (270 . 96) (399 . 97) (400 . 146) (401 . 147) (402 . 
-    100) (422 . 227) (373 . 228) (374 . 229) (376 . 341)) ((61 . -202) (23 . 
-    -202)) ((23 . -200)) ((58 . 337)) ((-1 . -226)) ((-1 . -221)) ((58 . 336))
-    ((-1 . -14)) ((7 . 333) (418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 5)
-    (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (
-    411 . 14) (410 . 15) (431 . 16) (432 . 17) (433 . 18) (409 . 19) (309 . 20
-    ) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (25 . 26) (429 . 
-    27) (408 . 28) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (420
-    . 34) (407 . 35) (8 . 243) (424 . 244) (396 . 334) (57 . 239) (59 . 240) 
-    (369 . 241) (370 . 242) (371 . 335)) ((7 . -238) (61 . -238)) ((61 . 331) 
-    (7 . 332)) ((-1 . -242)) ((60 . -244) (57 . -244) (59 . -244)) ((58 . 330)
-    ) ((60 . -246) (59 . -246) (57 . -246)) ((60 . -245) (59 . -245) (57 . 
-    -245)) ((418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 5) (413 . 6) (412 
-    . 7) (9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (411 . 14) (410 
-    . 15) (431 . 16) (432 . 17) (433 . 18) (409 . 19) (309 . 20) (310 . 21) (
-    302 . 22) (303 . 23) (78 . 24) (293 . 25) (25 . 26) (429 . 27) (408 . 28) 
-    (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (420 . 34) (407 . 
-    35) (8 . 243) (424 . 244) (396 . 334) (57 . 239) (59 . 240) (369 . 241) (
-    370 . 242) (371 . 335) (7 . 371)) ((7 . -236) (61 . -236)) ((-1 . -15)) ((
-    7 . -241) (61 . -241)) ((418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 5) 
-    (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (
-    411 . 14) (410 . 15) (431 . 16) (432 . 17) (433 . 18) (409 . 19) (309 . 20
-    ) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (25 . 26) (429 . 
-    27) (408 . 28) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (420
-    . 34) (407 . 35) (8 . 243) (424 . 244) (396 . 370)) ((-1 . -227)) ((-1 . 
-    -225)) ((-1 . -192)) ((23 . -206) (61 . -206)) ((23 . 368) (61 . 369)) ((
-    23 . 367)) ((156 . 81) (157 . 82) (158 . 83) (400 . 223) (377 . 366)) ((-1
-    . -185)) ((58 . 365) (-1 . -29)) ((58 . 364)) ((418 . 1) (417 . 2) (416 
-    . 3) (415 . 4) (414 . 5) (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 
-    . 11) (5 . 12) (6 . 13) (411 . 14) (410 . 15) (431 . 16) (432 . 17) (433 
-    . 18) (409 . 19) (309 . 20) (310 . 21) (302 . 22) (303 . 23) (293 . 25) (
-    25 . 26) (429 . 27) (408 . 28) (317 . 29) (419 . 30) (319 . 31) (320 . 32)
-    (428 . 33) (420 . 34) (407 . 35) (424 . 360) (156 . 81) (157 . 82) (158 
-    . 83) (400 . 250) (58 . 361) (84 . 362) (78 . 363)) ((-1 . -219)) ((58 . 
-    359)) ((58 . 358)) ((-1 . -214)) ((-1 . -181)) ((11 . -163) (61 . -163)) (
-    (11 . -161) (61 . -161)) ((345 . -305) (-1 . -305)) ((345 . -297) (-1 . 
-    -297)) ((345 . -155) (-1 . -155)) ((-1 . -166)) ((-1 . -220)) ((-1 . -218)
-    ) ((58 . 376)) ((-1 . -183)) ((418 . 1) (417 . 2) (416 . 3) (415 . 4) (414
-    . 5) (413 . 6) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 
-    13) (411 . 14) (410 . 15) (431 . 16) (432 . 17) (433 . 18) (409 . 19) (309
-    . 20) (310 . 21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (25 . 26) (
-    429 . 27) (408 . 28) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33
-    ) (420 . 34) (407 . 35) (424 . 375)) ((58 . 374) (-1 . -29)) ((-1 . -184))
-    ((-1 . -189)) ((418 . 1) (417 . 2) (416 . 3) (415 . 4) (414 . 5) (413 . 6
-    ) (412 . 7) (9 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (411 . 14)
-    (410 . 15) (431 . 16) (432 . 17) (433 . 18) (409 . 19) (309 . 20) (310 . 
-    21) (302 . 22) (303 . 23) (78 . 24) (293 . 25) (25 . 26) (429 . 27) (408 
-    . 28) (317 . 29) (419 . 30) (319 . 31) (320 . 32) (428 . 33) (420 . 34) (
-    407 . 35) (424 . 373) (156 . 81) (157 . 82) (158 . 83) (400 . 250)) ((-1 
-    . -190)) ((-1 . -191)) ((5 . 12) (6 . 13) (433 . 372)) ((7 . -240) (61 . 
-    -240)) ((7 . -237) (61 . -237)) ((23 . -207) (61 . -207)) ((58 . 378)) ((
-    -1 . -188)) ((58 . 377)) ((-1 . -182)) ((-1 . -187)) ((-1 . -186))))
+  #(((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (
+    7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) (
+    176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (
+    78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) (
+    164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) (169 . 36) 
+    (175 . 37)) ((-1 . -36)) ((79 . 119) (74 . 120) (73 . 121) (-1 . -40)) ((
+    78 . 117) (77 . 118) (-1 . -43)) ((72 . 115) (71 . 116) (-1 . -46)) ((70 
+    . 111) (69 . 112) (68 . 113) (67 . 114) (-1 . -51)) ((66 . 109) (65 . 110)
+    (-1 . -54)) ((80 . 108) (-1 . -56)) ((-1 . -299)) ((-1 . -298)) ((-1 . 
+    -297)) ((-1 . -296)) ((-1 . -295)) ((-1 . -294)) ((64 . 107) (-1 . -58)) (
+    (63 . 106) (-1 . -60)) ((7 . 105) (-1 . -4)) ((-1 . -3)) ((-1 . -2)) ((62 
+    . 104) (-1 . -62)) ((-1 . -33)) ((-1 . -32)) ((-1 . -31)) ((-1 . -30)) ((
+    -1 . -29)) ((-1 . -28)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5)
+    (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (
+    156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20)
+    (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (
+    153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) (
+    152 . 35) (169 . 36) (175 . 66) (21 . 67) (27 . 68) (28 . 69) (29 . 70) (
+    30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 
+    . 78) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 
+    85) (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (42 . 
+    92) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (145 . 98) (146 . 
+    99) (147 . 100) (167 . 101) (130 . 102) (171 . 103)) ((-1 . -6)) ((60 . 64
+    ) (61 . 65) (-1 . -64)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 
+    13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 
+    23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32
+    ) (173 . 33) (165 . 62) (92 . 63)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 
+    . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 
+    22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31
+    ) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 61)) ((7 . 8) (2 . 9) (
+    3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 
+    20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 57) (174 . 27)
+    (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 59)) ((7 . 8) 
+    (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 
+    18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 57) 
+    (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 58))
+    ((90 . 51) (92 . 52) (88 . 53) (87 . 54) (86 . 55) (85 . 56) (-1 . -22)) 
+    ((48 . 39) (49 . 40) (50 . 41) (51 . 42) (52 . 43) (53 . 44) (54 . 45) (55
+    . 46) (56 . 47) (57 . 48) (58 . 49) (151 . 50) (-1 . -34)) ((-1 . -66)) (
+    (-1 . -79)) ((82 . 38) (96 . 0)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) 
+    (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (
+    6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) 
+    (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174
+    . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165
+    . 34) (152 . 35) (169 . 190)) ((-1 . -78)) ((-1 . -77)) ((-1 . -76)) ((-1
+    . -75)) ((-1 . -74)) ((-1 . -73)) ((-1 . -72)) ((-1 . -71)) ((-1 . -70)) 
+    ((-1 . -69)) ((-1 . -68)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 
+    5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13)
+    (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 
+    20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27)
+    (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34)
+    (152 . 35) (169 . 189)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5
+    ) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) 
+    (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20
+    ) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (
+    153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) (
+    152 . 35) (169 . 36) (175 . 188)) ((91 . 183) (163 . 1) (162 . 2) (161 . 3
+    ) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11
+    ) (5 . 12) (6 . 13) (156 . 14) (21 . 67) (27 . 68) (28 . 69) (29 . 70) (30
+    . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 
+    78) (39 . 79) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (23 . 80) (24 . 
+    81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 . 
+    88) (139 . 89) (140 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . 94) (45 . 95
+    ) (46 . 96) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (
+    80 . 25) (92 . 26) (174 . 27) (144 . 97) (145 . 146) (146 . 147) (147 . 
+    100) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 
+    . 34) (152 . 35) (167 . 184) (168 . 185) (169 . 186) (172 . 187)) ((5 . 12
+    ) (6 . 13) (178 . 182)) ((5 . 12) (6 . 13) (178 . 181)) ((-1 . -12)) ((-1 
+    . -13)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 
+    . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (23 . 80
+    ) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 . 87
+    ) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . 94) 
+    (45 . 95) (46 . 96) (144 . 97) (145 . 98) (146 . 99) (147 . 100) (167 . 
+    101) (130 . 102) (171 . 180) (163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 
+    . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 
+    13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 
+    . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 
+    27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 
+    34) (152 . 35) (169 . 36) (175 . 66)) ((-1 . -23)) ((-1 . -24)) ((-1 . -34
+    )) ((-1 . -25)) ((-1 . -26)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 
+    . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78
+    ) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) 
+    (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (42 . 92) 
+    (43 . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (145 . 98) (146 . 99) (
+    147 . 100) (167 . 101) (130 . 102) (171 . 179) (163 . 1) (162 . 2) (161 . 
+    3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 
+    11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 
+    18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25)
+    (92 . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) 
+    (173 . 33) (165 . 34) (152 . 35) (169 . 36) (175 . 66)) ((163 . 1) (162 . 
+    2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 
+    10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17)
+    (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (
+    80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (
+    86 . 32) (173 . 33) (165 . 34) (152 . 35) (169 . 36) (175 . 178)) ((7 . 8)
+    (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 
+    18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27)
+    (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) 
+    (163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (156
+    . 14) (155 . 15) (154 . 177)) ((91 . 176) (82 . 38)) ((-1 . -234)) ((84 
+    . 174) (5 . 12) (6 . 13) (178 . 175)) ((84 . 172) (5 . 12) (6 . 13) (21 . 
+    67) (135 . 169) (178 . 170) (134 . 173)) ((84 . 168) (5 . 12) (6 . 13) (21
+    . 67) (135 . 169) (178 . 170) (134 . 171)) ((-1 . -139)) ((30 . 167) (-1 
+    . -137)) ((30 . 166) (-1 . -136)) ((-1 . -133)) ((39 . 162) (37 . 163) (35
+    . 164) (33 . 165) (-1 . -128)) ((37 . 159) (35 . 160) (31 . 161) (-1 . 
+    -117)) ((-1 . -114)) ((39 . 155) (37 . 156) (35 . 157) (33 . 158) (-1 . 
+    -115)) ((37 . 154) (-1 . -110)) ((-1 . -177)) ((-1 . -176)) ((-1 . -175)) 
+    ((-1 . -174)) ((-1 . -109)) ((-1 . -108)) ((-1 . -107)) ((-1 . -106)) ((-1
+    . -105)) ((-1 . -104)) ((-1 . -103)) ((-1 . -102)) ((-1 . -101)) ((-1 . 
+    -100)) ((-1 . -99)) ((-1 . -98)) ((-1 . -97)) ((21 . 67) (27 . 68) (28 . 
+    69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) 
+    (37 . 77) (36 . 78) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (135
+    . 84) (136 . 85) (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (
+    41 . 91) (42 . 92) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (145
+    . 146) (146 . 147) (147 . 100) (167 . 153) (-1 . -91)) ((23 . 80) (42 . 
+    92) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (147 . 100) (167 . 
+    151) (21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73)
+    (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (24 . 81) (25
+    . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 . 88) (
+    139 . 89) (140 . 90) (41 . 91) (145 . 98) (146 . 99) (130 . 152) (91 . -89
+    ) (79 . -159) (90 . -159) (92 . -159)) ((23 . 80) (42 . 92) (43 . 93) (44 
+    . 94) (45 . 95) (46 . 96) (144 . 97) (147 . 100) (167 . 149) (21 . 67) (27
+    . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 
+    75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) 
+    (135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90
+    ) (41 . 91) (145 . 98) (146 . 99) (130 . 150) (91 . -87) (79 . -157) (90 
+    . -157) (92 . -157)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (
+    31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 
+    . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 
+    . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (42 . 92) (43 
+    . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (145 . 146) (146 . 147) (
+    147 . 100) (167 . 148) (-1 . -85)) ((91 . -209)) ((90 . 140) (92 . 141) (
+    79 . 142) (117 . 143) (124 . 144) (166 . 145)) ((91 . 139)) ((7 . 8) (2 . 
+    9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (
+    75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 
+    . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 
+    . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (156 . 14
+    ) (155 . 138)) ((-1 . -300)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (
+    6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) (78
+    . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 
+    . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 2) (161 . 3) (160 
+    . 4) (159 . 5) (158 . 6) (157 . 7) (156 . 137)) ((7 . 8) (2 . 9) (3 . 10) 
+    (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 
+    . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 
+    30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 2
+    ) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 136)) ((7 . 8) (2 . 9) (3
+    . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 
+    20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29)
+    (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) 
+    (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 135)) ((7 . 8) (2 . 9) (3 
+    . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20
+    ) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (
+    164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) (
+    162 . 2) (161 . 3) (160 . 4) (159 . 134)) ((7 . 8) (2 . 9) (3 . 10) (4 . 
+    11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21)
+    (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (
+    85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 2) (
+    161 . 3) (160 . 4) (159 . 133)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12
+    ) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) 
+    (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (
+    86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 2) (161 . 3) (
+    160 . 132)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16
+    ) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) 
+    (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (
+    92 . 26) (165 . 60) (163 . 1) (162 . 2) (161 . 3) (160 . 131)) ((7 . 8) (2
+    . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18)
+    (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (
+    81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (
+    163 . 1) (162 . 2) (161 . 3) (160 . 130)) ((7 . 8) (2 . 9) (3 . 10) (4 . 
+    11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21)
+    (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (
+    85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 2) (
+    161 . 3) (160 . 129)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13)
+    (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) 
+    (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (
+    173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 2) (161 . 128)) ((7 . 8) (
+    2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18
+    ) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (
+    81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (
+    163 . 1) (162 . 2) (161 . 127)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12
+    ) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) 
+    (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (
+    86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 126)) ((7 . 8) (
+    2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18
+    ) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (
+    81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (
+    163 . 1) (162 . 125)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13)
+    (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) 
+    (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (
+    173 . 33) (92 . 26) (165 . 60) (163 . 124)) ((7 . 8) (2 . 9) (3 . 10) (4 
+    . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 
+    21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30
+    ) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 123)) ((7 . 8
+    ) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 
+    . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 
+    27) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 
+    60) (163 . 122)) ((-1 . -39)) ((-1 . -38)) ((-1 . -37)) ((79 . 119) (74 . 
+    120) (73 . 121) (-1 . -42)) ((79 . 119) (74 . 120) (73 . 121) (-1 . -41)) 
+    ((78 . 117) (77 . 118) (-1 . -45)) ((78 . 117) (77 . 118) (-1 . -44)) ((72
+    . 115) (71 . 116) (-1 . -50)) ((72 . 115) (71 . 116) (-1 . -49)) ((72 . 
+    115) (71 . 116) (-1 . -48)) ((72 . 115) (71 . 116) (-1 . -47)) ((70 . 111)
+    (69 . 112) (68 . 113) (67 . 114) (-1 . -53)) ((70 . 111) (69 . 112) (68 
+    . 113) (67 . 114) (-1 . -52)) ((66 . 109) (65 . 110) (-1 . -55)) ((80 . 
+    108) (-1 . -57)) ((64 . 107) (-1 . -59)) ((63 . 106) (-1 . -61)) ((84 . 
+    237) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 
+    . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 
+    25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 
+    26) (165 . 60) (163 . 238)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 
+    . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 
+    13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 
+    . 20) (76 . 21) (77 . 22) (78 . 23) (80 . 25) (92 . 26) (174 . 27) (153 . 
+    28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 
+    35) (169 . 232) (89 . 233) (43 . 234) (24 . 81) (25 . 82) (26 . 83) (145 
+    . 223) (122 . 235) (79 . 236)) ((90 . 140) (92 . 141) (79 . 142) (117 . 
+    143) (124 . 144) (166 . 226) (21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 
+    . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78
+    ) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) 
+    (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (42 . 92) 
+    (43 . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (145 . 146) (146 . 147)
+    (147 . 100) (167 . 227) (118 . 228) (119 . 229) (121 . 230) (91 . 231)) (
+    (24 . 81) (25 . 82) (26 . 83) (145 . 223) (122 . 224) (79 . 142) (124 . 
+    225) (-1 . -194)) ((90 . 221) (92 . 222) (91 . -212) (82 . -212)) ((90 . 
+    140) (92 . 141) (117 . 220) (91 . -210) (82 . -210)) ((91 . -208)) ((21 . 
+    67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) 
+    (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (23 . 80) (24 . 81) (25 
+    . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 . 88) (139
+    . 89) (140 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . 94) (45 . 95) (46 . 
+    96) (144 . 97) (145 . 146) (146 . 147) (147 . 100) (167 . 151) (-1 . -89))
+    ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (
+    33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (23 . 80) (24 
+    . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 
+    . 88) (139 . 89) (140 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . 94) (45 . 
+    95) (46 . 96) (144 . 97) (145 . 146) (146 . 147) (147 . 100) (167 . 149) (
+    -1 . -87)) ((-1 . -86)) ((-1 . -88)) ((-1 . -156)) ((-1 . -90)) ((-1 . 
+    -158)) ((-1 . -92)) ((-1 . -111)) ((37 . 219) (-1 . -112)) ((-1 . -116)) (
+    (35 . 217) (37 . 218) (-1 . -119)) ((-1 . -134)) ((-1 . -118)) ((37 . 216)
+    (-1 . -121)) ((30 . 215) (-1 . -138)) ((37 . 214) (-1 . -126)) ((-1 . 
+    -127)) ((35 . 212) (37 . 213) (-1 . -130)) ((-1 . -135)) ((-1 . -140)) ((
+    -1 . -141)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (
+    32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (24 
+    . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 
+    . 88) (139 . 89) (140 . 90) (41 . 91) (145 . 203) (146 . 204) (94 . 205) (
+    130 . 206) (131 . 207) (132 . 208) (133 . 211)) ((-1 . -150)) ((-1 . -149)
+    ) ((84 . 210) (-1 . -145)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 
+    71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) 
+    (39 . 79) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (
+    138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (145 . 203) (146 . 204
+    ) (94 . 205) (130 . 206) (131 . 207) (132 . 208) (133 . 209)) ((84 . 202) 
+    (-1 . -148)) ((5 . 12) (6 . 13) (178 . 199) (125 . 200) (126 . 201)) ((84 
+    . 198) (-1 . -169)) ((-1 . -5)) ((62 . 104) (-1 . -63)) ((59 . 197) (82 . 
+    38)) ((91 . 196)) ((91 . 195)) ((-1 . -11)) ((-1 . -10)) ((-1 . -9)) ((90 
+    . 140) (92 . 141) (79 . 142) (117 . 143) (124 . 144) (166 . 194) (91 . -21
+    ) (82 . -21)) ((91 . -18) (82 . -18)) ((91 . -16) (82 . -16)) ((91 . 192) 
+    (82 . 193)) ((89 . 191) (82 . 38)) ((-1 . -67)) ((-1 . -80)) ((-1 . -7)) (
+    (-1 . -8)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (
+    32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (23 
+    . 80) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 
+    . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . 
+    94) (45 . 95) (46 . 96) (144 . 97) (145 . 146) (146 . 147) (147 . 100) (
+    167 . 184) (168 . 291) (163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (
+    158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (
+    156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20)
+    (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (
+    153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) (
+    152 . 35) (169 . 292)) ((91 . -20) (82 . -20)) ((84 . 237)) ((84 . 237) (
+    -1 . -27)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16)
+    (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (
+    80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (
+    92 . 26) (165 . 60) (163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158
+    . 6) (157 . 7) (156 . 14) (155 . 15) (154 . 19) (153 . 28) (152 . 290)) (
+    (5 . 12) (6 . 13) (178 . 199) (125 . 200) (126 . 289)) ((58 . 288) (83 . 
+    -172) (82 . -172)) ((83 . -170) (82 . -170)) ((83 . 286) (82 . 287)) ((21 
+    . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74
+    ) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (24 . 81) (25 . 82) (
+    26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 . 88) (139 . 89) 
+    (140 . 90) (41 . 91) (145 . 203) (146 . 204) (94 . 205) (130 . 206) (131 
+    . 207) (132 . 208) (133 . 285)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (
+    30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 
+    . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 
+    . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (145 . 203) (
+    146 . 204) (130 . 152) (-1 . -159)) ((21 . 67) (27 . 68) (28 . 69) (29 . 
+    70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) 
+    (36 . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (
+    137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (145 . 203)
+    (146 . 204) (130 . 150) (-1 . -157)) ((94 . -302) (-1 . -302)) ((5 . 12) 
+    (6 . 13) (79 . 142) (92 . 279) (178 . 257) (123 . 258) (124 . 280) (59 . 
+    281) (142 . 282) (128 . 283) (129 . 284)) ((94 . -152) (-1 . -152)) ((94 
+    . -151) (-1 . -151)) ((83 . 278) (21 . 67) (27 . 68) (28 . 69) (29 . 70) (
+    30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 
+    . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 
+    . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (145 . 203) (
+    146 . 204) (130 . 206) (132 . 275) (94 . 205) (131 . 276)) ((21 . 67) (27 
+    . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75
+    ) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (
+    135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90)
+    (41 . 91) (145 . 203) (146 . 204) (94 . 205) (130 . 206) (131 . 207) (132
+    . 208) (133 . 277)) ((83 . 274) (21 . 67) (27 . 68) (28 . 69) (29 . 70) (
+    30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 
+    . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 
+    . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (145 . 203) (
+    146 . 204) (130 . 206) (132 . 275) (94 . 205) (131 . 276)) ((37 . 273) (-1
+    . -132)) ((-1 . -129)) ((-1 . -125)) ((-1 . -142)) ((-1 . -122)) ((37 . 
+    272) (-1 . -123)) ((-1 . -120)) ((-1 . -113)) ((90 . 221) (92 . 222) (91 
+    . -211) (82 . -211)) ((43 . 267) (89 . 268) (163 . 1) (162 . 2) (161 . 3) 
+    (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) 
+    (5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (
+    154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 269) (80 . 25) (92
+    . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173
+    . 33) (165 . 34) (152 . 35) (169 . 270) (24 . 81) (25 . 82) (26 . 83) (
+    145 . 223) (122 . 271)) ((91 . 265) (21 . 67) (27 . 68) (28 . 69) (29 . 70
+    ) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (
+    36 . 78) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136
+    . 85) (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (42
+    . 92) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (145 . 146) (146
+    . 147) (147 . 100) (167 . 227) (118 . 228) (119 . 229) (121 . 266)) ((-1 
+    . -197)) ((79 . 142) (124 . 264) (24 . 81) (25 . 82) (26 . 83) (145 . 250)
+    (-1 . -193)) ((-1 . -196)) ((91 . 263)) ((5 . 12) (6 . 13) (178 . 257) (
+    123 . 258) (142 . 259) (90 . 140) (92 . 260) (79 . 142) (117 . 143) (124 
+    . 261) (166 . 262) (91 . -205) (82 . -205)) ((82 . -201) (91 . -201)) ((82
+    . 256) (91 . -199)) ((91 . 255)) ((-1 . -233)) ((89 . 254)) ((-1 . -224))
+    ((24 . 81) (25 . 82) (26 . 83) (145 . 223) (122 . 253)) ((43 . 249) (24 
+    . 81) (25 . 82) (26 . 83) (145 . 250) (89 . 251) (163 . 1) (162 . 2) (161 
+    . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 
+    . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 
+    . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 
+    25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 
+    32) (173 . 33) (165 . 34) (152 . 35) (169 . 252)) ((89 . 248) (-1 . -29)) 
+    ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 
+    . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) (
+    176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (
+    78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (88 . 239) (90 . 240) (
+    153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (114 . 241) 
+    (165 . 34) (152 . 35) (115 . 242) (84 . 243) (169 . 244) (141 . 245) (116 
+    . 246) (170 . 247)) ((-1 . -35)) ((5 . 12) (6 . 13) (178 . 329)) ((7 . 8) 
+    (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 
+    18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27)
+    (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) 
+    (163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (156
+    . 14) (155 . 15) (154 . 19) (153 . 28) (152 . 295) (127 . 328)) ((58 . 
+    -243) (88 . -243) (90 . -243)) ((58 . 326) (88 . 239) (90 . 240) (114 . 
+    327)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 
+    7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 
+    15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 
+    22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (88 . 239) (90 . 
+    240) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (114 
+    . 241) (165 . 34) (152 . 35) (115 . 242) (84 . 243) (169 . 244) (141 . 245
+    ) (116 . 246) (170 . 325)) ((83 . -235) (82 . -235)) ((83 . -239) (82 . 
+    -239)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 
+    . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 
+    . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 
+    . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 
+    29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) (84 . 
+    243) (169 . 244) (141 . 324)) ((83 . 322) (82 . 323)) ((-1 . -229)) ((163 
+    . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (
+    2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16
+    ) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23)
+    (79 . 24) (80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) 
+    (85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) (169 . 321)) ((-1 . 
+    -198)) ((-1 . -222)) ((89 . 320)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4)
+    (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) 
+    (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19)
+    (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (
+    174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (
+    165 . 34) (152 . 35) (169 . 318) (24 . 81) (25 . 82) (26 . 83) (145 . 250)
+    (89 . 319)) ((-1 . -223)) ((-1 . -232)) ((21 . 67) (27 . 68) (28 . 69) (
+    29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 
+    . 77) (36 . 78) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (135 . 
+    84) (136 . 85) (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 
+    . 91) (42 . 92) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (145 . 
+    146) (146 . 147) (147 . 100) (167 . 227) (118 . 316) (22 . 317)) ((-1 . 
+    -180)) ((90 . 314) (92 . 315) (-1 . -179)) ((91 . -203) (82 . -203)) ((90 
+    . 140) (117 . 143) (166 . 226) (21 . 67) (27 . 68) (28 . 69) (29 . 70) (30
+    . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 
+    78) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85
+    ) (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (42 . 92
+    ) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (145 . 146) (146 . 
+    147) (147 . 100) (167 . 227) (118 . 228) (119 . 229) (121 . 230) (91 . 231
+    ) (5 . 12) (6 . 13) (79 . 142) (92 . 260) (178 . 257) (123 . 258) (124 . 
+    261) (142 . 305)) ((90 . 140) (117 . 220) (5 . 12) (6 . 13) (92 . 260) (
+    178 . 257) (123 . 304) (91 . -210) (82 . -210)) ((91 . -204) (82 . -204)) 
+    ((-1 . -213)) ((-1 . -195)) ((-1 . -231)) ((91 . 313)) ((24 . 81) (25 . 82
+    ) (26 . 83) (145 . 223) (122 . 312)) ((-1 . -217)) ((89 . 311) (-1 . -29))
+    ((89 . 310)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6)
+    (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) 
+    (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21)
+    (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (153 . 28) (
+    81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) (
+    169 . 307) (24 . 81) (25 . 82) (26 . 83) (145 . 250) (89 . 308) (43 . 309)
+    ) ((-1 . -124)) ((-1 . -131)) ((-1 . -144)) ((94 . -153) (-1 . -153)) ((94
+    . -154) (-1 . -154)) ((83 . 306) (21 . 67) (27 . 68) (28 . 69) (29 . 70) 
+    (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 
+    . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 
+    . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (145 . 203) (
+    146 . 204) (130 . 206) (132 . 275) (94 . 205) (131 . 276)) ((-1 . -147)) (
+    (5 . 12) (6 . 13) (79 . 142) (92 . 279) (178 . 257) (123 . 258) (124 . 280
+    ) (142 . 305)) ((5 . 12) (6 . 13) (92 . 279) (178 . 257) (123 . 304)) ((7 
+    . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (
+    178 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174
+    . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 
+    . 60) (163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7
+    ) (156 . 14) (155 . 15) (154 . 19) (153 . 28) (152 . 295) (127 . 303)) ((
+    59 . 302) (47 . -162) (82 . -162)) ((47 . -160) (82 . -160)) ((47 . 300) (
+    82 . 301)) ((83 . 299) (21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (
+    31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 
+    . 79) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 
+    . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (145 . 203) (146 . 204) (
+    130 . 206) (132 . 275) (94 . 205) (131 . 276)) ((-1 . -167)) ((83 . 297) (
+    5 . 12) (6 . 13) (178 . 199) (125 . 298)) ((7 . 8) (2 . 9) (3 . 10) (4 . 
+    11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21)
+    (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (
+    85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 2) (
+    161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (156 . 14) (155 . 15) (
+    154 . 19) (153 . 28) (152 . 295) (127 . 296)) ((82 . 293) (83 . 294)) ((-1
+    . -65)) ((91 . -19) (82 . -19)) ((91 . -17) (82 . -17)) ((5 . 12) (6 . 13
+    ) (178 . 199) (125 . 298) (83 . 357)) ((-1 . -165)) ((-1 . -81)) ((83 . 
+    -173) (82 . -173)) ((-1 . -168)) ((83 . -171) (82 . -171)) ((-1 . -146)) (
+    (93 . 354) (97 . 355) (148 . 356) (94 . -292) (-1 . -292)) ((5 . 12) (6 . 
+    13) (79 . 142) (92 . 279) (178 . 257) (123 . 258) (124 . 280) (59 . 281) (
+    142 . 282) (128 . 353)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 
+    13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 
+    23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32
+    ) (173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 2) (161 . 3) (160 . 4) 
+    (159 . 5) (158 . 6) (157 . 7) (156 . 14) (155 . 15) (154 . 19) (153 . 28) 
+    (152 . 295) (127 . 352)) ((47 . -164) (82 . -164)) ((90 . 314) (92 . 315) 
+    (-1 . -178)) ((91 . 351)) ((-1 . -143)) ((89 . 350)) ((-1 . -215)) ((163 
+    . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (
+    2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16
+    ) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23)
+    (79 . 24) (80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) 
+    (85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) (169 . 349)) ((-1 . 
+    -216)) ((-1 . -228)) ((89 . 347) (24 . 81) (25 . 82) (26 . 83) (145 . 250)
+    (163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 
+    . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) (
+    176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (
+    78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) (
+    164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) (169 . 348)
+    ) ((-1 . -230)) ((43 . 342) (89 . 343) (163 . 1) (162 . 2) (161 . 3) (160 
+    . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 
+    12) (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 
+    . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 344) (80 . 25) (92 . 
+    26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 
+    33) (165 . 34) (152 . 35) (169 . 345) (24 . 81) (25 . 82) (26 . 83) (145 
+    . 223) (122 . 346)) ((91 . 338) (5 . 12) (6 . 13) (178 . 339) (120 . 340) 
+    (21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 
+    . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (23 . 80) (24 . 81
+    ) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 . 88
+    ) (139 . 89) (140 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . 94) (45 . 95) 
+    (46 . 96) (144 . 97) (145 . 146) (146 . 147) (147 . 100) (167 . 227) (118 
+    . 228) (119 . 229) (121 . 341)) ((82 . -202) (91 . -202)) ((91 . -200)) ((
+    89 . 337)) ((-1 . -226)) ((-1 . -221)) ((89 . 336)) ((-1 . -14)) ((83 . 
+    333) (163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7)
+    (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15)
+    (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22)
+    (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) (
+    164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) (84 . 243) 
+    (169 . 244) (141 . 334) (88 . 239) (90 . 240) (114 . 241) (115 . 242) (116
+    . 335)) ((83 . -238) (82 . -238)) ((82 . 331) (83 . 332)) ((-1 . -242)) (
+    (58 . -244) (88 . -244) (90 . -244)) ((89 . 330)) ((58 . -246) (90 . -246)
+    (88 . -246)) ((58 . -245) (90 . -245) (88 . -245)) ((163 . 1) (162 . 2) (
+    161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) 
+    (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (
+    178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80
+    . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 
+    . 32) (173 . 33) (165 . 34) (152 . 35) (84 . 243) (169 . 244) (141 . 334) 
+    (88 . 239) (90 . 240) (114 . 241) (115 . 242) (116 . 335) (83 . 371)) ((83
+    . -236) (82 . -236)) ((-1 . -15)) ((83 . -241) (82 . -241)) ((163 . 1) (
+    162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9)
+    (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177
+    . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 
+    . 24) (80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 
+    . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) (84 . 243) (169 . 244) (
+    141 . 370)) ((-1 . -227)) ((-1 . -225)) ((-1 . -192)) ((91 . -206) (82 . 
+    -206)) ((91 . 368) (82 . 369)) ((91 . 367)) ((24 . 81) (25 . 82) (26 . 83)
+    (145 . 223) (122 . 366)) ((-1 . -185)) ((89 . 365) (-1 . -29)) ((89 . 364
+    )) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) 
+    (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) 
+    (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) 
+    (78 . 23) (80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) (
+    85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) (169 . 360) (24 . 81) 
+    (25 . 82) (26 . 83) (145 . 250) (89 . 361) (43 . 362) (79 . 363)) ((-1 . 
+    -219)) ((89 . 359)) ((89 . 358)) ((-1 . -214)) ((-1 . -181)) ((47 . -163) 
+    (82 . -163)) ((47 . -161) (82 . -161)) ((94 . -301) (-1 . -301)) ((94 . 
+    -293) (-1 . -293)) ((94 . -155) (-1 . -155)) ((-1 . -166)) ((-1 . -220)) (
+    (-1 . -218)) ((89 . 376)) ((-1 . -183)) ((163 . 1) (162 . 2) (161 . 3) (
+    160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (
+    5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (
+    154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 
+    . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 
+    . 33) (165 . 34) (152 . 35) (169 . 375)) ((89 . 374) (-1 . -29)) ((-1 . 
+    -184)) ((-1 . -189)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (
+    158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (
+    156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20)
+    (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (
+    153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) (
+    152 . 35) (169 . 373) (24 . 81) (25 . 82) (26 . 83) (145 . 250)) ((-1 . 
+    -190)) ((-1 . -191)) ((5 . 12) (6 . 13) (178 . 372)) ((83 . -240) (82 . 
+    -240)) ((83 . -237) (82 . -237)) ((91 . -207) (82 . -207)) ((89 . 378)) ((
+    -1 . -188)) ((89 . 377)) ((-1 . -182)) ((-1 . -187)) ((-1 . -186))))
 
 (define rto-v
-  #(#f 435 429 429 429 429 428 428 428 428 428 428 428 428 428 428 427 427 
-    427 427 423 423 420 420 420 420 420 420 419 419 419 419 419 419 418 418 
-    417 417 417 417 416 416 416 415 415 415 414 414 414 414 414 413 413 413 
-    412 412 411 411 410 410 409 409 408 408 407 407 424 424 406 406 406 406 
-    406 406 406 406 406 406 406 430 430 382 356 356 404 422 422 422 422 422 
-    422 422 422 405 405 398 398 402 402 402 402 402 401 401 401 401 401 401 
-    401 401 395 395 395 395 395 395 395 395 395 395 395 395 395 395 395 395 
-    395 395 395 395 395 395 395 395 395 395 394 394 394 393 393 393 393 392 
-    392 392 392 392 392 389 389 388 388 388 388 387 385 385 385 385 384 384 
-    383 383 383 391 391 391 391 391 381 381 380 380 400 400 400 399 397 397 
-    378 378 378 378 378 378 378 378 378 378 378 378 378 379 379 379 379 377 
-    377 376 376 374 374 373 373 373 375 375 426 426 421 421 421 372 372 372 
-    372 372 372 372 372 372 372 372 372 372 372 372 372 372 372 372 372 372 
-    390 396 396 396 425 425 425 425 371 370 370 369 369 359 368 367 367 367 
-    367 367 367 367 366 366 366 365 365 358 358 357 357 364 364 363 363 363 
-    362 362 362 355 355 355 354 354 361 361 361 361 361 434 434 353 352 351 
-    351 351 351 351 350 350 349 349 403 403 433 433 432 432 432 431 431 348 
-    386 360))
+  #(#f 180 174 174 174 174 173 173 173 173 173 173 173 173 173 173 172 172 
+    172 172 168 168 165 165 165 165 165 165 164 164 164 164 164 164 163 163 
+    162 162 162 162 161 161 161 160 160 160 159 159 159 159 159 158 158 158 
+    157 157 156 156 155 155 154 154 153 153 152 152 169 169 151 151 151 151 
+    151 151 151 151 151 151 151 175 175 127 103 103 149 167 167 167 167 167 
+    167 167 167 150 150 143 143 147 147 147 147 147 146 146 146 146 146 146 
+    146 146 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 
+    140 140 140 140 140 140 140 140 140 140 139 139 139 138 138 138 138 137 
+    137 137 137 137 137 134 134 133 133 133 133 132 130 130 130 130 129 129 
+    128 128 128 136 136 136 136 136 126 126 125 125 145 145 145 144 142 142 
+    123 123 123 123 123 123 123 123 123 123 123 123 123 124 124 124 124 122 
+    122 121 121 119 119 118 118 118 120 120 171 171 166 166 166 117 117 117 
+    117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 
+    135 141 141 141 170 170 170 170 116 115 115 114 114 106 106 106 106 106 
+    106 106 113 113 113 112 112 105 105 104 104 111 111 110 110 110 109 109 
+    109 102 102 102 101 101 108 108 108 108 108 179 179 100 100 100 100 100 99
+    99 98 98 148 148 178 178 177 177 177 176 176 97 131 107))
 
 (define mtab
   '((cpp-stmt . 1) ($chlit . 2) ($float . 3) ($fixed . 4) (cpp-ident . 5) (
-    $ident . 6) ("}" . 7) ("{" . 8) ($string . 9) ("extern" . 10) (";" . 11) (
-    "return" . 12) (";" . 11) ("return" . 12) (";" . 11) ("break" . 16) (";" 
-    . 11) ("continue" . 18) (";" . 11) ("goto" . 20) (";" . 11) (";" . 11) (
-    ")" . 23) (";" . 11) ("(" . 25) ("for" . 26) (";" . 11) (")" . 23) ("(" . 
-    25) ("while" . 30) ("do" . 31) (")" . 23) ("(" . 25) ("while" . 30) (")" 
-    . 23) ("(" . 25) ("switch" . 37) ("else" . 38) (")" . 23) ("(" . 25) ("if"
-    . 41) (then . 42) (")" . 23) ("(" . 25) ("if" . 41) (";" . 11) (";" . 11)
-    ("}" . 7) ("{" . 8) ("}" . 7) ("{" . 8) (":" . 52) ("default" . 53) (":" 
-    . 52) ("case" . 55) (":" . 52) ("." . 57) ("]" . 58) ("[" . 59) ("=" . 60)
-    ("," . 61) ("," . 61) ("}" . 7) ("," . 61) ("{" . 8) ("}" . 7) ("{" . 8) 
-    (typename . 68) (")" . 23) ("(" . 25) (")" . 23) ("(" . 25) (")" . 23) (
-    "(" . 25) (")" . 23) ("(" . 25) ("]" . 58) ("*" . 78) ("[" . 59) ("]" . 58
-    ) ("*" . 78) ("[" . 59) ("]" . 58) ("static" . 84) ("[" . 59) ("]" . 58) (
-    "static" . 84) ("[" . 59) ("]" . 58) ("static" . 84) ("[" . 59) ("]" . 58)
-    ("[" . 59) ("]" . 58) ("[" . 59) ("]" . 58) ("[" . 59) ("]" . 58) ("[" . 
-    59) ("]" . 58) ("static" . 84) ("[" . 59) ("]" . 58) ("static" . 84) ("[" 
-    . 59) ("]" . 58) ("static" . 84) ("[" . 59) ("]" . 58) ("[" . 59) ("]" . 
-    58) ("[" . 59) ("]" . 58) ("[" . 59) ("]" . 58) ("[" . 59) (")" . 23) ("("
-    . 25) ("," . 61) ("," . 61) ("..." . 121) ("," . 61) ("*" . 78) ("*" . 78
-    ) ("*" . 78) ("*" . 78) (")" . 23) ("(" . 25) (")" . 23) ("(" . 25) (")" 
-    . 23) ("(" . 25) ("]" . 58) ("*" . 78) ("[" . 59) ("]" . 58) ("*" . 78) (
-    "[" . 59) ("]" . 58) ("static" . 84) ("[" . 59) ("]" . 58) ("static" . 84)
-    ("[" . 59) ("]" . 58) ("[" . 59) ("]" . 58) ("[" . 59) ("]" . 58) ("[" . 
-    59) ("]" . 58) ("[" . 59) (")" . 23) ("(" . 25) ("inline" . 155) (
-    "restrict" . 156) ("volatile" . 157) ("const" . 158) ("=" . 60) ("," . 61)
-    ("enum" . 161) ("}" . 7) ("," . 61) ("{" . 8) ("enum" . 161) ("}" . 7) (
-    "{" . 8) ("enum" . 161) ("}" . 7) ("," . 61) ("{" . 8) ("enum" . 161) ("}"
-    . 7) ("{" . 8) ("enum" . 161) (":" . 52) (":" . 52) ("," . 61) (";" . 11)
-    ("union" . 180) ("}" . 7) ("{" . 8) ("union" . 180) ("}" . 7) ("{" . 8) (
-    "union" . 180) ("struct" . 187) ("}" . 7) ("{" . 8) ("struct" . 187) ("}" 
-    . 7) ("{" . 8) ("struct" . 187) ("_Complex" . 194) ("double" . 195) (
-    "long" . 196) ("_Complex" . 194) ("double" . 195) ("_Complex" . 194) (
-    "float" . 200) ("_Complex" . 194) ("double" . 195) ("long" . 196) (
-    "double" . 195) ("float" . 200) ("char" . 206) ("unsigned" . 207) ("char" 
-    . 206) ("signed" . 209) ("char" . 206) ("long" . 196) ("long" . 196) (
-    "unsigned" . 207) ("int" . 214) ("long" . 196) ("long" . 196) ("unsigned" 
-    . 207) ("long" . 196) ("unsigned" . 207) ("int" . 214) ("long" . 196) (
-    "unsigned" . 207) ("unsigned" . 207) ("int" . 214) ("unsigned" . 207) (
-    "short" . 226) ("unsigned" . 207) ("int" . 214) ("short" . 226) (
-    "unsigned" . 207) ("int" . 214) ("long" . 196) ("long" . 196) ("signed" . 
-    209) ("long" . 196) ("long" . 196) ("signed" . 209) ("int" . 214) ("long" 
-    . 196) ("long" . 196) ("long" . 196) ("long" . 196) ("int" . 214) ("long" 
-    . 196) ("signed" . 209) ("long" . 196) ("signed" . 209) ("int" . 214) (
-    "long" . 196) ("long" . 196) ("int" . 214) ("signed" . 209) ("signed" . 
-    209) ("int" . 214) ("int" . 214) ("short" . 226) ("signed" . 209) ("short"
-    . 226) ("signed" . 209) ("int" . 214) ("short" . 226) (imp . 262) (
-    "short" . 226) ("_Bool" . 264) ("void" . 265) ("typedef" . 266) ("static" 
-    . 84) ("register" . 268) ("extern" . 10) ("auto" . 270) ("=" . 60) ("," . 
-    61) (";" . 11) (";" . 11) ("," . 61) ("|=" . 276) ("^=" . 277) ("&=" . 278
-    ) (">>=" . 279) ("<<=" . 280) ("%=" . 281) ("/=" . 282) ("*=" . 283) ("-="
-    . 284) ("+=" . 285) ("=" . 60) (":" . 52) ("?" . 288) ("||" . 289) ("&&" 
-    . 290) ("|" . 291) ("^" . 292) ("&" . 293) ("!=" . 294) ("==" . 295) (">="
-    . 296) ("<=" . 297) (">" . 298) ("<" . 299) (">>" . 300) ("<<" . 301) (
-    "-" . 302) ("+" . 303) ("%" . 304) ("/" . 305) ("*" . 78) (")" . 23) ("(" 
-    . 25) ("!" . 309) ("~" . 310) ("-" . 302) ("+" . 303) ("*" . 78) ("&" . 
-    293) (")" . 23) ("(" . 25) ("sizeof" . 317) ("sizeof" . 317) ("--" . 319) 
-    ("++" . 320) ("," . 61) ("," . 61) ("}" . 7) ("," . 61) ("{" . 8) (")" . 
-    23) ("(" . 25) ("}" . 7) ("{" . 8) (")" . 23) ("(" . 25) ("--" . 319) (
-    "++" . 320) ("->" . 334) ("." . 57) (")" . 23) ("(" . 25) (")" . 23) ("(" 
-    . 25) ("]" . 58) ("[" . 59) (")" . 23) ("(" . 25) ($code-comm . 344) (
-    $lone-comm . 345) ($error . 346) ($end . 347)))
+    $ident . 6) ($string . 7) ("return" . 8) ("break" . 9) ("continue" . 10) (
+    "goto" . 11) ("for" . 12) ("do" . 13) ("while" . 14) ("switch" . 15) (
+    "else" . 16) (then . 17) ("if" . 18) ("default" . 19) ("case" . 20) (
+    typename . 21) ("..." . 22) ("inline" . 23) ("restrict" . 24) ("volatile" 
+    . 25) ("const" . 26) ("enum" . 27) ("union" . 28) ("struct" . 29) (
+    "_Complex" . 30) ("double" . 31) ("float" . 32) ("char" . 33) ("unsigned" 
+    . 34) ("long" . 35) ("signed" . 36) ("int" . 37) (imp . 38) ("short" . 39)
+    ("_Bool" . 40) ("void" . 41) ("typedef" . 42) ("static" . 43) ("register"
+    . 44) ("extern" . 45) ("auto" . 46) (";" . 47) ("|=" . 48) ("^=" . 49) (
+    "&=" . 50) (">>=" . 51) ("<<=" . 52) ("%=" . 53) ("/=" . 54) ("*=" . 55) (
+    "-=" . 56) ("+=" . 57) ("=" . 58) (":" . 59) ("?" . 60) ("||" . 61) ("&&" 
+    . 62) ("|" . 63) ("^" . 64) ("!=" . 65) ("==" . 66) (">=" . 67) ("<=" . 68
+    ) (">" . 69) ("<" . 70) (">>" . 71) ("<<" . 72) ("%" . 73) ("/" . 74) ("!"
+    . 75) ("~" . 76) ("-" . 77) ("+" . 78) ("*" . 79) ("&" . 80) ("sizeof" . 
+    81) ("," . 82) ("}" . 83) ("{" . 84) ("--" . 85) ("++" . 86) ("->" . 87) (
+    "." . 88) ("]" . 89) ("[" . 90) (")" . 91) ("(" . 92) ($code-comm . 93) (
+    $lone-comm . 94) ($error . 95) ($end . 96)))
 
 ;;; end tables
index 4c6ac07c618ebfe9677f39c6915159febb245199..f0b800faacd18ae7889ab0f259290c8f83848eaf 100644 (file)
@@ -1,6 +1,6 @@
 ;; ./mach.d/cppact.scm
 
-;; 
+;; Copyright (C) 2016,2017 Matthew R. Wette
 ;; 
 ;; This software is covered by the GNU GENERAL PUBLIC LICENCE, Version 3,
 ;; or any later version published by the Free Software Foundation.  See
index 98141bbf2d6b5a4f20b5ba6536e85222b1623b9d..80945c5305bd0fcd120b3cc91705bb74299fbfc6 100644 (file)
@@ -1,6 +1,6 @@
 ;; ./mach.d/cpptab.scm
 
-;; 
+;; Copyright (C) 2016,2017 Matthew R. Wette
 ;; 
 ;; This software is covered by the GNU GENERAL PUBLIC LICENCE, Version 3,
 ;; or any later version published by the Free Software Foundation.  See
index 20f7ac7e21043c2143a59739bce57fbce720c250..9f29c9e330495e027dc8a4eb02829e84dfc503c6 100644 (file)
@@ -1,6 +1,6 @@
 ;;; lang/c99/mach.scm
 ;;;
-;;; Copyright (C) 2015,2016 Matthew R. Wette
+;;; Copyright (C) 2015-2017 Matthew R. Wette
 ;;;
 ;;; This program is free software: you can redistribute it and/or modify
 ;;; it under the terms of the GNU General Public License as published by 
@@ -26,9 +26,7 @@
   #:use-module (nyacc parse)
   #:use-module (nyacc lex)
   #:use-module (nyacc util)
-  #:use-module ((srfi srfi-9) #:select (define-record-type))
   #:use-module ((srfi srfi-43) #:select (vector-map))
-  #:use-module ((sxml xpath) #:select (sxpath))
   )
 
 ;; @item c99-spec
 ;; The output of the end parser will be a SXML tree (w/o the @code{*TOP*} node.
 (define c99-spec
   (lalr-spec
-   (notice (string-append "Copyright 2016,2017 Matthew R. Wette" lang-crn-lic))
+   (notice (string-append "Copyright (C) 2016,2017 Matthew R. Wette"
+                         lang-crn-lic))
    (prec< 'then "else")               ; "then/else" SR-conflict resolution
    (prec< 'imp                ; "implied type" SR-conflict resolution
          "char" "short" "int" "long"
          "float" "double" "_Complex")
-   (start translation-unit-proxy)
+   (start translation-unit)
    (grammar
 
-    (translation-unit-proxy (translation-unit ($$ (tl->list $1))))
-
     ;; expressions
     (primary-expression                        ; S 6.5.1
      (identifier ($$ `(p-expr ,$1)))
 
     ;; statements
     (statement
-     (($$ (cpp-ok!)) statement-1 ($$ $2)))
-    (statement-1
      (labeled-statement)
      (compound-statement)
      (expression-statement)
      (expression))
 
     (jump-statement                    ; S 6.8.6
-     ("goto" identifier ";" ($$ `(goto $2)))
+     ("goto" identifier ";" ($$ `(goto ,$2)))
      ("continue" ";" ($$ '(continue)))
      ("break" ";" ($$ '(break)))
      ("return" expression ";" ($$ `(return ,$2)))
      )
 
     ;; external definitions
-    (translation-unit
+    (translation-unit (external-declaration-list ($$ (tl->list $1))))
+
+    (external-declaration-list
      (external-declaration ($$ (make-tl 'trans-unit $1)))
-     (translation-unit
+     (external-declaration-list
       external-declaration
-      ($$ (if (eqv? (sx-tag $2) 'extern-block) (tl-extend $1 (sx-tail $2))
+      ;; A ``kludge'' to deal with @code{extern "C" ...}:
+      ($$ (if (eqv? (sx-tag $2) 'extern-block) (tl-extend $1 (sx-tail $2 2))
              (tl-append $1 $2))))
      )
 
     (external-declaration
-     (($$ (cpp-ok!)) external-declaration-1 ($$ $2)))
-    (external-declaration-1
      (function-definition)
      (declaration)
      (lone-comment)
      (cpp-statement)
-     ;; The following is a kludge to deal with @code{extern "C" @{ ...}.
-     ("extern" $string "{" translation-unit "}"
-      ($$ `(extern-block $2 (extern-C-begin) $4 (extern-C-end))))
+     ("extern" $string "{" external-declaration-list "}"
+      ($$ `(extern-block ,$2 (extern-begin ,$2)
+                        ,@(sx-tail (tl->list $4) 1) (extern-end))))
      )
     
     (function-definition
                        (xdef? #f)      ; expand def function: proc name mode
                        (debug #f))     ; debug
   (catch
-   'parse-error
+   #t ;; 'c99-error 'cpp-error 'nyacc-error
    (lambda ()
      (let ((info (make-cpi debug cpp-defs (cons "." inc-dirs) td-dict)))
-       (with-fluid* *info* info
-                   (lambda ()
-                     (raw-parser (gen-c-lexer #:mode mode #:xdef? xdef?)
-                                 #:debug debug)))))
+       (with-fluid*
+          *info* info
+          (lambda ()
+            (raw-parser (gen-c-lexer #:mode mode #:xdef? xdef?)
+                        #:debug debug)))))
    (lambda (key fmt . rest)
-     (apply simple-format (current-error-port) (string-append fmt "\n") rest)
+     (report-error fmt rest)
      #f)))
 
 (define dev-parse-c dev-parse-c99)
        (b (move-if-changed (xtra-dir "c99tab.scm.new")
                            (xtra-dir "c99tab.scm"))))
     (when (or a b) 
-      (system (string-append "touch " (lang-dir "parser.scm")))
-      #;(compile-file (lang-dir "parser.scm"))
-      )))
+      (system (string-append "touch " (lang-dir "parser.scm"))))))
 
 ;; @item gen-c99x-files [dir] => #t
 ;; Update or generate the files @quot{c99xact.scm} and @quot{c99xtab.scm}.
index 0af1a342e63a338d57bb32aa2a5e8500cc4a2894..80f94f3122a2a30c80fb5182e28457f94241dfcf 100644 (file)
@@ -1,6 +1,6 @@
 ;;; nyacc/lang/c99/parser.scm
 ;;;
-;;; Copyright (C) 2015 Matthew R. Wette
+;;; Copyright (C) 2015-2017 Matthew R. Wette
 ;;;
 ;;; This program is free software: you can redistribute it and/or modify
 ;;; it under the terms of the GNU General Public License as published by 
 ;; C parser
 
 (define-module (nyacc lang c99 parser)
-  #:export (parse-c parse-c99 def-xdef? std-dict)
+  #:export (parse-c99
+           def-xdef? c99-std-dict
+           gen-c-lexer
+           gen-gcc-defs
+           )
   #:use-module (nyacc lex)
   #:use-module (nyacc parse)
   #:use-module (nyacc lang util)
   #:use-module (nyacc lang c99 cpp)
-  #:use-module ((srfi srfi-9) #:select (define-record-type))
-  #:use-module ((sxml xpath) #:select (sxpath))
-  ;;#:use-module (nyacc lang c99 my-parse)
   )
 
 (cond-expand
 (include-from-path "nyacc/lang/c99/mach.d/c99act.scm")
 
 ;; Parse given a token generator.  Uses fluid @code{*info*}.
+;; A little ugly wrt re-throw but
 (define raw-parser
-  ;;(make-c99-ia-parser 
-  (make-lalr-parser 
-   (list
-    (cons 'len-v len-v)
-    (cons 'pat-v pat-v)
-    (cons 'rto-v rto-v)
-    (cons 'mtab mtab)
-    (cons 'act-v act-v))))
-
-(define* (my-c-lexer #:key (mode 'file) (xdef? #f))
-  (let ((def-lxr (gen-c-lexer #:mode mode #:xdef? xdef?)))
-    (lambda ()
-      (let ((tok (def-lxr)))
-       ;;(simple-format #t "~S\n" tok)
-       tok))))
+  (let ((c99-parser (make-lalr-parser
+                    (list (cons 'len-v len-v) (cons 'pat-v pat-v)
+                          (cons 'rto-v rto-v) (cons 'mtab mtab)
+                          (cons 'act-v act-v)))))
+    (lambda* (lexer #:key (debug #f))
+      (with-throw-handler
+       'nyacc-error
+       (lambda () (c99-parser lexer #:debug debug))
+       (lambda (key fmt . args) (apply throw 'c99-error fmt args))))))
 
+;; This is used to parse included files at top level.
 (define (run-parse)
   (let ((info (fluid-ref *info*)))
-    ;;(raw-parser (my-c-lexer) #:debug (cpi-debug info))))
     (raw-parser (gen-c-lexer) #:debug (cpi-debug info))))
 
-;; @item parse-c [#:cpp-defs def-a-list] [#:inc-dirs dir-list] [#:debug bool] \
-;;               [#:mode ('code|'file)]
+;; @deffn parse-c99 [#:cpp-defs def-a-list] [#:inc-dirs dir-list] \
+;;               [#:mode ('code|'file)] [#:debug bool]
 ;; This needs to be explained in some detail.
 ;; tdd = typedef dict: (("<time>" time_t) ... ("<unistd.h>" ...))
+;; Default mode is @code{'code}.
+;; @example
+;; (with-input-from-file "abc.c"
+;;   (parse-c #:cpp-defs '(("ABC" . "123"))
+;;            #:inc-dirs (append '("." "./incs" "/usr/include") c99-std-dict)
+;;            #:td-dict '(("myinc.h" "foo_t" "bar_t"))
+;;            #:mode 'file))
+;; @end example
 (define* (parse-c99 #:key
                    (cpp-defs '())      ; CPP defines
                    (inc-dirs '())      ; include dirs
                    (td-dict '())       ; typedef dictionary
-                   (mode 'file)        ; mdoe: 'file or 'code
+                   (mode 'code)        ; mode: 'file or 'code
                    (xdef? #f)          ; pred to determine expand
                    (debug #f))         ; debug
   (catch
-   'parse-error
+   'c99-error
    (lambda ()
      (let ((info (make-cpi debug cpp-defs (cons "." inc-dirs) td-dict)))
        (with-fluid*
           *info* info
           (lambda ()
-            (if (eqv? mode 'file) (cpp-ok!) (no-cpp!))
-            (raw-parser (my-c-lexer #:mode mode #:xdef? xdef?)
+            (raw-parser (gen-c-lexer #:mode mode #:xdef? xdef?)
                         #:debug debug)))))
    (lambda (key fmt . rest)
-     (apply simple-format (current-error-port) (string-append fmt "\n") rest)
+     (report-error fmt rest)
      #f)))
 
 (define parse-c parse-c99)
 
+(use-modules (ice-9 rdelim))
+(use-modules (ice-9 popen))
+(use-modules (ice-9 regex))
+
+;; @deffn gen-gcc-defs args  => '(("ABC" . "123") ...)
+;; Generate a list of default defines produced by gcc.
+(define gen-gcc-defs
+  ;; @code{"gcc -dM -E"} will generate lines like @code{"#define ABC 123"}.
+  ;; We generate and return a list like @code{'(("ABC" . "123") ...)}.
+  (let ((rx (make-regexp "#define\\s+(\\S+)\\s+(.*)")))
+    (lambda (args)
+      (map
+       (lambda (l)
+        (let ((m (regexp-exec rx l)))
+          (cons (match:substring m 1) (match:substring m 2))))
+       (let ((ip (open-input-pipe "gcc -dM -E - </dev/null")))
+        (let iter ((lines '()) (line (read-line ip 'trim)))
+          (if (eof-object? line) lines
+              (iter (cons line lines) (read-line ip 'trim)))))))))
+
 ;; --- last line ---
index 7a21082595b91b7c51b700972a64df974a9f9689..e8800d813052a823cbb71215f22f12e5a119350c 100644 (file)
       ((cpp-stmt . ,rest)
        (cpp-ppx (sx-ref tree 1)))
 
-      ((extern-C-begin) (sf "extern \"C\" {\n"))
-      ((extern-C-end) (sf "}\n"))
+      ((extern-begin ,lang) (sf "extern \"~A\" {\n" lang))
+      ((extern-end) (sf "}\n"))
 
       (,otherwise
        (simple-format #t "\n*** pprint/ppx: NO MATCH: ~S\n" (car tree)))
       ))
 
   (define ppx ppx-1)
-  
+
+  (if (not (pair? tree)) (error "expecing sxml tree"))
   (ppx tree)
   (if ugly (newline)))
 
index f4602eca32290a10280b50495d79ce3eafbac135..948af60a4f3a321063c848d00d0220e08fef66e3 100644 (file)
 ;; This needs to be explained in some detail.
 ;; [#:tyns '("foo_t")]
 (define* (parse-c99x xstr
-                  #:key (cpp-defs '()) (tn-dict '()) (debug #f) (tyns '()))
-  (catch
-   'parse-error
-   (lambda ()
-     (let ((info (make-cpi debug cpp-defs '(".") tn-dict)))
-       (set-cpi-ptl! info (cons tyns (cpi-ptl info)))
-       (with-fluid*
-          *info* info
-          (lambda ()
-            (with-input-from-string xstr
-              (lambda ()
-                  (raw-parser (gen-c-lexer #:mode 'code) #:debug debug)))))))
+                    #:key
+                    (cpp-defs '())     ; CPP defines
+                    (tn-dict '())      ; typedef dictionary
+                    (xdef? #f)         ; pred to determine expand
+                    (debug #f)         ; debug?
+                    (tyns '()))        ; defined typenames
+  (with-input-from-string xstr
+    (catch
+     #t
+     (lambda ()
+       (let ((info (make-cpi debug cpp-defs '(".") tn-dict)))
+        (set-cpi-ptl! info (cons tyns (cpi-ptl info)))
+        (with-fluid*
+            *info* info
+            (lambda ()
+              (raw-parser (gen-c-lexer #:mode 'code #:xdef? xdef?)
+                          #:debug debug))))))
    (lambda (key fmt . rest)
-     (apply simple-format (current-error-port) (string-append fmt "\n") rest)
+     (report-error fmt rest)
      #f)))
 
 (define parse-cx parse-c99x)
index cd240379f58a1616d33cabda8935ff1bca996244..1d22d911ae467129d39fe66cf91680a6e624ab76 100644 (file)
@@ -9,20 +9,21 @@
 ;; runtime utilities for the parsers -- needs work
 
 (define-module (nyacc lang util)
-#:export (lang-crn-lic
-    push-input pop-input reset-input-stack
-    make-tl tl->list ;; rename?? to tl->sx for sxml-expr
-    tl-append tl-insert tl-extend tl+attr
-    sx-tag
-    sx-attr sx-attr-ref sx-has-attr? sx-set-attr! sx-set-attr*
-    sx-ref sx-tail sx-find
-    ;; for pretty-printing
-    make-protect-expr make-pp-formatter make-pp-formatter/ugly
-    ;; for ???
-    move-if-changed
-    fmterr)
-#:use-module ((srfi srfi-1) #:select(find))
-)
+  #:export (lang-crn-lic 
+           report-error
+           push-input pop-input reset-input-stack
+           make-tl tl->list ;; rename?? to tl->sx for sxml-expr
+           tl-append tl-insert tl-extend tl+attr
+           sx-tag
+           sx-attr sx-attr-ref sx-has-attr? sx-set-attr! sx-set-attr*
+           sx-ref sx-tail sx-find
+           ;; for pretty-printing
+           make-protect-expr make-pp-formatter make-pp-formatter/ugly
+           ;; for ???
+           move-if-changed
+           fmterr)
+  #:use-module ((srfi srfi-1) #:select(find))
+  )
 
 (cond-expand
  (guile-2)
@@ -40,7 +41,15 @@ or any later version published by the Free Software Foundation.  See
 the file COPYING included with the this distribution.")
 
 (define (fmterr fmt . args)
-(apply simple-format (current-error-port) fmt args))
+  (apply simple-format (current-error-port) fmt args))
+
+;; @deffn report-error fmt args
+;; Report an error: to stderr, providing file and line num info, and add nl.
+(define (report-error fmt args)
+  (let ((fn (or (port-filename (current-input-port)) "(unknown)"))
+       (ln (1+ (port-line (current-input-port)))))
+    (apply simple-format (current-error-port)
+          (string-append "~S:~S: " fmt "\n") fn ln args)))
 
 ;; === input stack =====================
 
@@ -79,9 +88,9 @@ the file COPYING included with the this distribution.")
 ;; @deffn make-tl tag [item item ...]
 ;; Create a tagged-list structure.
 (define (make-tl tag . rest)
-(let iter ((tail tag) (l rest))
-(if (null? l) (cons '() tail)
-(iter (cons (car l) tail) (cdr l)))))
+  (let iter ((tail tag) (l rest))
+    (if (null? l) (cons '() tail)
+       (iter (cons (car l) tail) (cdr l)))))
 
 ;; @deffn tl->list tl
 ;; Convert a tagged list structure to a list.  This collects added attributes
@@ -90,37 +99,43 @@ the file COPYING included with the this distribution.")
 ;; (<tag> (@ <attr>) <rest>)
 ;; @end example
 (define (tl->list tl)
-(let ((heda (car tl))
-(head (let iter ((head '()) (attr '()) (tl-head (car tl)))
-       (if (null? tl-head)
-           (if (pair? attr)
-               (cons (cons '@ attr) (reverse head))
-               (reverse head))
-           (if (and (pair? (car tl-head)) (eq? '@ (caar tl-head)))
-               (iter head (cons (cdar tl-head) attr) (cdr tl-head))
-               (iter (cons (car tl-head) head) attr (cdr tl-head)))))))
-(let iter ((tail '()) (tl-tail (cdr tl)))
-(if (pair? tl-tail)
-  (iter (cons (car tl-tail) tail) (cdr tl-tail))
-  (cons tl-tail (append head tail))))))
+  (let ((heda (car tl))
+       (head (let iter ((head '()) (attr '()) (tl-head (car tl)))
+               (if (null? tl-head)
+                   (if (pair? attr)
+                       (cons (cons '@ attr) (reverse head))
+                       (reverse head))
+                   (if (and (pair? (car tl-head)) (eq? '@ (caar tl-head)))
+                       (iter head (cons (cdar tl-head) attr) (cdr tl-head))
+                       (iter (cons (car tl-head) head) attr (cdr tl-head)))))))
+    (let iter ((tail '()) (tl-tail (cdr tl)))
+      (if (pair? tl-tail)
+         (iter (cons (car tl-tail) tail) (cdr tl-tail))
+         (cons tl-tail (append head tail))))))
 
 ;; @deffn tl-insert tl item
 ;; Insert item at front of tagged list (but after tag).
 (define (tl-insert tl item)
-(cons (cons item (car tl)) (cdr tl)))
+  (cons (cons item (car tl)) (cdr tl)))
 
 ;; @deffn tl-append tl item ...
-;; Append item at end of tagged list.
+;; Append items at end of tagged list.
 (define (tl-append tl . rest)
-(cons (car tl)
-(let iter ((tail (cdr tl)) (items rest))
-  (if (null? items) tail
-      (iter (cons (car items) tail) (cdr items))))))
+  (cons (car tl)
+       (let iter ((tail (cdr tl)) (items rest))
+         (if (null? items) tail
+             (iter (cons (car items) tail) (cdr items))))))
 
 ;; @deffn tl-extend tl item-l
 ;; Extend with a list of items.
 (define (tl-extend tl item-l)
-(apply tl-append tl item-l))
+  (apply tl-append tl item-l))
+
+;; @deffn tl-extend! tl item-l
+;; Extend with a list of items.  Uses @code{set-cdr!}.
+(define (tl-extend! tl item-l)
+  (set-cdr! (last-pair tl) item-l)
+  tl)
 
 ;; @deffn tl+attr tl key val)
 ;; Add an attribute to a tagged list.  Return the tl.
@@ -128,16 +143,20 @@ the file COPYING included with the this distribution.")
 ;; (tl+attr tl 'type "int")
 ;; @end example
 (define (tl+attr tl key val)
-(tl-insert tl (cons '@ (list key val))))
+  (tl-insert tl (cons '@ (list key val))))
 
 ;; @deffn tl-merge tl tl1
 ;; Merge guts of phony-tl @code{tl1} into @code{tl}.
 (define (tl-merge tl tl1)
-(error "not implemented (yet)")
-)
+  (error "not implemented (yet)")
+  )
 
 ;; === sx ==============================
 ;; @section SXML Utility Procedures
+;; Some lot of these look like existing Guile list procedures (e.g.,
+;; @code{sx-tail} versus @code{list-tail} but in sx lists the optional
+;; attributea are `invisible'. For example, @code{'(elt (@abc) "d")}
+;; is an sx of length two: the tag @code{elt} and the payload @code{"d"}.
 
 ;; @deffn sx-ref sx ix => item
 ;; Reference the @code{ix}-th element of the list, not counting the optional
@@ -147,78 +166,79 @@ the file COPYING included with the this distribution.")
 ;; (sx-ref '(abc (@ (foo "1")) "def") 1) => "def"
 ;; @end example
 (define (sx-ref sx ix)
-(define (list-xref l x) (if (> (length l) x) (list-ref l x) #f))
-(cond
-((zero? ix) (car sx))
-((and (pair? (cadr sx)) (eqv? '@ (caadr sx)))
-(list-xref sx (1+ ix)))
-(else
-(list-xref sx ix))))
+  (define (list-xref l x) (if (> (length l) x) (list-ref l x) #f))
+  (cond
+   ((zero? ix) (car sx))
+   ((and (pair? (cadr sx)) (eqv? '@ (caadr sx)))
+    (list-xref sx (1+ ix)))
+   (else
+    (list-xref sx ix))))
 
 ;; @deffn sx-tag sx => tag
 ;; Return the tag for a tree
 (define (sx-tag sx)
-(if (pair? sx) (car sx) #f))
+  (if (pair? sx) (car sx) #f))
 
 ;; @deffn sx-tail sx ix => (list)
 ;; Return the tail starting at the ix-th cdr, starting from 0.
 ;; For example, if sx has 3 items then (sx-tail sx 2) returns '().
-;; BUG: not working for (sx '(foo) 1)
 (define (sx-tail sx ix)
-(if (zero? ix) (error "zero index not supported"))
-(let ((sx (cdr sx)) (ix (1- ix)))
-(cond
-((and (null? sx) (zero? ix)) sx)
-((and (pair? (car sx)) (eqv? '@ (caar sx))) (list-tail sx (1+ ix)))
-(else (list-tail sx ix)))))
+  (cond
+   ((zero? ix) (error "sx-tail: expecting index greater than 0"))
+   ((and (pair? (cdr sx)) (eqv? '@ (cadr sx))) (list-tail sx (1+ ix)))
+   (else (list-tail sx ix))))
 
 ;; @deffn sx-has-attr? sx
 ;; p to determine if @arg{sx} has attributes.
 (define (sx-has-attr? sx)
-(and (pair? (cdr sx)) (pair? (cadr sx)) (eqv? '@ (caadr sx))))
+  (and (pair? (cdr sx)) (pair? (cadr sx)) (eqv? '@ (caadr sx))))
 
 ;; @deffn sx-attr sx => '(@ ...)|#f
 ;; @example
 ;; (sx-attr '(abc (@ (foo "1")) def) 1) => '(@ (foo "1"))
 ;; @end example
+;; should change this to
+;; @example
+;; (sx-attr sx) => '((a . 1) (b . 2) ...)
+;; @end example
 (define (sx-attr sx)
-(if (and (pair? (cdr sx)) (pair? (cadr sx)))
-(if (eqv? '@ (caadr sx))
-  (cadr sx)
-  #f)
-#f))
+  (if (and (pair? (cdr sx)) (pair? (cadr sx)))
+      (if (eqv? '@ (caadr sx))
+         (cadr sx)
+         #f)
+      #f))
 
 ;; @deffn sx-attr-ref sx key => val
 ;; Return an attribute value given the key, or @code{#f}.
 (define (sx-attr-ref sx key)
-(and=> (sx-attr sx)
- (lambda (attr)
-   (and=> (assq-ref (cdr attr) key) car))))
+  (and=> (sx-attr sx)
       (lambda (attr)
+          (and=> (assq-ref (cdr attr) key) car))))
 
 ;; @deffn sx-set-attr! sx key val
 ;; Set attribute for sx.  If no attributes exist, if key does not exist,
 ;; add it, if it does exist, replace it.
 (define (sx-set-attr! sx key val . rest)
-(if (sx-has-attr? sx)
-(let ((attr (cadr sx)))
-(set-cdr! attr (assoc-set! (cdr attr) key (list val))))
-(set-cdr! sx (cons `(@ (,key ,val)) (cdr sx))))
-sx)
+  (if (sx-has-attr? sx)
+      (let ((attr (cadr sx)))
+       (set-cdr! attr (assoc-set! (cdr attr) key (list val))))
+      (set-cdr! sx (cons `(@ (,key ,val)) (cdr sx))))
+  sx)
 
 ;; @deffn sx-set-attr* sx key val [key val [key ... ]]
 ;; Set attribute for sx.  If no attributes exist, if key does not exist,
 ;; add it, if it does exist, replace it.
 (define (sx-set-attr* sx . rest)
-(let iter ((attr (or (and=> (sx-attr sx) cdr) '())) (kvl rest))
-(cond
-((null? kvl) (cons* (sx-tag sx) (cons '@ (reverse attr)) (sx-tail sx 1)))
-(else (iter (cons (list (car kvl) (cadr kvl)) attr) (cddr kvl))))))
+  (let iter ((attr (or (and=> (sx-attr sx) cdr) '())) (kvl rest))
+    (cond
+     ((null? kvl) (cons* (sx-tag sx) (cons '@ (reverse attr)) (sx-tail sx 1)))
+     (else (iter (cons (list (car kvl) (cadr kvl)) attr) (cddr kvl))))))
 
 ;; @deffn sx-find tag sx => ((tag ...) (tag ...))
 ;; Find the first matching element (in the first level).
 (define (sx-find tag sx)
   (find (lambda (node)
-           (and (pair? node) (eqv? tag (car node))))
+         (and (pair? node) (eqv? tag (car node))))
        sx))
 
 ;;; === pp ==========================
index cd9430adb2e65d8aae6723531a7c4470ecb6d45e..354b7467781df8fe40d1f0956b679c3896556692 100644 (file)
 ;; @deffn make-comm-reader comm-table [#:eat-newline #t] => \
 ;;   ch bol -> ('$code-comm "..")|('$lone-comm "..")|#f
 ;; comm-table is list of cons for (start . end) comment.
-;; e.g. ("--" "\n") ("/*" "*/")
+;; e.g. ("--" . "\n") ("/*" . "*/")
 ;; test with "/* hello **/"
 ;; If @code{eat-newline} is specified as true then for read comments 
 ;; ending with a newline a newline swallowed with the comment.
index 5609be9156e944331dcb8e10de4c61395d6c7393..fcf5944d57488d9eb0ba92d1558f5884f75c4660 100644 (file)
@@ -20,9 +20,7 @@
 ;; e.g., if comment not in latok, just throw away
 
 (define-module (nyacc parse)
-  #:export (make-lalr-parser
-           make-lalr-ia-parser
-           )
+  #:export (make-lalr-parser make-lalr-ia-parser)
   #:use-module (ice-9 optargs)
   #:use-module (nyacc util)
   #:use-module ((srfi srfi-43) #:select (vector-map vector-for-each))
           (else ;; other action: skip, error, or accept
            (case oact
              ((skip) (iter state stack nval (lexr)))
-             ((error)
-              (let ((fn (or (port-filename (current-input-port)) "(unknown)"))
-                    (ln (1+ (port-line (current-input-port)))))
-                (fmterr "~A:~A: parse failed at state ~A, on input ~S\n"
-                        fn ln (car state) sval)
-                #f))
+             ((error) (throw 'nyacc-error
+                             "parse failed at state ~A, on input ~S"
+                             (car state) sval))
              (else ;; accept
               (car stack))))))))))
 
index 49316e27e9bc84828e2ec91f7d2089965b99f37c..6b05a5b1eb1cf63ae7751e1277608591f0c8a92d 100644 (file)
                    (if (not (null? l))
                        (let ((ix (hashq-ref ht (car l))))
                          (unless (vector-ref tv ix)
-                                 (pp 0 "set-pv! ~a ~a" ix k)
+                                 (fmtout "set-pv! ~a ~a" ix k)
                                  (vector-set! pv ix k)
                                  (visit ix))
                          (iter (cdr l)))))