Files
cdesktop/cde/programs/dtinfo/dtinfogen/infolib/etc/ReplaceIdIdref.C
2018-06-27 22:20:34 -06:00

3805 lines
179 KiB
C

/*
* CDE - Common Desktop Environment
*
* Copyright (c) 1993-2012, The Open Group. All rights reserved.
*
* These libraries and programs are free software; you can
* redistribute them and/or modify them under the terms of the GNU
* Lesser General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* These libraries and programs are distributed in the hope that
* they will be useful, but WITHOUT ANY WARRANTY; without even the
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with these libraries and programs; if not, write
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
* Floor, Boston, MA 02110-1301 USA
*/
/* A lexical scanner generated by flex */
/* scanner skeleton version:
* $XConsortium: ReplaceIdIdref.C /main/7 1996/10/28 14:04:30 drk $
*/
#define FLEX_SCANNER
#include <stdio.h>
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
#ifdef c_plusplus
#ifndef __cplusplus
#define __cplusplus
#endif
#endif
#ifdef __cplusplus
#include <stdlib.h>
#if !defined(__linux__) && !defined(CSRG_BASED) && !defined(sun)
#include <osfcn.h>
#endif
/* use prototypes in function declarations */
#define nodedata_USE_PROTOS
/* the "const" storage-class-modifier is valid */
#define nodedata_USE_CONST
#else /* ! __cplusplus */
#ifdef __STDC__
#ifdef __GNUC__
#include <stddef.h>
void *malloc( size_t );
void free( void* );
#else
#include <stdlib.h>
#endif /* __GNUC__ */
#define nodedata_USE_PROTOS
#define nodedata_USE_CONST
#endif /* __STDC__ */
#endif /* ! __cplusplus */
#ifdef __TURBOC__
#define nodedata_USE_CONST
#endif
#ifndef nodedata_USE_CONST
#define const
#endif
#ifdef nodedata_USE_PROTOS
#define nodedata_PROTO(proto) proto
#else
#define nodedata_PROTO(proto) ()
/* we can't get here if it's an ANSI C compiler, or a C++ compiler,
* so it's got to be a K&R compiler, and therefore there's no standard
* place from which to include these definitions
*/
char *malloc();
int free();
int read();
#endif
/* amount of stuff to slurp up with each read */
#ifndef nodedata_READ_BUF_SIZE
#define nodedata_READ_BUF_SIZE 8192
#endif
/* returned upon end-of-file */
#define nodedata_END_TOK 0
/* copy whatever the last rule matched to the standard output */
/* cast to (char *) is because for 8-bit chars, nodedatatext is (unsigned char *) */
/* this used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite()
*/
#define ECHO (void) fwrite( (char *) nodedatatext, nodedataleng, 1, nodedataout )
/* gets input and stuffs it into "buf". number of characters read, or nodedata_NULL,
* is returned in "result".
*/
#define nodedata_INPUT(buf,result,max_size) \
if ( (result = read( fileno(nodedatain), (char *) buf, max_size )) < 0 ) \
nodedata_FATAL_ERROR( "read() in flex scanner failed" );
#define nodedata_NULL 0
/* no semi-colon after return; correct usage is to write "nodedataterminate();" -
* we don't want an extra ';' after the "return" because that will cause
* some compilers to complain about unreachable statements.
*/
#define nodedataterminate() return ( nodedata_NULL )
/* report a fatal error */
/* The funky do-while is used to turn this macro definition into
* a single C statement (which needs a semi-colon terminator).
* This avoids problems with code like:
*
* if ( something_happens )
* nodedata_FATAL_ERROR( "oops, the something happened" );
* else
* everything_okay();
*
* Prior to using the do-while the compiler would get upset at the
* "else" because it interpreted the "if" statement as being all
* done when it reached the ';' after the nodedata_FATAL_ERROR() call.
*/
#define nodedata_FATAL_ERROR(msg) \
do \
{ \
(void) fputs( msg, stderr ); \
(void) putc( '\n', stderr ); \
exit( 1 ); \
} \
while ( 0 )
/* default nodedatawrap function - always treat EOF as an EOF */
#define nodedatawrap() 1
/* enter a start condition. This macro really ought to take a parameter,
* but we do it the disgusting crufty way forced on us by the ()-less
* definition of BEGIN
*/
#define BEGIN nodedata_start = 1 + 2 *
/* action number for EOF rule of a given start state */
#define nodedata_STATE_EOF(state) (nodedata_END_OF_BUFFER + state + 1)
/* special action meaning "start processing a new file" */
#define nodedata_NEW_FILE \
do \
{ \
nodedata_init_buffer( nodedata_current_buffer, nodedatain ); \
nodedata_load_buffer_state(); \
} \
while ( 0 )
/* default declaration of generated scanner - a define so the user can
* easily add parameters
*/
#define nodedata_DECL int nodedatalex nodedata_PROTO(( void ))
/* code executed at the end of each rule */
#define nodedata_BREAK break;
#define nodedata_END_OF_BUFFER_CHAR 0
#ifndef nodedata_BUF_SIZE
#define nodedata_BUF_SIZE (nodedata_READ_BUF_SIZE * 2) /* size of default input buffer */
#endif
typedef struct nodedata_buffer_state *nodedata_BUFFER_STATE;
#define nodedata_CHAR unsigned char
#define INITIAL 0
/* exported interfaces... */
#include "NodeData.h"
/* imported interfaces... */
#include <iostream>
#include <sstream>
using namespace std;
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
#include "misc/unique_id.h"
#include "Token.h"
#include "FlexBuffer.h"
#include "NodeTask.h"
#include "SearchEng.h"
#include "OLAF.h"
#include "SGMLName.h"
#include "OL-Data.h"
#include "BookTasks.h"
#include "DataBase.h"
#include "BookCaseDB.h"
#include "GraphicsTask.h"
#include "Dispatch.h"
#include "api/utility.h"
// Debugging macro
#ifdef DEBUG
static int dbgLevel=-1;
#define DBG(level) if ( dbgLevel >= level)
#else
#define DBG(level) if (0)
#endif
/*
* Forward declaration for my_input
*/
static int my_input ( char *, int );
#undef nodedata_INPUT
#define nodedata_INPUT(b, r, ms ) ( r=my_input( ( char *)b,ms) )
static char *myinput;
static char *myinputptr;
static char *myinputlim;
NodeData *CurrentNodeData;
extern void replace_entity ( FlexBuffer *, const char *);
#define OLID 1
#define OLIDREF 2
#define GRAPHIC 3
#define XREF 4
static short int nodedata_nxt[][256] =
{
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 },
{ 11, 12, 12, 12, 12, 12, 12, 12, 12, 12,
13, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
14, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12 },
{ 11, 12, 12, 12, 12, 12, 12, 12, 12, 12,
13, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
14, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12 },
{ 11, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 15, 15,
17, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15 },
{ 11, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 15, 15,
17, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15 },
{ 11, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 18, 18,
18, 18, 18, 18, 18, 18, 18, 18, 15, 15,
19, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15 },
{ 11, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 18, 18,
18, 18, 18, 18, 18, 18, 18, 18, 15, 15,
19, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15 },
{ 11, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 15, 15,
21, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15 },
{ 11, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 20, 20,
20, 20, 20, 20, 20, 20, 20, 20, 15, 15,
21, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15 },
{ 11, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 15, 15,
23, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15 },
{ 11, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 15, 15,
23, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15 },
{-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
-11, -11, -11, -11, -11, -11 },
{ 11, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
-12, -12, -12, -12, -12, -12 },
{ 11, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
-13, -13, -13, -13, -13, -13 },
{ 11, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, 24, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
-14, -14, -14, -14, -14, -14 },
{ 11, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
-15, -15, -15, -15, -15, -15 },
{ 11, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
-16, -16, -16, -16, -16, -16 },
{ 11, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, 26, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
-17, -17, -17, -17, -17, -17 },
{ 11, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, 27, 27,
27, 27, 27, 27, 27, 27, 27, 27, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
-18, -18, -18, -18, -18, -18 },
{ 11, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, 28, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
-19, -19, -19, -19, -19, -19 },
{ 11, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, 29, 29,
29, 29, 29, 29, 29, 29, 29, 29, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
-20, -20, -20, -20, -20, -20 },
{ 11, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, 30, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
-21, -21, -21, -21, -21, -21 },
{ 11, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
-22, -22, -22, -22, -22, -22 },
{ 11, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, 32, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
-23, -23, -23, -23, -23, -23 },
{ 11, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, 33, -24, -24, -24, -24, -24, -24, -24, 34,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
-24, -24, -24, -24, -24, -24 },
{ 11, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
-25, -25, -25, -25, -25, -25 },
{ 11, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, 35, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
-26, -26, -26, -26, -26, -26 },
{ 11, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, 27, 27,
27, 27, 27, 27, 27, 27, 27, 27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
-27, -27, -27, -27, -27, -27 },
{ 11, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, 36, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
-28, -28, -28, -28, -28, -28 },
{ 11, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, 29, 29,
29, 29, 29, 29, 29, 29, 29, 29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
-29, -29, -29, -29, -29, -29 },
{ 11, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, 37, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
-30, -30, -30, -30, -30, -30 },
{ 11, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, 31, 31,
31, 31, 31, 31, 31, 31, 31, 31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
-31, -31, -31, -31, -31, -31 },
{ 11, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, 38, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-32, -32, -32, -32, -32, -32 },
{ 11, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, 39, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
-33, -33, -33, -33, -33, -33 },
{ 11, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, 40, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -34,
-34, -34, -34, -34, -34, -34 },
{ 11, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, 41,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
-35, -35, -35, -35, -35, -35 },
{ 11, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, 42,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
-36, -36, -36, -36, -36, -36 },
{ 11, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, 43, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
-37, -37, -37, -37, -37, -37 },
{ 11, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, 44,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
-38, -38, -38, -38, -38, -38 },
{ 11, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, 45, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39 },
{ 11, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, 46, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
-40, -40, -40, -40, -40, -40 },
{ 11, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, 47, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
-41, -41, -41, -41, -41, -41 },
{ 11, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, 48, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
-42, -42, -42, -42, -42, -42 },
{ 11, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, 49, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
-43, -43, -43, -43, -43, -43 },
{ 11, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, 50, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
-44, -44, -44, -44, -44, -44 },
{ 11, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
51, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
-45, -45, -45, -45, -45, -45 },
{ 11, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, 52, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, 53, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
-46, -46, -46, -46, -46, -46 },
{ 11, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, 54, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47 },
{ 11, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, 55, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48 },
{ 11, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, 56, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
-49, -49, -49, -49, -49, -49 },
{ 11, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, 57, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
-50, -50, -50, -50, -50, -50 },
{ 11, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, 58, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51, -51, -51, -51, -51,
-51, -51, -51, -51, -51, -51 },
{ 11, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, 59, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
-52, -52, -52, -52, -52, -52 },
{ 11, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, 60, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
-53, -53, -53, -53, -53, -53 },
{ 11, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, 61, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, -54, -54, -54 },
{ 11, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, 62, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
-55, -55, -55, -55, -55, -55 },
{ 11, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
63, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, -56, -56, -56 },
{ 11, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, 64, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
-57, -57, -57, -57, -57, -57 },
{ 11, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, 65, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
-58, -58, -58, -58, -58, -58 },
{ 11, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, 66, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, 67, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
-59, -59, -59, -59, -59, -59 },
{ 11, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, 68,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
-60, -60, -60, -60, -60, -60 },
{ 11, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, 69, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61 },
{ 11, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, 70, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
-62, -62, -62, -62, -62, -62 },
{ 11, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, 71, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-63, -63, -63, -63, -63, -63 },
{ 11, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, 72, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
-64, -64, -64, -64, -64, -64 },
{ 11, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, 73, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65, -65, -65, -65, -65,
-65, -65, -65, -65, -65, -65 },
{ 11, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66, -66, -66, -66, -66,
-66, -66, -66, -66, -66, -66 },
{ 11, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, 74,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67, -67, -67, -67, -67,
-67, -67, -67, -67, -67, -67 },
{ 11, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
75, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68 },
{ 11, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, 76, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69 },
{ 11, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, 77, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -70 },
{ 11, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, 78, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71, -71, -71, -71, -71,
-71, -71, -71, -71, -71, -71 },
{ 11, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, 79,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72 },
{ 11, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, 80, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73, -73, -73, -73, -73,
-73, -73, -73, -73, -73, -73 },
{ 11, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
81, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74, -74, -74, -74, -74,
-74, -74, -74, -74, -74, -74 },
{ 11, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, 82, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75, -75, -75, -75, -75,
-75, -75, -75, -75, -75, -75 },
{ 11, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
-76, -76, -76, -76, -76, -76 },
{ 11, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, 83,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77, -77, -77, -77, -77,
-77, -77, -77, -77, -77, -77 },
{ 11, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, 84, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78, -78, -78, -78, -78,
-78, -78, -78, -78, -78, -78 },
{ 11, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
85, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79 },
{ 11, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
-80, -80, -80, -80, -80, -80 },
{ 11, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, 86, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81 },
{ 11, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82, -82, -82, -82, -82,
-82, -82, -82, -82, -82, -82 },
{ 11, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
87, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, -83, -83, -83, -83, -83 },
{ 11, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, 88, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84, -84, -84, -84, -84,
-84, -84, -84, -84, -84, -84 },
{ 11, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, 89, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
-85, -85, -85, -85, -85, -85 },
{ 11, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86, -86, -86, -86, -86,
-86, -86, -86, -86, -86, -86 },
{ 11, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, 90, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87, -87, -87, -87, -87,
-87, -87, -87, -87, -87, -87 },
{ 11, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, -88, -88, -88 },
{ 11, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89 },
{ 11, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90 }
} ;
/* done after the current pattern has been matched and before the
* corresponding action - sets up nodedatatext
*/
#define nodedata_DO_BEFORE_ACTION \
nodedatatext = nodedata_bp; \
nodedataleng = nodedata_cp - nodedata_bp; \
nodedata_hold_char = *nodedata_cp; \
*nodedata_cp = '\0'; \
nodedata_c_buf_p = nodedata_cp;
#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2
/* return all but the first 'n' matched characters back to the input stream */
#define nodedataless(n) \
do \
{ \
/* undo effects of setting up nodedatatext */ \
*nodedata_cp = nodedata_hold_char; \
nodedata_c_buf_p = nodedata_cp = nodedata_bp + n; \
nodedata_DO_BEFORE_ACTION; /* set up nodedatatext again */ \
} \
while ( 0 )
#define unput(c) nodedataunput( c, nodedatatext )
struct nodedata_buffer_state
{
FILE *nodedata_input_file;
nodedata_CHAR *nodedata_ch_buf; /* input buffer */
nodedata_CHAR *nodedata_buf_pos; /* current position in input buffer */
/* size of input buffer in bytes, not including room for EOB characters */
int nodedata_buf_size;
/* number of characters read into nodedata_ch_buf, not including EOB characters */
int nodedata_n_chars;
int nodedata_eof_status; /* whether we've seen an EOF on this buffer */
#define EOF_NOT_SEEN 0
/* "pending" happens when the EOF has been seen but there's still
* some text process
*/
#define EOF_PENDING 1
#define EOF_DONE 2
};
static nodedata_BUFFER_STATE nodedata_current_buffer;
/* we provide macros for accessing buffer states in case in the
* future we want to put the buffer states in a more general
* "scanner state"
*/
#define nodedata_CURRENT_BUFFER nodedata_current_buffer
/* nodedata_hold_char holds the character lost when nodedatatext is formed */
static nodedata_CHAR nodedata_hold_char;
static int nodedata_n_chars; /* number of characters read into nodedata_ch_buf */
#ifndef nodedata_USER_ACTION
#define nodedata_USER_ACTION
#endif
#ifndef nodedata_USER_INIT
#define nodedata_USER_INIT
#endif
extern nodedata_CHAR *nodedatatext;
extern int nodedataleng;
extern FILE *nodedatain, *nodedataout;
nodedata_CHAR *nodedatatext;
int nodedataleng;
FILE *nodedatain = (FILE *) 0, *nodedataout = (FILE *) 0;
#define nodedata_END_OF_BUFFER 16
typedef int nodedata_state_type;
static const short int nodedata_accept[91] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16, 13, 14, 13, 15, 5, 15, 8, 15, 11,
15, 2, 15, 0, 5, 0, 8, 0, 11, 0,
2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 6, 0, 0, 0, 10,
0, 1, 0, 0, 0, 7, 0, 12, 3, 9
} ;
static nodedata_state_type nodedata_last_accepting_state;
static nodedata_CHAR *nodedata_last_accepting_cpos;
static const nodedata_state_type nodedata_NUL_trans[91] =
{ 0,
12, 12, 15, 15, 15, 15, 15, 15, 15, 15,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0
} ;
/* the intent behind this definition is that it'll catch
* any uses of REJECT which flex missed
*/
#define REJECT reject_used_but_not_detected
#define nodedatamore() nodedatamore_used_but_not_detected
#define nodedata_MORE_ADJ 0
/* these variables are all declared out here so that section 3 code can
* manipulate them
*/
/* points to current character in buffer */
static nodedata_CHAR *nodedata_c_buf_p = (nodedata_CHAR *) 0;
static int nodedata_init = 1; /* whether we need to initialize */
static int nodedata_start = 0; /* start state number */
/* flag which is used to allow nodedatawrap()'s to do buffer switches
* instead of setting up a fresh nodedatain. A bit of a hack ...
*/
static int nodedata_did_buffer_switch_on_eof;
static nodedata_state_type nodedata_get_previous_state nodedata_PROTO(( void ));
static nodedata_state_type nodedata_try_NUL_trans nodedata_PROTO(( nodedata_state_type current_state ));
static int nodedata_get_next_buffer nodedata_PROTO(( void ));
#if 0
static void nodedataunput nodedata_PROTO(( nodedata_CHAR c, nodedata_CHAR *buf_ptr ));
#endif
void nodedatarestart nodedata_PROTO(( FILE *input_file ));
void nodedata_switch_to_buffer nodedata_PROTO(( nodedata_BUFFER_STATE new_buffer ));
void nodedata_load_buffer_state nodedata_PROTO(( void ));
nodedata_BUFFER_STATE nodedata_create_buffer nodedata_PROTO(( FILE *file, int size ));
void nodedata_delete_buffer nodedata_PROTO(( nodedata_BUFFER_STATE b ));
void nodedata_init_buffer nodedata_PROTO(( nodedata_BUFFER_STATE b, FILE *file ));
#define nodedata_new_buffer nodedata_create_buffer
#if 0
#ifdef __cplusplus
static int nodedatainput nodedata_PROTO(( void ));
#else
static int input nodedata_PROTO(( void ));
#endif
#endif
nodedata_DECL
{
nodedata_state_type nodedata_current_state;
nodedata_CHAR *nodedata_cp, *nodedata_bp;
int nodedata_act;
if ( nodedata_init )
{
nodedata_USER_INIT;
if ( ! nodedata_start )
nodedata_start = 1; /* first start state */
if ( ! nodedatain )
nodedatain = stdin;
if ( ! nodedataout )
nodedataout = stdout;
if ( nodedata_current_buffer )
nodedata_init_buffer( nodedata_current_buffer, nodedatain );
else
nodedata_current_buffer = nodedata_create_buffer( nodedatain, nodedata_BUF_SIZE );
nodedata_load_buffer_state();
nodedata_init = 0;
}
while ( 1 ) /* loops until end-of-file is reached */
{
nodedata_cp = nodedata_c_buf_p;
/* support of nodedatatext */
*nodedata_cp = nodedata_hold_char;
/* nodedata_bp points to the position in nodedata_ch_buf of the start of the
* current run.
*/
nodedata_bp = nodedata_cp;
nodedata_current_state = nodedata_start;
nodedata_match:
while ( (nodedata_current_state = nodedata_nxt[nodedata_current_state][*nodedata_cp]) > 0 )
{
if ( nodedata_accept[nodedata_current_state] )
{
nodedata_last_accepting_state = nodedata_current_state;
nodedata_last_accepting_cpos = nodedata_cp;
}
++nodedata_cp;
}
nodedata_current_state = -nodedata_current_state;
nodedata_find_action:
nodedata_act = nodedata_accept[nodedata_current_state];
nodedata_DO_BEFORE_ACTION;
nodedata_USER_ACTION;
do_action: /* this label is used only to access EOF actions */
switch ( nodedata_act )
{
case 0: /* must backtrack */
/* undo the effects of nodedata_DO_BEFORE_ACTION */
*nodedata_cp = nodedata_hold_char;
nodedata_cp = nodedata_last_accepting_cpos + 1;
nodedata_current_state = nodedata_last_accepting_state;
goto nodedata_find_action;
case 1:
{
BEGIN ( XREF );
}
nodedata_BREAK
case 2:
{
const char *str = ( const char *)nodedatatext;
OL_Data *idref =
(OL_Data *)CurrentNodeData->subtask( atoi(str) );
if ( !idref->ContentIsEmpty() ) {
const char *idrefval = idref->content();
FlexBuffer *db_buf = CurrentNodeData->DbBuffer;
db_buf->writeStr("<#OL-XREF>");
replace_entity ( db_buf, idrefval );
db_buf->writeStr("</#OL-XREF>");
}
}
nodedata_BREAK
case 3:
{
BEGIN ( 0 );
}
nodedata_BREAK
case 4:
{
BEGIN ( OLID );
}
nodedata_BREAK
case 5:
{
/*
* query the array for the real no.
*/
const char *str = ( const char *)nodedatatext;
OL_Data *id =
(OL_Data *)CurrentNodeData->subtask( atoi(str) );
if ( !id->ContentIsEmpty() ) {
const char *idval = id->content();
FlexBuffer *db_buf = CurrentNodeData->DbBuffer;
db_buf->writeStr("<#OL-ID>");
replace_entity( db_buf, idval );
db_buf->writeStr("</#OL-ID>");
}
}
nodedata_BREAK
case 6:
{
BEGIN ( 0 );
}
nodedata_BREAK
case 7:
{
BEGIN( OLIDREF );
}
nodedata_BREAK
case 8:
{
const char *str = (const char *)nodedatatext;
OL_Data *idref =
(OL_Data *)CurrentNodeData->subtask(atoi(str));
if ( !idref->ContentIsEmpty() ) {
const char *idrefval = idref->content();
int line_num = idref->line_no();
const char *filename = idref->filename();
FlexBuffer *db_buf = CurrentNodeData->DbBuffer;
db_buf->writeStr("<#OL-IDREF>");
db_buf->writeStr(form("<#L>%d</#L>", line_num));
db_buf->writeStr(form("<#F>%s</#F>", filename));
replace_entity ( db_buf, idrefval );
db_buf->writeStr("</#OL-IDREF>");
}
}
nodedata_BREAK
case 9:
{
BEGIN( 0 );
}
nodedata_BREAK
case 10:
{
BEGIN( GRAPHIC );
}
nodedata_BREAK
case 11:
{
const char *str = (const char *)nodedatatext;
OL_Data *graphic_id =
(OL_Data *)CurrentNodeData->subtask(atoi(str));
if ( !graphic_id->ContentIsEmpty() ) {
const char *graphic_id_val =
graphic_id->content();
CurrentNodeData->DbBuffer->writeStr("<#GRAPHIC>");
replace_entity (CurrentNodeData->DbBuffer,
graphic_id_val);
CurrentNodeData->DbBuffer->writeStr("</#GRAPHIC>");
}
}
nodedata_BREAK
case 12:
{
BEGIN(0);
}
nodedata_BREAK
case 13:
case 14:
{
CurrentNodeData->DbBuffer->put( nodedatatext[0] );
}
nodedata_BREAK
case 15:
nodedata_FATAL_ERROR( "flex scanner jammed" );
nodedata_BREAK
case nodedata_STATE_EOF(INITIAL):
case nodedata_STATE_EOF(OLID):
case nodedata_STATE_EOF(OLIDREF):
case nodedata_STATE_EOF(GRAPHIC):
case nodedata_STATE_EOF(XREF):
nodedataterminate();
case nodedata_END_OF_BUFFER:
{
/* amount of text matched not including the EOB char */
int nodedata_amount_of_matched_text = nodedata_cp - nodedatatext - 1;
/* undo the effects of nodedata_DO_BEFORE_ACTION */
*nodedata_cp = nodedata_hold_char;
/* note that here we test for nodedata_c_buf_p "<=" to the position
* of the first EOB in the buffer, since nodedata_c_buf_p will
* already have been incremented past the NUL character
* (since all states make transitions on EOB to the end-
* of-buffer state). Contrast this with the test in nodedatainput().
*/
if ( nodedata_c_buf_p <= &nodedata_current_buffer->nodedata_ch_buf[nodedata_n_chars] )
/* this was really a NUL */
{
nodedata_state_type nodedata_next_state;
nodedata_c_buf_p = nodedatatext + nodedata_amount_of_matched_text;
nodedata_current_state = nodedata_get_previous_state();
/* okay, we're now positioned to make the
* NUL transition. We couldn't have
* nodedata_get_previous_state() go ahead and do it
* for us because it doesn't know how to deal
* with the possibility of jamming (and we
* don't want to build jamming into it because
* then it will run more slowly)
*/
nodedata_next_state = nodedata_try_NUL_trans( nodedata_current_state );
nodedata_bp = nodedatatext + nodedata_MORE_ADJ;
if ( nodedata_next_state )
{
/* consume the NUL */
nodedata_cp = ++nodedata_c_buf_p;
nodedata_current_state = nodedata_next_state;
goto nodedata_match;
}
else
{
nodedata_cp = nodedata_c_buf_p;
goto nodedata_find_action;
}
}
else switch ( nodedata_get_next_buffer() )
{
case EOB_ACT_END_OF_FILE:
{
nodedata_did_buffer_switch_on_eof = 0;
if ( nodedatawrap() )
{
/* note: because we've taken care in
* nodedata_get_next_buffer() to have set up nodedatatext,
* we can now set up nodedata_c_buf_p so that if some
* total hoser (like flex itself) wants
* to call the scanner after we return the
* nodedata_NULL, it'll still work - another nodedata_NULL
* will get returned.
*/
nodedata_c_buf_p = nodedatatext + nodedata_MORE_ADJ;
nodedata_act = nodedata_STATE_EOF((nodedata_start - 1) / 2);
goto do_action;
}
else
{
if ( ! nodedata_did_buffer_switch_on_eof )
nodedata_NEW_FILE;
}
}
break;
case EOB_ACT_CONTINUE_SCAN:
nodedata_c_buf_p = nodedatatext + nodedata_amount_of_matched_text;
nodedata_current_state = nodedata_get_previous_state();
nodedata_cp = nodedata_c_buf_p;
nodedata_bp = nodedatatext + nodedata_MORE_ADJ;
goto nodedata_match;
case EOB_ACT_LAST_MATCH:
nodedata_c_buf_p =
&nodedata_current_buffer->nodedata_ch_buf[nodedata_n_chars];
nodedata_current_state = nodedata_get_previous_state();
nodedata_cp = nodedata_c_buf_p;
nodedata_bp = nodedatatext + nodedata_MORE_ADJ;
goto nodedata_find_action;
}
break;
}
default:
#ifdef FLEX_DEBUG
printf( "action # %d\n", nodedata_act );
#endif
nodedata_FATAL_ERROR(
"fatal flex scanner internal error--no action found" );
}
}
}
/* nodedata_get_next_buffer - try to read in a new buffer
*
* synopsis
* int nodedata_get_next_buffer();
*
* returns a code representing an action
* EOB_ACT_LAST_MATCH -
* EOB_ACT_CONTINUE_SCAN - continue scanning from current position
* EOB_ACT_END_OF_FILE - end of file
*/
static int nodedata_get_next_buffer()
{
nodedata_CHAR *dest = nodedata_current_buffer->nodedata_ch_buf;
nodedata_CHAR *source = nodedatatext - 1; /* copy prev. char, too */
int number_to_move, i;
int ret_val;
if ( nodedata_c_buf_p > &nodedata_current_buffer->nodedata_ch_buf[nodedata_n_chars + 1] )
nodedata_FATAL_ERROR(
"fatal flex scanner internal error--end of buffer missed" );
/* try to read more data */
/* first move last chars to start of buffer */
number_to_move = nodedata_c_buf_p - nodedatatext;
for ( i = 0; i < number_to_move; ++i )
*(dest++) = *(source++);
if ( nodedata_current_buffer->nodedata_eof_status != EOF_NOT_SEEN )
/* don't do the read, it's not guaranteed to return an EOF,
* just force an EOF
*/
nodedata_n_chars = 0;
else
{
int num_to_read = nodedata_current_buffer->nodedata_buf_size - number_to_move - 1;
if ( num_to_read > nodedata_READ_BUF_SIZE )
num_to_read = nodedata_READ_BUF_SIZE;
else if ( num_to_read <= 0 )
nodedata_FATAL_ERROR( "fatal error - scanner input buffer overflow" );
/* read in more data */
nodedata_INPUT( (&nodedata_current_buffer->nodedata_ch_buf[number_to_move]),
nodedata_n_chars, num_to_read );
}
if ( nodedata_n_chars == 0 )
{
if ( number_to_move - nodedata_MORE_ADJ == 1 )
{
ret_val = EOB_ACT_END_OF_FILE;
nodedata_current_buffer->nodedata_eof_status = EOF_DONE;
}
else
{
ret_val = EOB_ACT_LAST_MATCH;
nodedata_current_buffer->nodedata_eof_status = EOF_PENDING;
}
}
else
ret_val = EOB_ACT_CONTINUE_SCAN;
nodedata_n_chars += number_to_move;
nodedata_current_buffer->nodedata_ch_buf[nodedata_n_chars] = nodedata_END_OF_BUFFER_CHAR;
nodedata_current_buffer->nodedata_ch_buf[nodedata_n_chars + 1] = nodedata_END_OF_BUFFER_CHAR;
/* nodedatatext begins at the second character in nodedata_ch_buf; the first
* character is the one which preceded it before reading in the latest
* buffer; it needs to be kept around in case it's a newline, so
* nodedata_get_previous_state() will have with '^' rules active
*/
nodedatatext = &nodedata_current_buffer->nodedata_ch_buf[1];
return ( ret_val );
}
/* nodedata_get_previous_state - get the state just before the EOB char was reached
*
* synopsis
* nodedata_state_type nodedata_get_previous_state();
*/
static nodedata_state_type nodedata_get_previous_state()
{
nodedata_state_type nodedata_current_state;
nodedata_CHAR *nodedata_cp;
nodedata_current_state = nodedata_start;
for ( nodedata_cp = nodedatatext + nodedata_MORE_ADJ; nodedata_cp < nodedata_c_buf_p; ++nodedata_cp )
{
if ( *nodedata_cp )
{
nodedata_current_state = nodedata_nxt[nodedata_current_state][*nodedata_cp];
}
else
nodedata_current_state = nodedata_NUL_trans[nodedata_current_state];
if ( nodedata_accept[nodedata_current_state] )
{
nodedata_last_accepting_state = nodedata_current_state;
nodedata_last_accepting_cpos = nodedata_cp;
}
}
return ( nodedata_current_state );
}
/* nodedata_try_NUL_trans - try to make a transition on the NUL character
*
* synopsis
* next_state = nodedata_try_NUL_trans( current_state );
*/
#ifdef nodedata_USE_PROTOS
static nodedata_state_type nodedata_try_NUL_trans( nodedata_state_type nodedata_current_state )
#else
static nodedata_state_type nodedata_try_NUL_trans( nodedata_current_state )
nodedata_state_type nodedata_current_state;
#endif
{
int nodedata_is_jam;
nodedata_CHAR *nodedata_cp = nodedata_c_buf_p;
nodedata_current_state = nodedata_NUL_trans[nodedata_current_state];
nodedata_is_jam = (nodedata_current_state == 0);
if ( ! nodedata_is_jam )
{
if ( nodedata_accept[nodedata_current_state] )
{
nodedata_last_accepting_state = nodedata_current_state;
nodedata_last_accepting_cpos = nodedata_cp;
}
}
return ( nodedata_is_jam ? 0 : nodedata_current_state );
}
#if 0
#ifdef nodedata_USE_PROTOS
static void nodedataunput( nodedata_CHAR c, nodedata_CHAR *nodedata_bp )
#else
static void nodedataunput( c, nodedata_bp )
nodedata_CHAR c;
nodedata_CHAR *nodedata_bp;
#endif
{
nodedata_CHAR *nodedata_cp = nodedata_c_buf_p;
/* undo effects of setting up nodedatatext */
*nodedata_cp = nodedata_hold_char;
if ( nodedata_cp < nodedata_current_buffer->nodedata_ch_buf + 2 )
{ /* need to shift things up to make room */
int number_to_move = nodedata_n_chars + 2; /* +2 for EOB chars */
nodedata_CHAR *dest =
&nodedata_current_buffer->nodedata_ch_buf[nodedata_current_buffer->nodedata_buf_size + 2];
nodedata_CHAR *source =
&nodedata_current_buffer->nodedata_ch_buf[number_to_move];
while ( source > nodedata_current_buffer->nodedata_ch_buf )
*--dest = *--source;
nodedata_cp += dest - source;
nodedata_bp += dest - source;
nodedata_n_chars = nodedata_current_buffer->nodedata_buf_size;
if ( nodedata_cp < nodedata_current_buffer->nodedata_ch_buf + 2 )
nodedata_FATAL_ERROR( "flex scanner push-back overflow" );
}
if ( nodedata_cp > nodedata_bp && nodedata_cp[-1] == '\n' )
nodedata_cp[-2] = '\n';
*--nodedata_cp = c;
/* note: the formal parameter *must* be called "nodedata_bp" for this
* macro to now work correctly
*/
nodedata_DO_BEFORE_ACTION; /* set up nodedatatext again */
}
#endif
#if 0
#ifdef __cplusplus
static int nodedatainput()
#else
static int input()
#endif
{
int c;
nodedata_CHAR *nodedata_cp = nodedata_c_buf_p;
*nodedata_cp = nodedata_hold_char;
if ( *nodedata_c_buf_p == nodedata_END_OF_BUFFER_CHAR )
{
/* nodedata_c_buf_p now points to the character we want to return.
* If this occurs *before* the EOB characters, then it's a
* valid NUL; if not, then we've hit the end of the buffer.
*/
if ( nodedata_c_buf_p < &nodedata_current_buffer->nodedata_ch_buf[nodedata_n_chars] )
/* this was really a NUL */
*nodedata_c_buf_p = '\0';
else
{ /* need more input */
nodedatatext = nodedata_c_buf_p;
++nodedata_c_buf_p;
switch ( nodedata_get_next_buffer() )
{
case EOB_ACT_END_OF_FILE:
{
if ( nodedatawrap() )
{
nodedata_c_buf_p = nodedatatext + nodedata_MORE_ADJ;
return ( EOF );
}
nodedata_NEW_FILE;
#ifdef __cplusplus
return ( nodedatainput() );
#else
return ( input() );
#endif
}
break;
case EOB_ACT_CONTINUE_SCAN:
nodedata_c_buf_p = nodedatatext + nodedata_MORE_ADJ;
break;
case EOB_ACT_LAST_MATCH:
#ifdef __cplusplus
nodedata_FATAL_ERROR( "unexpected last match in nodedatainput()" );
#else
nodedata_FATAL_ERROR( "unexpected last match in input()" );
#endif
}
}
}
c = *nodedata_c_buf_p;
nodedata_hold_char = *++nodedata_c_buf_p;
return ( c );
}
#endif
#ifdef nodedata_USE_PROTOS
void nodedatarestart( FILE *input_file )
#else
void nodedatarestart( input_file )
FILE *input_file;
#endif
{
nodedata_init_buffer( nodedata_current_buffer, input_file );
nodedata_load_buffer_state();
}
#ifdef nodedata_USE_PROTOS
void nodedata_switch_to_buffer( nodedata_BUFFER_STATE new_buffer )
#else
void nodedata_switch_to_buffer( new_buffer )
nodedata_BUFFER_STATE new_buffer;
#endif
{
if ( nodedata_current_buffer == new_buffer )
return;
if ( nodedata_current_buffer )
{
/* flush out information for old buffer */
*nodedata_c_buf_p = nodedata_hold_char;
nodedata_current_buffer->nodedata_buf_pos = nodedata_c_buf_p;
nodedata_current_buffer->nodedata_n_chars = nodedata_n_chars;
}
nodedata_current_buffer = new_buffer;
nodedata_load_buffer_state();
/* we don't actually know whether we did this switch during
* EOF (nodedatawrap()) processing, but the only time this flag
* is looked at is after nodedatawrap() is called, so it's safe
* to go ahead and always set it.
*/
nodedata_did_buffer_switch_on_eof = 1;
}
#ifdef nodedata_USE_PROTOS
void nodedata_load_buffer_state( void )
#else
void nodedata_load_buffer_state()
#endif
{
nodedata_n_chars = nodedata_current_buffer->nodedata_n_chars;
nodedatatext = nodedata_c_buf_p = nodedata_current_buffer->nodedata_buf_pos;
nodedatain = nodedata_current_buffer->nodedata_input_file;
nodedata_hold_char = *nodedata_c_buf_p;
}
#ifdef nodedata_USE_PROTOS
nodedata_BUFFER_STATE nodedata_create_buffer( FILE *file, int size )
#else
nodedata_BUFFER_STATE nodedata_create_buffer( file, size )
FILE *file;
int size;
#endif
{
nodedata_BUFFER_STATE b;
b = (nodedata_BUFFER_STATE) malloc( sizeof( struct nodedata_buffer_state ) );
if ( ! b )
nodedata_FATAL_ERROR( "out of dynamic memory in nodedata_create_buffer()" );
b->nodedata_buf_size = size;
/* nodedata_ch_buf has to be 2 characters longer than the size given because
* we need to put in 2 end-of-buffer characters.
*/
b->nodedata_ch_buf = (nodedata_CHAR *) malloc( (unsigned) (b->nodedata_buf_size + 2) );
if ( ! b->nodedata_ch_buf )
nodedata_FATAL_ERROR( "out of dynamic memory in nodedata_create_buffer()" );
nodedata_init_buffer( b, file );
return ( b );
}
#ifdef nodedata_USE_PROTOS
void nodedata_delete_buffer( nodedata_BUFFER_STATE b )
#else
void nodedata_delete_buffer( b )
nodedata_BUFFER_STATE b;
#endif
{
if ( b == nodedata_current_buffer )
nodedata_current_buffer = (nodedata_BUFFER_STATE) 0;
free( (char *) b->nodedata_ch_buf );
free( (char *) b );
}
#ifdef nodedata_USE_PROTOS
void nodedata_init_buffer( nodedata_BUFFER_STATE b, FILE *file )
#else
void nodedata_init_buffer( b, file )
nodedata_BUFFER_STATE b;
FILE *file;
#endif
{
b->nodedata_input_file = file;
/* we put in the '\n' and start reading from [1] so that an
* initial match-at-newline will be true.
*/
b->nodedata_ch_buf[0] = '\n';
b->nodedata_n_chars = 1;
/* we always need two end-of-buffer characters. The first causes
* a transition to the end-of-buffer state. The second causes
* a jam in that state.
*/
b->nodedata_ch_buf[1] = nodedata_END_OF_BUFFER_CHAR;
b->nodedata_ch_buf[2] = nodedata_END_OF_BUFFER_CHAR;
b->nodedata_buf_pos = &b->nodedata_ch_buf[1];
b->nodedata_eof_status = EOF_NOT_SEEN;
}
//-----------------------------------------------------------------------
static int
my_input ( char *buf, int max_size )
{
int remain = myinputlim - myinputptr;
int n = ( max_size > remain ? remain : max_size );
if ( n > 0 ) {
memcpy ( buf, myinputptr, n );
myinputptr += n;
}
return n;
}
//----------------------------------------------------------------------
void ReplaceIdIdRef( NodeData *nd , char *buffer, int sz )
{
CurrentNodeData = nd;
myinput = buffer;
myinputptr = buffer;
myinputlim = buffer + sz;
nodedatalex();
BEGIN INITIAL;
nodedatarestart(NULL);
}